state
本小节我们将构造一个state
1、什么是state?
简单点来理解,state就是存放程序数据的一棵‘树’,或者你也可以把它当成一个数据库。
2、state是只读的
Redux 没有规定用什么方式来保存 State,可能是 Javascript 对象,或者是一个数组,或者是 Immutable.js的数据结构。
我们可以看一下下面的例子:
var state = [{text:'test1',completed: false}];
//更新state
state = [...state,{text:'test2',completed: false}];
//而不是
state.push({text:'test2',completed: false});
注意:
- 唯一能更新state的方法就是触发action,使用store的dispatch更新state
3、为什么强调再强调state只读!!!
A、单一数据源,state是程序的唯一数据源
B、确保视图和网络请求只能表现出我想要修改state,然后通过触发action修改
C、只有唯一更新state的方法,我们可以更容易的实现撤销/重做这类功能
4、设计state
我们todo需要保存两个不同的内容:
当前选中的任务过滤条件;
真实的任务列表。
var initState = {
filter:'SHOW_ALL',
todos:[]
}
在test文件中完成你的state设计