redux入门 互动版

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设计