redux的简单实现
一个小demo介绍redux的实现原理,原则:1、保持一个state 2、外部无法直接对其进行操作 3、通过纯函数的方式更改状态 4、返回状态为新的state,除非state没有变化
一个小demo介绍redux的实现原理,原则:1、保持一个state 2、外部无法直接对其进行操作 3、通过纯函数的方式更改状态 4、返回状态为新的state,除非state没有变化
直接上代码:
'use strict'; let state = { aaa : {name :'dora'}, bbb : {group :'javascript'}, ccc : {age : 29} }; function update(updaters,state){ let newState = {}; const keys = Object.keys(updaters); keys.forEach(key=>{ let updater = updaters[key] // updater pure function let value = state[key]; let newSubState = updater(value); newState[key] = newSubState; }) let result = Object.assign({},state,newState); console.log(result); } function aaaUpdater(subState){ return { name : 'doramart' } } function bbbUpdater(subState){ return { group : 'nodejs' } } update({ aaa : aaaUpdater, bbb : bbbUpdater },state);
通过输出结果可以看到,我们通过纯函数的形式修改了state
很赞哦! ( 0
)
相关文章
- 什么是Upstream?
- Nodejs 内容管理系统 DoraCMS 2.1.6 发布
- Visual Studio Online 更新!更好支持Docker、Python、Go、C++
- 利用 html2canvas 生成文章缩略图
- 纪录片《穹顶之下》全集103分钟1080P高清完整视频
- DoraCMS v2.1.5 版本更新
- DoraCMS v2.1.2 Docker 版本(生产环境)
- Nodejs 内容管理系统 DoraCMS 2.1.4 发布
- DoraCMS 插件化探索(一)
- DoraCMS 2.1.4 关于 '指定用户' 功能的优化说明
- DoraCMS 2.1.4 (发布版非源码) 抢先体验
- angularjs filter 详解