适用场景
1.redux 适用场景:
多交互,多数据源。
2.从组件角度看,如果你的应用有以下场景,可以考虑Redux:
某个组建的状态需要共享;
某个状态需要在任何地方都可以拿到;
一个组件需要改变全局状态
一个组件需要改变另一个组件的状态
3.设计思想:
Web应用是一个状态机,视图与状态一一对应
所有对象都保存在一个对象里
基本概念和API
4.store
保存数据的一个地方,可以看成一个容器,整个应用只有一个store,Redux提供createStore这个函数,用来生成Store
5.store.getState()
store对象包含所有数据,想要得到某个时点的数据,就要对Store生成快照,这种时点的数据集合,就叫做State;
当前时刻的state通过store.getState()拿到;
一个state对应一个view
6.Action
state的变化是由view导致的,Action就是View发出的通知,表示vstate就要发生变化了。
Action是一个对象,其中type属性是必须的,博鳌是Action的名称。
7.Action Creator
View要发送多少种信息,就要发送多少种Action,很麻烦,可以定义一个函数来生成Action,这个函数就叫做Action Creator
8.store.dispatch()
store.dispatch()是View发出Action的唯一方法
9.Reducer
store收到Action以后,必须给出一个新的State,这样view才会发生变化,这种state的计算过程叫做Reducer
RedUC而是一个函数,接受Action和当前的State作为参数,返回一个新的State
10.store.subscribe
Store允许store.subscribe()设置监听函数,一旦state发生变化就自动执行这个函数
redux中间件的理解
1.Reducer:纯函数,只承担计算State的功能,不是和承担其他功能,
2.View:于state意义对应,可以看做是state的视觉层
3.Action:存放数据的对象,即消息的载体,只能被别人惊醒操作
早就在发送Action的时候即store.dispatch()方法,可以添加成功