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

asp+sql server典型网站建设案例wordpress rss聚合

asp+sql server典型网站建设案例,wordpress rss聚合,设计说明500字,电子商务网站规划报告一、为什么redux中要使用不可变数据 Redux 要求使用不可变数据,是因为它遵循了函数式编程的原则。在函数式编程中,数据不可变是一项重要的原则,这有助于避免状态更改产生的不可预知的副作用。 在 Redux 中,每当 action 被分发&a…

一、为什么redux中要使用不可变数据

Redux 要求使用不可变数据,是因为它遵循了函数式编程的原则。在函数式编程中,数据不可变是一项重要的原则,这有助于避免状态更改产生的不可预知的副作用。

在 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 'redux'import immerMiddleware from './plugin/immerMiddleware'
import rootReducer from './reducers'const store = createStore(rootReducer, applyMiddleware(immerMiddleware))

当我们在修改数据的时候就不需要再考虑不可变数据的问题了,因为immer已经统一帮我们处理了

http://www.yayakq.cn/news/388147/

相关文章:

  • 个人免费网站开发宁波网站免费制作
  • 网站建站行业新闻用别人备案域名做违法网站
  • 北京制作网站多少钱shopnc
  • android应用商店wordpress评论优化
  • 网站前期设计国家高新技术企业标志
  • 网站开发一个模板费用全网推广系统
  • 南昌做网站的公司多不多网站建设如何制作教程
  • 勉费申请做网站个人电子简历模板
  • 什么网站系统做的最好的电话百度
  • 网站广告出价平台尼高品牌设计
  • 做旅游网站怎么样dede网站制作教程
  • 揭阳企业建站系统模板好的平面设计
  • 网站icp备案认证怎么做做空压机网站的公司有哪些
  • 建设电影网站数据库脚本建立企业网站的意义
  • discuz做服务网站网站建设对服务器有舍要求吗
  • 大学生网站建设开题报告石家庄二手房最新急出售
  • 概念网站源码集团微信网站方案策划
  • 江门网站建设模板山西省住房和城乡建设厅网站首页
  • 小城镇建设网站wordpress很卡吗
  • 台州市建设项目规划网站免费的个人简历模板excel
  • 珠海本地网站佛山网络优化推广公司
  • wordpress的站点地址和河南省网上商城采购平台
  • 网站推广计划书模板百度站长工具登录方式
  • 郑州网站公司哪家好深圳网站建设响应式
  • 广告毕业设计作品网站查询网站建立时间
  • 做网站开发的女生多吗方管结构图集久久建筑网
  • 公司企业网站源码企业为什么交税
  • 做网站的主题网站建设需要了解的
  • 找快照网站查询网站建设计划方案模板
  • 在线制作插画网站建设网站哪家最好