一.Redux的三个核心属性
1.action
- 表示动作对象
- 包含两个属性
(1)type: 标识属性,值为字符串,唯一,必要属性
(2)data: 数值属性,值类型任意,可选属性 - 例子:
{type:'ADD',data:{name:'tom',age:18}}
2.store
- 将state,action,reducer联系在一起的对象
3.reducer
- 用于初始化状态和加工状态
- 加工时,根据旧的state和action,产生新的state的纯函数
二.redux的基本使用
例子:
-
要使用redux时,要把需要状态共享的变量放在redux内,进而去除组件内需要共享的变量,即在state中删除
-
在src目录下创建redux文件夹,文件夹中包含:
store.js和count_reducer.js
两个文件 -
store.js
(1)引入redux中的createStore函数,创建store对象
(2)createStore调用时,要传入为其服务的reducer
(3)记得暴露store对象
-
count_reducer.js
(1)reducer的本质是一个函数,接收:preState,action ,返回加工后的状态
(2)reducer有两个作用:初始化状态,加工状态
(3)reducer第一次被调用时,是store自动触发的,传递的preState是undefined
-
在index.js中检测redux状态的变化
store.subscribe()
,一旦发生变化重新渲染<App/>
-
count_action.js
专门用于创建action对象
-
constant.js
放置action对象中的type类型的属性值,防止编码出错
注意:redux只负责管理状态,至于状态的变化驱动页面的更新,需要我们自己写