相关文档
- Redux中文文档 http://cn.redux.js.org/index.html
- 阮一峰的博客 http://www.ruanyifeng.com/blog/2016/09/redux_tutorial_part_one_basic_usages.html
- 知乎专栏 https://zhuanlan.zhihu.com/p/20589239?columnSlug=reduixs
安装
npm install --save redux
npm install --save react-redux
npm install --save-dev redux-devtools
上面的三个命令分别安装了redux库、React绑定库和开发者工具
基本使用
一个简单的例子
import React from 'react';
import ReactDOM from 'react-dom';
import {createStore} from 'redux'
//reducer函数,用于变更状态容器中的状态
const reducer = (state=0,action) =>{
switch(action.type){
case 'INCREMENT':return state+1;
case 'DECREMENT':return state-1;
default: return state;
}
}
//使用createStore创建store
const store = createStore(reducer);
//可以在组件中使用store.dispatch调用相关的action
const render = () =>{
ReactDOM.render(
<div>
<h1>{store.getState()}</h1>
<button onClick={()=>store.dispatch({type:'INCREMENT'})}>+</button>
<button onClick={()=>store.dispatch({type:'DECREMENT'})}>-</button>
</div>
, document.getElementById('app'))
}
//设置监听函数,State一旦有变化,Store就会调用监听函数,这时就会触发重新渲染View
store.subscribe(render)
render();
上面例子中的代码逻辑大致如下
- 先定义reducer
- 调用createStore创建store
- 最后在事件中dispatch相关的action
对应到具体业务中的过程是这样的
- 用户点击某个按钮
- 然后状态容器diapatch这个action
- action最后传达到reducer中
- reducer根据action的内容来修改状态
- 状态容器状态发生改变后触发视图更新
理解了上面的DEMO代码后,Redux基本上就算入门了