ruex
Use vuex in react
How to use
App.js
Component { return <Provider store=store> <Child1 /> </Provider> }
store.js
const state = total_num: 1111 const mutations = { statetotal_num += payload } { statetotal_num = statetotal_num * payload } const actions = { } { return } { } { return } // middlewareconst logger = { console let result = console console} const store =
Child1.js
state = {} { superprops } { const total_num = thisprops return <div className=""> <div className="">total_num: total_num</div> <button onClick=thispropsadd> mutation:add </button> <button onClick=thispropsaddAsync> action:addAsync </button> <button onClick=thispropsaddPromise> action:addPromise </button> <br /> <button onClick=thispropsdouble> mutation:double </button> <button onClick=thispropsdoubleAsync> action:doubleAsync </button> <button onClick=thispropsdoublePromise> action:doublePromise </button> </div> } const mapStateToProps = total_num: statetotal_numconst mapMutationsToProps = 'add' 'double'const mapActionsToProps = 'addAsync' 'addPromise' 'doubleAsync' 'doublePromise' mapStateToProps mapMutationsToProps mapActionsToProps Chlid1
Demo
npm installnpm start
TODO
- namespace
API
CHANGELOG
-
1.0.1:support middleware
-
1.0.2:add dependencies
-
1.0.3:
- add unsubscribe when emit componentWillUnmount.
- 修复在组件 componentDidMount 里触发 action 无法获取到最新数据的问题。
-
1.1.0:
- support namespaced
- 支持模块动态注册
- mapStateToProps 支持 function,传入 state 和 ownProps 作为参数