当前位置: 首页 > news >正文

h5商城网站是什么云商网络综合服务

h5商城网站是什么,云商网络综合服务,温州优化网站方法,wordpress 商场源码一、是什么#xff1f; 中间件#xff08;Middleware#xff09;在计算机中#xff0c;是介于应用系统和系统软件之间的一类软件#xff0c;它使用系统软件所提供的基础服务#xff08;功能#xff09;#xff0c;衔接网络应用上的各个部分或不同的应用#xff0c;能… 一、是什么 中间件Middleware在计算机中是介于应用系统和系统软件之间的一类软件它使用系统软件所提供的基础服务功能衔接网络应用上的各个部分或不同的应用能够达到资源共享、功能共享的目的 我们知道redux整个工作流程当action发出之后reducer立即算出state整个过程是一个同步的操作。 那么如果要支持异步操作或者支持错误处理、日志监控就可以使用上中间件。 Redux中中间件就是放在就是在dispatch过程在分发action进行拦截处理如上图 其本质上一个函数对store.dispatch方法进行了改造在发出 Action和执行 Reducer这两步之间添加了其他功能 二、常用的中间件 redux-thunk用于异步操作 redux-logger用于日志记录 redux-promise redux-saga 上述的中间件都需要通过applyMiddlewares进行注册作用是将所有的中间件组成一个数组依次执行,然后作为第二个参数传入到createStore中 import { createStore, applyMiddleware } from redux import thunk from redux-thunk import createLogger rom redux-logger const logger createLogger()const store createStore(reducer, applyMiddleware(thunk, logger)) // 按顺序执行 从右到左logger实现 // 自己修改dispatch,增加logger let next store.dispatch store.dispatch function dispatchAndLog(action) {console.log(dispatching, action)next(action)console.log(next state, store.getState()) }redux-thunk 添加了thunk中间件之后就可以进行异步操作 redux-thunk是官网推荐的异步处理中间件 默认情况下的dispatch(action)action需要是一个JavaScript的对象 redux-thunk中间件会判断你当前传进来的数据类型如果是一个函数将会给函数传入参数值dispatchgetState dispatch函数用于我们之后再次派发action getState函数考虑到我们之后的一些操作需要依赖原来的状态用于让我们可以获取之前的一些状态 所以dispatch可以写成下述函数的形式 const getHomeMultidataAction () {return (dispatch) {axios.get(http://xxx.xx.xx.xx/test).then(res {const data res.data.data;dispatch(changeBannersAction(data.banner.list));dispatch(changeRecommendsAction(data.recommend.list));})} }dispatch(addTodo(text)) dispatch(addTodoAsync(text)) redux数据流图 三、实现原理 首先看看applyMiddlewares的源码 export default function applyMiddleware(...middlewares) {return (createStore) (reducer, preloadedState, enhancer) {var store createStore(reducer, preloadedState, enhancer);var dispatch store.dispatch;var chain [];var middlewareAPI {getState: store.getState,dispatch: (action) dispatch(action)};chain middlewares.map(middleware middleware(middlewareAPI));dispatch compose(...chain)(store.dispatch);return {...store, dispatch}} }所有中间件被放进了一个数组chain然后嵌套执行最后执行store.dispatch。可以看到中间件内部middlewareAPI可以拿到getState和dispatch这两个方法 在上面的学习中我们了解到了redux-thunk的基本使用 内部会将dispatch进行一个判断然后执行对应操作原理如下 function patchThunk(store) {letnext store.dispatch;function dispatchAndThunk(action) {if (typeof action function) {action(store.dispatch, store.getState);} else {next(action);}}store.dispatch dispatchAndThunk; }实现一个日志输出的原理也非常简单如下 let next store.dispatch;function dispatchAndLog(action) {console.log(dispatching:, addAction(10));next(addAction(5));console.log(新的state:, store.getState()); }store.dispatch dispatchAndLog;
http://www.w-s-a.com/news/227448/

相关文章:

  • 建站流程wordpress怎么开伪静态
  • 服务器不是自己的做违法网站videopro wordpress
  • 北京建网站的公司哪个比较好网站开通告知书
  • 网站负责人 主体负责人黑龙江 建设监理协会网站
  • 手机网站焦点图代码建设工程质量检测网站
  • 墙绘做网站推广有作用没html网页制作用什么软件
  • 企业做网站有用吗网站推广的常用方法有哪些?
  • 景安做网站教程互联网小程序开发
  • 桂林北站离阳朔多远贵州省建设厅住房和城乡建设官网二建考试
  • 浙江省建设厅 网站是多少wordpress淘宝客一键
  • 网站流量少怎么做5个不好的网站
  • 随州网站建设有限公司个人申请注册公司需要多少钱
  • 东莞做商城网站建设wordpress批量下载外链图片
  • 新网站建设运营年计划书仓山区建设局招标网站
  • 网站开发天津网站建设项目组织图
  • 网站开发认证考试石家庄高端网站开发
  • 网站建设第一步怎么弄站酷网页
  • 设备网站模板江西的赣州网站建设
  • 邯郸营销型网站国际招聘人才网
  • hexo wordpress 主题织梦网站优化教程
  • 网站建设方案及上海市建设协会网站
  • 轴承外贸网站怎么做南宁网站排名优化公司哪家好
  • 沈阳企业网站建站郴州优化公司
  • cctv5+手机在线直播观看seo关键词排名优化方法
  • 网站建设公司怎么谈单怎么开通微信小程序商店
  • 深圳做网站案例一个服务器可以备案几个网站
  • 网络营销策划名词解释泉州百度推广排名优化
  • 一键生成网站的软件互联网营销师是干什么
  • 网站后台管理水印怎么做手机优化设置
  • 哪个网站做图文素材多wordpress++优化