一、 安装:

npm install redux react-redux二、入口文件:index.jsx:引入:
创建reducer:
创建容器:
初始化:
将容器绑定到属性:
完整代码:

// 核心var React = require('react')var ReactDom = require('react-dom')var CreateClass = require('create-react-class')var createStore = require('redux').createStorevar Provider = require('react-redux').Providervar ReduxFactory = require('dollarphp-redux-factory')// 引入组件var App = require('./static/jsx/app.jsx')var Item = App.Itemvar Text = App.Text// 创建容器var reducer_item = ReduxFactoryvar reducer_text = ReduxFactoryvar item = createStore(reducer_item)var text = createStore(reducer_text)// 创建组件var Index = CreateClass({componentWillMount :function(){item.dispatch({ type:'hello'})text.dispatch({ type:'world'})},render:function(){return ( <div> <Provider store={item}> <Item/> </Provider> <Provider store={text}> <Text/> </Provider> </div>)}})// 渲染ReactDom.render( <Index/>, document.getElementById('app'))三、子组件:app.jsx:引入:
定义处理函数:
定义执行事件:
导出:
完整代码:

// 核心var React = require('react')var ReactDom = require('react-dom')var CreateClass = require('create-react-class')var connect = require('react-redux').connect// 创建组件var Item = CreateClass({todo:function(){var type = 'item'this.props.dispatch({ type:type})},render:function(){return ( <div onClick={this.todo}> 值:{this.props.state} </div>)}})var Text = CreateClass({todo:function(){var type = 'text'this.props.dispatch({ type:type})},render:function(){return ( <div onClick={this.todo}> 值:{this.props.state} </div>)}})var Item = connect(function(state){return {state:state}})(Item)var Text = connect(function(state){return {state:state}})(Text)var App = {Item:Item,Text:Text}module.exports = App四、效果:初始状态:
点击item:
点击text:
五、补充:引入:

var CreateStore = require('redux').createStorevar CombineReducers = require('redux').combineReducersvar Provider = require('react-redux').Provider

创建容器:

var api = function(state = 'http://api.dollarphp.com/',action){var type = action.typeif(type == 'background'){ state += 'blog/login/background'}else if(type == "login"){ state += 'blog/login/login'}return state}var progress = function( state = { percent:0, prompt:'', display:'block' }, action){var type = action.typeif(type == 'progress'){ state.percent = action.percent state.prompt = action.prompt if(action.percent == 100){ state.display = 'none' }}return state}

合并:

var store = CombineReducers({api,progress})store = CreateStore(store)

初始化容器内容:

store.dispatch({type:"percent",percent:100,prompt:'test'})

添加到组件:

<Provider store={store}>