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

网站建设现况分析北京品牌建设网站公司

网站建设现况分析,北京品牌建设网站公司,微信小程序源码免费,wordpress home一、是什么 中间件#xff08;Middleware#xff09;是介于应用系统和系统软件之间的一类软件#xff0c;它使用系统软件所提供的基础服务#xff08;功能#xff09;#xff0c;衔接网络上应用系统的各个部分或不同的应用#xff0c;能够达到资源共享、功能共享的目的… 一、是什么 中间件Middleware是介于应用系统和系统软件之间的一类软件它使用系统软件所提供的基础服务功能衔接网络上应用系统的各个部分或不同的应用能够达到资源共享、功能共享的目的 在上篇文章中了解到了Redux整个工作流程当action发出之后reducer立即算出state整个过程是一个同步的操作 那么如果需要支持异步操作或者支持错误处理、日志监控这个过程就可以用上中间件 Redux中中间件就是放在就是在dispatch过程在分发action进行拦截处理如下图 其本质上一个函数对store.dispatch方法进行了改造在发出 Action和执行 Reducer这两步之间添加了其他功能 二、常用的中间件 有很多优秀的redux中间件如 redux-thunk用于异步操作redux-logger用于日志记录 上述的中间件都需要通过applyMiddlewares进行注册作用是将所有的中间件组成一个数组依次执行 然后作为第二个参数传入到createStore中 const store createStore(   reducer,   applyMiddleware(thunk, logger) ); redux-thunk redux-thunk是官网推荐的异步处理中间件 默认情况下的dispatch(action)action需要是一个JavaScript的对象 redux-thunk中间件会判断你当前传进来的数据类型如果是一个函数将会给函数传入参数值dispatchgetState dispatch函数用于我们之后再次派发actiongetState函数考虑到我们之后的一些操作需要依赖原来的状态用于让我们可以获取之前的一些状态 所以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));     })   }} redux-logger 如果想要实现一个日志功能则可以使用现成的redux-logger import { applyMiddleware, createStore } from redux; import createLogger from redux-logger;const logger createLogger();const store createStore(   reducer,   applyMiddleware(logger) ); 这样我们就能简单通过中间件函数实现日志记录的信息 三、实现原理 首先看看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) {     let next 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.ruanyifeng.com/blog/2016/09/redux_tutorial_part_two_async_operations.html
http://www.dnsts.com.cn/news/59683.html

相关文章:

  • 网站建设信 信科网络集团网站建设
  • 做网站的设计文档怎么做怎么修改wordpress主题字体
  • 网上车辆租赁网站怎么做涿州做网站建设
  • 安平县做网站的有哪些大连开发区网页制作
  • 国际贸易相关网站管理咨询有限公司的经营范围
  • 邹城有做网站的吗uehtml wordpress
  • emlog做企业网站网页广告多少钱
  • 长春标准网站建设免费域名注册官网
  • 酒店网站建设方案策划让路由器做网站服务器
  • 二次元网站设计格朗图手表网站
  • 怎样申请做自己的网站应用公园免费版下载
  • 微信做一个小程序需要多少钱成都seo工程师
  • 个人如何做微商城网站设计石家庄网站建设需要多少钱
  • 广东哪里有网站建设腾讯云市场 wordpress
  • 3d建模素材网站个人网页制作在线
  • 模型网站大全免费长宁网站推广公司
  • 做样子的网站平面设计培训班学费
  • i57500网站开发企业官网运营
  • 网站维护公司广州环保企业网站建设现状
  • jsp网站开发 英文电商网站开发实例
  • 宜昌网站开发公司建设行政主管部门相关网站
  • 微信网站开发系统推广广告软件
  • 网站购买哪些网站做外贸
  • 建设银行培训网站怎么做qq代刷网站
  • 济南手机网站建设专业定制网站手机版二维码怎么做
  • 网站统计帮哪个好什么企业适合做网站
  • 假冒彩票网站开发类似淘宝的网站怎么做的
  • 宝安区建设工程交易服务中心清理优化大师
  • 鹤壁做网站的网络公司app软件大全
  • 网站怎么适配移动端网站这么设置微信支付宝