react-redux
是reactjs
官方推荐的state
管理器。具体的定义我就不说了,因为有很多地方比我说的好,大家可以Google或参照:redux、中文文档,这个是介绍redux
的,react-redux
就是redux
的react
实现,今天我讲写别的:
1. 为什么要用state
管理器
react
是一个MV*C
的JS框架,render
出来的是Virtual Dom
,并不是实际Dom
,可以这样理解V Dom
+ state
= Dom
,state
类似于渲染需要的数据,V Dom
来计算state
变化时如何渲染,具体请看Todo,这是所有MV*C
架构推荐的例子,另附上一个框架集合网站TodoMVC。
目前为止好像和redux
没有什么关系,但是做过实际项目的大家套用在生产项目里就不难看出,如果组件持续增长再加上嵌套,项目将会变得极其难以维护,所以有人发明了这样一个东西flux,我就不细说flux
了,然后又有人觉得flux
不好用,redux
就诞生 了,具体区别参照这篇文章。就我个人总结如下:为了解耦。可能有人会问组件化就已经很解耦了,为什么还要怎么麻烦呢?是的,但是组件解耦之后组件之间的通信以及组件和API之间的通信并没有很好的解耦。把这些脏活、累活交给redux
管理就是我们的目的。
2. redux
都有哪些东西
直接盗张图来说明
-
Action Creators简单理解就是取数据,比如从API取数据,然后封装成
action
,比如
{
type: 'LOGIN_SUCCESS',
user: data
}
-
Store相当于所有
state
的集合,组件需要订阅集合里的state
这样当state
变化时就会推送给对应的组件 -
Reducers通过
action
的type
来决定更新哪些数据,一般张这样:
switch(action.type){
case 'LOGIN_SUCCESS':
return {
user: action.user
}
default:
return state
}
-
Conponents订阅到
store
的变化就可以根据逻辑做相应的更新,比如登录成功了才可以回帖
具体应用以后在代码里说。也可以参照官方TodoList。