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

欧卡乐网站建设湖南微信网站

欧卡乐网站建设,湖南微信网站,个人主页介绍文案,logo设计大赛网站一、为什么redux中要使用不可变数据 Redux 要求使用不可变数据#xff0c;是因为它遵循了函数式编程的原则。在函数式编程中#xff0c;数据不可变是一项重要的原则#xff0c;这有助于避免状态更改产生的不可预知的副作用。 在 Redux 中#xff0c;每当 action 被分发是因为它遵循了函数式编程的原则。在函数式编程中数据不可变是一项重要的原则这有助于避免状态更改产生的不可预知的副作用。 在 Redux 中每当 action 被分发reducer 都会接收到当前的状态和 action并返回一个新的状态。如果使用的是可变数据类型并且在 reducer 中直接对状态进行修改就会造成状态的不可预知的更改。 因此Redux 要求使用不可变数据是为了更好地管理应用状态以及提高代码的可读性和可维护性 二、在redux中使用immer import produce from immer; const defaultState {name: 张三, };const userReducer (state defaultState, action) {console.log(action);switch (action.type) {case UPDATE_USER_NAME:return produce(state, (draft) {draft.name action.name;});default:return state;} };export default userReducer;四、applyMiddleware 1、概念 applyMiddleware 是 Redux 的一个高阶函数用于向 Redux Store 应用中间件。 中间件是一个函数它可以在 dispatch 操作执行前后对 action 进行拦截、处理、修改等操作。例如日志记录、错误捕获、异步请求、数据缓存等等。 使用 applyMiddleware你可以实现额外的功能并且可以在不修改原始代码的情况下对其进行扩展。 2、例子 import { createStore, applyMiddleware } from redux // 日志插件 import logger from redux-logger import rootReducer from ./reducers// 直接使用日志插件 const store createStore(rootReducer, applyMiddleware(logger))五、进阶——使用immer封装一个redux的中间件让所有的修改数据都是以不可变数据的方式进行修改 1、创建一个immerMiddleware.js文件 import { produce } from immer;// 定义immerMiddleware中间件/*** * store createStore后返回的store可以使用他的任何方法* next * returns */ const immerMiddleware store next action {// 使用immer的produce函数生成新的stateconst newState produce(store.getState(), draft {/*** next可以调用对应的action里面的reducer* 并且可以拿到reducer返回的结果* 我们把返回的结果给draft赋值*/draft next(action);});// 返回新的statereturn newState; };export default immerMiddleware;2、使用 import { createStore, applyMiddleware } from reduximport immerMiddleware from ./plugin/immerMiddleware import rootReducer from ./reducersconst store createStore(rootReducer, applyMiddleware(immerMiddleware))当我们在修改数据的时候就不需要再考虑不可变数据的问题了因为immer已经统一帮我们处理了
http://www.yayakq.cn/news/2965/

相关文章:

  • 做vr效果图的网站新品发布会发言稿
  • 建设工程j教育网站淘宝网页设计尺寸
  • 十万pv的网站建设有货 那样的网站怎么做
  • 如何构建一个成交型网站开源知识管理系统
  • 个人在网站怎么做公益免费空间主机
  • 最新新闻热点事件50字营销导向的企业网站优化
  • 广州天河建网站的公司苏州市网站建设服务
  • 网站建设与维护工作待遇网页设计尺寸一般多少像素
  • 梅州做网站wlwl房产中介网站
  • 手机网站怎么做淘宝客国外做装修设计网站
  • 商城网站怎么做推广方案郑州营销型网站公司电话
  • 苏州做网站好的公司平台型网站建设预算表
  • 站长工具端口查询郑州银行app
  • 网站基建建设怎么用优盘做网站登录密钥
  • 专业做曝光引流网站高端人才招聘网站排名
  • 静态网站建设教程建设一个企业网站多少钱
  • 网站开发过程在线学习平台网站建设有什么功能
  • 网站审批需要什么手续辽宁城建设计院有限公司网站
  • 吴江建网站wordpress 标签插件
  • 天晴创艺网站建设百度小程序佛山网站优化步骤
  • win7可以做网站吗设计师之家
  • 广州网站建设多少钱广东省阳江网络问政平台
  • 青岛网站建设公司招聘上海环球金融中心简笔画
  • 用kid做教育网站域名商丘至开网络科技有限公司
  • 将网站保存怎么做lol怎么做直播网站
  • 福建设计招聘网站做微信公众号的网站吗
  • 两学一做 山西答题网站茌平网站制作
  • 兰州做网站怎么样wordpress怎样修改页脚版权信息
  • 上海虹桥站福州关键词自然排名
  • 医疗门户网站模板网站备案到