漫谈REDUX
来源:互联网 发布:无法访问移动网络 华为 编辑:程序博客网 时间:2024/05/22 03:38
要想了解REDUX,还是需要先了解FLUX,建议看我的上篇文章《漫谈FLUX》。
首先说一下,REDUX和REACT并没有什么联系,不管用什么框架,都可以用REDUX作为一种状态管理器,它是JAVASCRIPT的状态容器,提供可预测的状态管理。
那什么是状态呢?状态其实可以理解成动态的数据,但凡会不断变化的数据,我认为都可以理解成状态。
当一个应用变得复杂时候,它的状态就很难管理,一个MODEL的变化可能会引起其他MODEL的变化,我们又很难追踪STATE什么时候比变的。于是REDUX应运而生来解决这个问题,让STATE的变化变得可以预测。
REDUX有三大定律
1.单一数据源
整个应用的STATE都存在一起,存在一个JS对象中,被称为STORE(和FLUX的STORE有点相似,都可以用来存数据)
2.STATE是只读的
这个FLUX一样,唯一能修改数据的地方就是在STORE,任何其他操作都不能修改STATE数据。像ACTION DISPATCH 和VIEW 都不负责改数据。
改变STATE的方法就是触发ACTION,ACTION是一个行为,可以理解为信息的载体,它也只是一个普通的JS对象罢了。
这样所有修改都可以集中处理,且严格按顺序执行。
3.使用纯函数执行修改
ACTION行为想要改变STATE的时候,需要描述它想怎么修改,这里用纯函数进行修改,好处就是纯函数就像一个状态机,输入一样的时候,输出总是一样的,我们输入原先的STATE和ACTION,输出新的STATE。注意REDUCER可以拆分成多个,分别操作STATE的不同部分。
——————————————————————
再来讲讲REDUX相较于FLUX不同的地方。
1.REDUX里的ACTION,它作为信息的载体,事实上只是一个对象,有一个TYPE属性,用来描述这个行为,是唯一的,还有一个DATA,就是ACTION要传递的信息。
FLUX里是ACTIONTYPE,REDUX里的ACTION CREATOR只是一个返回ACTION对象的函数,没有什么特别,之所以用函数包装起来是为异步应用。
FLUX里的ACTION CREATOR不返回什么,而是直接创建一个ACTION再把它DISPATCH出去。
在REDUX里面DISPATCH的工作是由STORE完成的。
2.FLUX的STORE可以有很多,而REDUX的STORE只有一个,存储这个程序所有的STATE。但好在在REDUX里我们可以用很多个REDUCER来处理这个唯一的STORE。
- 漫谈REDUX
- Redux
- Redux
- Redux
- redux
- redux
- Redux
- Redux
- Redux
- Redux
- Redux
- redux
- 漫谈
- 漫谈
- redux react-redux
- react+redux+react-redux
- Redux(三: React-Redux)
- 理解 redux
- 什么是长尾关键词?长尾关键词怎么优化?
- 1011. A+B和C
- Linux下MySQL数据库常用基本操作
- webpack安装失败,解决方法
- 关于检测浏览器是否支持flash的js代码
- 漫谈REDUX
- 枚举器和迭代器之间的区别?
- Unity Profiler内存分析
- vue2.0网易云音乐播放器 (实时更新)
- listagg 字符串连接的结果过长问题解决
- FTPrep, 7 reverse integer
- C语言之关键字(一)auto,register,static,const的了解
- GDB在Mac上面已经不能用了,用LLDB吧!
- Turtlenot启动