React-使用imutable.js来管理store中的数据
2024-08-28 19:03:04
reducer.js中store的数据是不能改变的,用原始的方法要手动的保证store不被修改,存在风险。imutable.js可以生成一个不可改变的对象,可以避免掉自己不小心修改掉store的情况。
1.安装
npm install immutable --save
2.reducer.js中导入immutable,fromJS方法可以把一个普通对象变成不可变对象。修改数据时用set方法。
import * as actionTypes from './actionTypes';
import{ fromJS } from 'immutable'
/*fromJS方法可以把一个普通对象变成不可变对象*/
const defaultState=fromJS({
focused:false
})
export default(state=defaultState,action)=>{
if(action.type==actionTypes.SEARCH_FOCUS){
//immutable对象的set方法,会结合之前的immutable对象的值和设置的值,返回一个全新的对象,不是修改对象的值
return state.set('focused',true)
}
if(action.type==actionTypes.SEARCH_BLUR){
return state.set('focused',false)
}
return state;
}
3.组件中获取数据时,用get方法。
const mapStateToProps = (state) => {
//focused是immutable对象,不能用state.header.focused的形式获取,要用get()
return {
focused:state.header.get('focused')
}
}
最新文章
- welcome to my cnblog
- 关于跨域GET、POST请求的小结//////////////////////zzzzzzz
- sqlite读取中文乱码(C#)
- subversion(SVN)常规使用
- 7.在AngularJS视图中实现指令
- GoLang搞一个基本的HTTP服务
- C#中判断字符是否大写
- [Android自定义控件] Android自定义控件
- [js开源组件开发]js轮播图片支持手机滑动切换
- 关于 app测试工具
- python核心编程第六章练习6-8
- net.sf.json.JSONException: java.lang.NoSuchMethodException
- TColorPickerButton组件
- zabbix discovery
- VMware WorkStation9.0虚拟机如何运行WINPE
- h5 canvas与SVG的比较
- Linux - 常用 Linux 命令的基本使用
- linux中gdb的使用
- 数组实例的 copyWithin()
- java 素数(按要求输出)
热门文章
- 从零开始学习html(二)认识标签(第一部分)——下
- SD从零开始67-70 后勤信息系统中的标准分析, 信息结构, 信息的更新规则, 建立统计数据
- NopCommerce 根据手机浏览器和桌面浏览器切换 Theme
- 【Java入门提高篇】Day27 Java容器类详解(九)LinkedList详解
- 盐城 - 开设IT公司的好地方
- 12-openldap使用AD密码
- alsa声卡分析alsa-utils调用过程(二)-tinymixer
- Linux小技巧之:两种方法统计访问web网站的前10个IP
- <;20180923>;中秋节日期间的维护日志
- sys.argv[]使用