简介
因为Vue进行了一次挺大的改动的,估计年底又要重新学,所以这段时间入门了一下React,而提到React就会有另一个东西会被提到,那就是——Redux。
它的作用其实跟Vuex是一样的,就是一个状态管理的框架,因为本身React的定位就是一个视图层的框架,所以在做项目的时候,需要一个状态管理的框架,也就是Redux。
Redux的运行流程图
第一次用这个画图,好丑…,大概思路就是这样。
这里我一个个解释一下,这个其实整个关系有点类似于我们去买东西一样,这里我来做一个类比,可能相对来说会比较好懂一点。
Store —— 导购
Reducers —— 仓库管理员
React Components —— 天龙人
Action Creators —— 海军
当我们想要操作一次数据的时候,就好比是一个天龙人(React Components)想要去屈臣氏买东西,因为天龙人本身比较高贵,不想跟屈臣氏的导购接触,所以就委托海军(Action Creators)来完成跟导购(Store)的交互。
当天龙人想要买一支润唇膏的时候,就给了个眼神给海军,然后海军领会到,就跟导购传达他的意思(dispatch(action)),导购收到信息之后,就会去找仓库管理员(Reducers),把这个润唇膏的型号(State)和牌子(action)告诉仓库管理员。
仓库管理员接收到信息之后,就会把一支没有包装过的唇膏(newState)拿给导购,由导购来对这支唇膏进行包装,最后把这支包装好的唇膏(state)交给天龙人。
整个Redux运行的一个过程就是这样的,
一些注意事项
1.Reducers 可以接受state,但是不可以对state进行任何的修改。
2.Store 必须是唯一的,Store内的值只有它自己才可以改变。
3.Reducers 必须返回一个纯函数。
纯函数:给定一个固定的输入值,也会返回一个固定的输出值,而且不会有任何的副作用。
必须记住的API
createStore:创建一个store。
store.getState:获取Store里面的值。
store.subscribe:当Store的值改变的时候,会出发里面的回调函数。
store.dispatch:向Store派发action。
刚刚开始起步学习redux,所以有一些小的笔记,如果觉得这篇文章对你有所帮助,给我点个赞呀!!