react + Redux写的小demo(二)

每个action都有自己的一个type类型,reducer会接收action的type类型,然后根据不同的类型去改变对应的数据。为了减少拼写带来的错误,就新建一个actionType.js文件专门来定义action的type类型
在这里插入图片描述
然后在reducer文件里和组件里面都引入actionType.js文件并用里面的常量。
用actionCreator.js文件来统一创建action
当我们在派发action之前,action最好不要在组件里直接定义,在组件里定义action不是不可以,但是我们一般在actionCreator文件里来统一的管理action,这样更好维护。所以将action拆分到一个actionCreator文件里更好。
在这里插入图片描述
在这里插入图片描述
总结:
Redux设计和使用的三项原则:
1,store是唯一的。整个应用里面只有store一个公共存储空间。
2,只有store能够改变自己的内容。很多人认为是reducer改变了store的内容,其实不是这样的,reducer拿到之前store里的数据,然后自己拷贝store里state的一个副本,然后自己去改变这个副本state数据,然后它把这新的副本state数据返回给store,store拿到这个新的数据之后它自己去更新之前老的state数据,所以store里的数据是它自己更新的,是它自己拿到reducer返回的新的数据自己给自己更新的。所以说reducer一定不要改变state里的内容,如果reducer直接去改变state里的数据是不被允许的。
3,reducer必须是纯函数。纯函数是指给定固定的输入就一定会有固定的输出,而且不会有任何副作用。
在这里插入图片描述
在这里插入图片描述
Redux的核心api:
createStore()帮我们创建一个store,
store.dispatch()帮我们派发一个action,这个action会传递给store,
store.getState()帮我们去获取store里面所有的数据内容,
store.subscribe()帮我们订阅store的改变,只要store发生改变,store.subscribe(callback)接收的回调函数callback就会执行。

猜你喜欢

转载自blog.csdn.net/u013565133/article/details/88800337