redux的三大核心
(1) 单一数据源
当我们有多个数据需要放到redux中管理时,是放在一个对象里,这个对象放在store中管理,虽然redux并没有强制只能创建一个store,但是多个数据源的话不那么容易管理,单一的数据源可以更好的追踪状态的变化。
(2) state是只读的
想要改变state,无法在组件上直接手动修改state的值,这样可以保证状态不会被随意改变,唯一的方式就是派发action,而是通过集中管理的形式去改变state。
(3) reducer是纯函数
纯函数指的是有相同的输入必定有相同的输出,在这种情况下,不可以修改入参,也不能发送网络请求,也不能进行获取随机数这样的操作,通过reducer将上一个state的状态和当前派发的action连接起来,返回一个新的状态。
redux的三个核心概念
1.action
动作的对象 包含 2 个属性 type:标识属性, 值为字符串, 唯一, 必要属性 data:数据属性, 值类型任意, 可选属性 例子:{ type: 'ADD_STUDENT',data:{name: 'tom',age:18} }
2.reducer
用于初始化状态、加工状态。 加工时,根据旧的state和action, 产生新的state的纯函数。
3.store
将state、action、reducer联系在一起的对象
import {createStore} from 'redux'
import reducer from './reducers'
const store = createStore(reducer)
getState(): 得到state dispatch(action): 分发action, 触发reducer调用, 产生新的state subscribe(listener): 注册监听, 当产生了新的state时, 自动调用