redux 浅析
2019-10-28 本文已影响0人
direwolf_
什么是 Redux
Redux 是 JavaScript 状态容器,提供可预测化的状态管理。
Redux 是如何工作的
应用中所有的 state
都以一个对象树的形式储存在一个单一的 store
中。 惟一改变 state
的办法是触发 action
(一个描述发生什么的对象)。 为了描述 action
如何改变 state
树,你需要编写 reducers
。
Redux 的三个核心
Action
Action 是把数据从应用(这里之所以不叫 view
是因为这些数据有可能是服务器响应,用户输入或其它非 view
的数据 )传到 store
的有效载荷。它只是描述了有事情发生了这一事实,并没有描述应用如何更新 state
。
Action 和 Action 创建函数
Action
:Action 是一个一定含有 type
字段的普通 Javascript 对象
Action
创建函数:Action 创建函数是一个用来生成 Action 的函数
Reducer
Reducers 指定了应用状态的变化如何响应 actions
并发送到 store
的。reducer
就是一个纯函数,接收旧的 state
和 action
,返回新的 state
(注意:这里是返回一个新的 state
而不是修改传入参数)
Store
Store 就是把它们联系到一起的对象。
总结一下自己理解的三者关系:
当用户想要改变 state
时
- 会调用
store.dispatch(action)
,目的是为了告诉store
发生了action
事件(action 就是用来描述事件的对象,比如{type: 'ADD_ARTICLE', name: 'redux 学习笔记'}
要 添加一篇文章,名字叫做 redux 学习笔记); -
store
会去调用reducer(state, action)
传递两个参数,state
(当前的状态) 和action
(要做的事儿); -
reducer
登场,reducer
是一个纯函数,可以计算并返回一个新的state
(再次强调:reducer
是生成一个新的state
而不是修改传入参数); -
store
保存reducer
返回的新的完整的state
树。所有订阅store.subscribe(listener)
的监听器都将被调用。