「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
Fluxアーキテクチャに基づいて設計されたReact用フレームワーク
状態は一つのStoreのobjectツリーに格納される。
Actionを発火することが、状態を更新する唯一の方法。
状態がActionによってどのように変更されるか、
定義するために純粋な(副作用のない)Reducerを書く。
{ type: "アクションの種類を一意に識別できる文字列またはシンボル", payload: "アクションの実行に必要な任意のデータ", }
export const ACTION_TYPE = 'アクションの種類を一意に識別できる文字列またはシンボル'; export const ActionType = hoge_value => ({type: ACTION_TYPE , payload: hoge_value });
import { ACTION_TYPE } from './actions'; export default (state = {value: 0}, action) => { switch (action.type) { case ACTION_TYPE: return { ...state, value: state.value + action.payload }; default: return state; } }
import { combineReducers } from 'redux'; const XXXXReducer = (state = {...json...}, payload) => { /* 省略 */ }; const YYYYReducer = (state = {...json...}, payload) => { /* 省略 */ }; const ZZZZReducer = (state = [...json...], payload) => { /* 省略 */ }; export default combineReducers({ XXXX: XXXXReducer, YYYY: YYYYReducer, ZZZZ: ZZZZReducer, })
npm install react-redux --save
import { connect } from 'react-redux';
connect(mapStateToProps, mapDispatchToProps)(Component)
state => state
state => ({ value: state.value })
{ ActionType }
import { ActionType } from './actions';
(<UsersList> <User /> <User /> <User /> <User /> </UsersList>)
Reactコンポーネント自身が個別に状態管理をする。
・・・
デバッグし易くなるらしい。
手書きでやるのはドMらしいです。