github仓库地址:https://github.com/wanghao12345/react-book

简介

immutable可以将store中的数据封装成一个immutable对象,这个对象拥有get,set等方法,这样就可以通过这些方法对store中的数据进行管理

使用

1.安装immutable依赖

npm install immutable --save 或者  yarn add immutable

2.store中引入

import { fromJS } from 'immutable'

3.使用get方法

在mapStateToProps中获取state数据时:

 1 /**
 2  * 将仓库的state映射到props(获取state)
 3  * @param state
 4  */
 5 const mapStateToProps = (state) => {
 6     return {
 7         // 没有使用immutable
 8         // focused: state.header.focused
 9         // 使用了immutable
10         focused: state.header.get('focused')
11     }
12 }

4.使用set方法

 1 import * as constants from './constants'
 2
 3 import { fromJS } from 'immutable'
 4
 5 // fromJS将一个js对象转化成immutable对象
 6 const defaultState = fromJS({
 7     focused: false
 8 })
 9
10 export default (state = defaultState, action) => {
11
12     if (action.type === constants.SEARCH_FOCUS) {
13         // 没有使用immutable
14         // return {15         //     focused: true
16         // }
17
18         // 使用了immutable
19         // immutable对象的set方法,会结合之前的immutable对象的值
20         // 和设置的值,返回一个全新的对象
21         return state.set('focused', true)
22     }
23
24     if (action.type === constants.SEARCH_BLUR) {
25         // 没有使用immutable
26         // return {27         //     focused: false
28         // }
29
30         // 使用了immutable
31         return state.set('focused', false)
32     }
33
34     return state
35 }

转载于:https://www.cnblogs.com/wanghao123/p/11162431.html

react之路:使用immutable管理store中的数据相关推荐

  1. React进阶(3)-上手实践Redux-如何改变store中的数据

    虽互不曾谋面,但希望能和你成为笔尖下的朋友 以读书,技术,生活为主,偶尔撒点鸡汤 不作,不敷衍,意在真诚吐露,用心分享 点击左上方,可关注本刊 (祝今日天下有情人终成兄妹) 撰文 | 川川 VX-ID ...

  2. 数据仓库Hive编程——HiveQL的数据操作(一):向管理表中装载数据

    既然Hive没有行级别的数据插入.数据更新和删除操作,那么往表中装载数据的唯一途径就是使用一种"大量"的数据装载操作.或者通过其他方式仅仅将文件写入到正确的目录下. 在<Hi ...

  3. react发送Ajax中文问号,如何从Javascript/React发送AJAX请求并在pythonrestapi中接收数据...

    我在react中编写了前端代码.我有一个简单的for,用户可以填写他们的姓名.职务.部门和其他类似的基本字符串字段.当用户点击提交时,我让javascript创建一个用python+flask编写的对 ...

  4. SAP License:如何更好的管理ERP中的供应商?

    现代企业成功的采购管理,越来越离不开ERP的成功实施,ERP已经成为现代化采购管理的重要工具. 一.采购管理与ERP集成的一体化思想 ERP系统面向企业的整个业务流程,其核心思想是将企业的业务流程看作 ...

  5. 管理信息系统相关计算机技术,分析管理信息系统中计算机通信技术要点

    李明 摘要:基于我国社会经济的快速发展,计算机通讯技术已经引起人们的重视.将计算机通信技术应用到管理信息系统中,能够有效保证系统的稳定运行,提高资源的利用率.因此,本文主要分析管理信息系统中计算机通信 ...

  6. 第二篇:智能电网(Smart Grid)中的数据工程与大数据案例分析

    前言 上篇文章中讲到,在智能电网的控制与管理侧中,数据的分析和挖掘.可视化等工作属于核心环节.除此之外,二次侧中需要对数据进行采集,数据共享平台的搭建显然也涉及到数据的管理.那么在智能电网领域中,数据 ...

  7. vuex页面数据丢失_解决 vuex 中的数据在页面刷新之后就丢失的问题

    在vue的项目中我们一般都会使用到vuex,在vuex中我们会保存一个需要全局使用的变量或者状态,这样方便我们使用.但是vuex的store中的数据有一个特性,那就是在页面刷新时,页面会重新加载vue ...

  8. mysql数据库中对数据的基本操作

    文章目录 一.MySQL常用的数据类型 二.查看数据库结构 1.查看当前服务器中的数据库 2.查看数据库中包含的表 3.查看表的结构(字段) 三.SQL语句 四.创建及删除数据库和表 1.创建新的数据 ...

  9. Hive学习笔记(五)向表中装载数据

    1.向管理表中装载数据 再次强调,Hive没有行级别的数据插入.数据更新和删除操作. LOAD DATA LOCAL INPATH '${env:HOME}/california-employees' ...

最新文章

  1. jedis ShardedJedisPool的 HASH一致性算法(一)从String 的hashcode说起
  2. 解决Minikube start卡住的方法
  3. 使用Java将项目插入DynamoDB表
  4. 运行指定代码_JavaScript 运行机制(Event Loop)详解
  5. java @Column 引发的一点思考
  6. CV Code | 本周新出计算机视觉开源代码汇总(含自动驾驶目标检测、医学图像分割、风格迁移、语义分割、目标跟踪等)...
  7. RabbitMQ3.8.4安装和配置
  8. iphone长截图哪个软件好_iPhone网络电话软件哪个好?
  9. Matlab如何滤出高音,基于Matlab滤波器及均衡器设计
  10. 数据库关系代数表达式
  11. win10如果虚拟化服务器,Win10内置虚拟化技术Virtualization在哪里 Win10查看CPU是否支持VT步骤...
  12. 操作系统实验:系统内存使用统计
  13. 计算机显示器图片怎么铺满全屏,win10电脑显示器屏幕不能铺满怎么办_win10电脑显示不能铺满屏幕处理方法-win7之家...
  14. linux下设置定时执行脚本
  15. (三)stm32巡线小车首尝试 测速篇
  16. 在Matlab的伯德图中利用bode函数实现局部放大,实用
  17. 广西免考职称英语计算机,2016年广西职称英语免考条件
  18. 自学网络安全?零基础学网络安全?一般人我还是劝你算了吧
  19. 微信支付消息推送Websocket服务器的创建
  20. 键盘响应事件中的连按问题

热门文章

  1. JAVA-date(计算时间差)
  2. 8.21 :odd??:nth-of-type??
  3. jQuery 2.0.3 - 整体架构
  4. 可以伸缩的查询面板 (searchBar)
  5. jbpm 5 安装教程
  6. Android开发指南中文版(十三)User Interface-Notifications
  7. Blackfin DSP学习心得与参考资料
  8. Flutter 登录页面Demo 复制可使用
  9. Springboot02配制jsp
  10. JavaScript 与java中数组的区别