redux-0.2.0.zip
资源文件列表:

redux-0.2.0/
redux-0.2.0/.babelrc 43B
redux-0.2.0/.eslintrc 349B
redux-0.2.0/.gitignore 40B
redux-0.2.0/.jshintrc 75B
redux-0.2.0/.npmignore 13B
redux-0.2.0/LICENSE 1.05KB
redux-0.2.0/README.md 3.86KB
redux-0.2.0/TODO 219B
redux-0.2.0/examples/
redux-0.2.0/examples/counter/
redux-0.2.0/examples/counter/App.js 273B
redux-0.2.0/examples/counter/Counter.js 456B
redux-0.2.0/examples/counter/actions/
redux-0.2.0/examples/counter/actions/CounterActions.js 371B
redux-0.2.0/examples/counter/actions/index.js 34B
redux-0.2.0/examples/counter/constants/
redux-0.2.0/examples/counter/constants/ActionTypes.js 108B
redux-0.2.0/examples/counter/dispatcher.js 367B
redux-0.2.0/examples/counter/stores/
redux-0.2.0/examples/counter/stores/CounterStore.js 562B
redux-0.2.0/examples/counter/stores/index.js 43B
redux-0.2.0/examples/index.html 157B
redux-0.2.0/examples/index.js 206B
redux-0.2.0/examples/server.js 395B
redux-0.2.0/examples/todo/
redux-0.2.0/examples/todo/App.js 308B
redux-0.2.0/examples/todo/Body.js 273B
redux-0.2.0/examples/todo/Header.js 298B
redux-0.2.0/examples/todo/actions/
redux-0.2.0/examples/todo/actions/index.js 133B
redux-0.2.0/examples/todo/constants/
redux-0.2.0/examples/todo/constants/ActionTypes.js 35B
redux-0.2.0/examples/todo/dispatcher.js 367B
redux-0.2.0/examples/todo/stores/
redux-0.2.0/examples/todo/stores/index.js 398B
redux-0.2.0/examples/webpack.config.js 742B
redux-0.2.0/package.json 1.08KB
redux-0.2.0/scripts/
redux-0.2.0/scripts/build 53B
redux-0.2.0/src/
redux-0.2.0/src/createDispatcher.js 4.03KB
redux-0.2.0/src/index.js 156B
redux-0.2.0/src/observes.js 1.89KB
redux-0.2.0/src/performs.js 1.25KB
redux-0.2.0/src/provides.js 784B
资源介绍:
一个可预测的全局状态管理的 JS 库 A JS library for predictable global state managementClicked: {counter} times
); } } ``` #### Observing Many Stores ```js // We're gonna need some decorators import React from 'react'; import { observes } from 'redux'; // With multiple stores, you might want to specify a prop mapper as last argument. // You can also access `props` inside the prop mapper. @observes('CounterStore', 'TodoStore', (state, props) => ({ counter: state.CounterStore.counter, todos: state.TodoStore.todos })) export default class TodosWithCounter { /* ... */ } ``` #### Performing a Single Action ```js // We're gonna need some decorators import React from 'react'; import { performs } from 'redux'; // Gonna subscribe it @performs('increment') export default class IncrementButton { render() { const { increment } = this.props; // injected by @performs return ( ); } } ``` #### Performing Many Actions ```js // We're gonna need some decorators import React from 'react'; import { performs } from 'redux'; // With multiple actions, you might want to specify a prop mapper as last argument. // You can also access `props` inside the prop mapper. @performs('increment', 'decrement', (actions, props) => ({ increment: props.invert ? actions.decrement : actions.increment, decrement: props.invert ? actions.increment : actions.decrement })) export default class IncrementButton { /* .... */ } ``` ### Dispatcher #### Creating a hot-reloadable dispatcher ```js import * as stores from './stores/index'; import * as actions from './actions/index'; import { createDispatcher } from 'redux'; const dispatcher = module.hot && module.hot.data && module.hot.data.dispatcher || createDispatcher(); dispatcher.receive(stores, actions); module.hot.dispose(data => { data.dispatcher = dispatcher; }); export default dispatcher; ``` #### Attaching the dispatcher to the root component ```js import React from 'react'; import { provides } from 'redux'; import dispatcher from './dispatcher'; @provides(dispatcher) export default class App { /* ... */ } ```