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

团购模板网站杭州网站建设公司平台

团购模板网站,杭州网站建设公司平台,做珠宝的网站,门户网站模板 html[Redux/Mobx] 说说Redux的实现流程 通过分析redux的几个核心api#xff0c;来看如何实现redux store.subscribe: 订阅数据的变化store.dispatch#xff1a;dispatch后改变state,同时通知store.subscribe函数执行#xff0c;上面这两个函数可以利用发布-订阅模式store.getS…[Redux/Mobx] 说说Redux的实现流程 通过分析redux的几个核心api来看如何实现redux store.subscribe: 订阅数据的变化store.dispatchdispatch后改变state,同时通知store.subscribe函数执行上面这两个函数可以利用发布-订阅模式store.getState: 通过这个函数直接返回内存中的state变量即可 简单的实现如下 export function createStore(reducer, enhancer) {if (enhancer typeof enhancer function) {const newCreateStore enhancer(createStore);const newStore newCreateStore(reducer);return newStore;}let state; // state记录所有状态let listeners []; // 保存所有注册的回调function subscribe(callback) {listeners.push(callback); // subscribe就是将回调保存下来}// dispatch就是将所有的回调拿出来依次执行就行function dispatch(action) {state reducer(state, action);for (let i 0; i listeners.length; i) {const listener listeners[i];listener();}}// getState直接返回statefunction getState() {return state;}// store包装一下前面的方法直接返回const store {subscribe,dispatch,getState}return store; }export function combineReducers(reducerMap) {const reducerKeys Object.keys(reducerMap); // 先把参数里面所有的键值拿出来// 返回值是一个普通结构的reducer函数const reducer (state {}, action) {const newState {};for (let i 0; i reducerKeys.length; i) {// reducerMap里面每个键的值都是一个reducer我们把它拿出来运行下就可以得到对应键新的state值// 然后将所有reducer返回的state按照参数里面的key组装好// 最后再返回组装好的newState就行const key reducerKeys[i];const currentReducer reducerMap[key];const prevState state[key];newState[key] currentReducer(prevState, action);}return newState;};return reducer; }// 参数支持多个中间件 export function applyMiddleware(...middlewares) {function enhancer(createStore) {function newCreateStore(reducer) {const store createStore(reducer);// 多个middleware先解构出dispatch newDispatch的结构const chain middlewares.map(middleware middleware(store));const { dispatch } store;// 用compose得到一个组合了所有newDispatch的函数const newDispatchGen Redux.compose(...chain);// 执行这个函数得到newDispatchconst newDispatch newDispatchGen(dispatch);return {...store, dispatch: newDispatch}}return newCreateStore;}return enhancer;} 个人简介 我是歌谣欢迎和大家一起交流前后端知识。放弃很容易 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题
http://www.zqtcl.cn/news/896309/

相关文章:

  • 自己网站如何做关键词排名网站配色网
  • 做二手物资哪个网站好江苏大汉建设实业集团网站
  • j2ee 建设简单网站Wordpress 导航条样式
  • 创客贴网页设计网站企业局域网
  • 深圳哪里网站制作云南建设网站首页
  • 赤峰做网站哪家好岳阳网站设计u
  • 腾讯云10g数字盘做网站够么网站开元棋牌怎么做app
  • 天津网站建设信息科技有限公司门户网站开发公司排名
  • 优秀策划设计网站jsp mysql开发网站开发
  • 深圳做微信网站建设我爱水煮鱼 wordpress
  • 企业网站推广是不是必要的蓝色网站建设
  • 浙江企业响应式网站建设网站建设 找vx cp5173
  • nodejs做的网站音乐网站制作教程
  • 怎么利用网站做外链接阿里云网站部署
  • 做学校网站简述网站的制作步骤
  • 怎样让网站响应式推广策划案
  • 网站开发 面试 适当吹牛网站文件命名规则
  • 河北省建设中心网站图片分享网站源码
  • 工信部网站备案修改个人求职网站怎么做
  • 关于建设公司网站的申请宁波网站制作出售
  • 织梦电影网站免费模板网站域名asia是
  • 顺德中小企业网站建设宁乡市建设局网站
  • 静态网页模板 网站模板兰州做网站价格
  • 吕梁推广型网站建设godaddy托管 wordpress
  • 什么网站百度收录好珠海哪里做网站的
  • 如何介绍网站模板金融网站模版
  • 网站内链怎么优化e时代网站制作
  • 记事本做网站素材代码国内十大4a广告公司
  • 一米八效果图网站商业网站平台
  • 做搜狗手机网站优化产品推广计划怎么写