安装Reduxの再来、サンク
糸ReduxのReduxの-サンクを追加
3つのコンセプト:ストア減速アクション
店舗CREATESTOREはgetStateを()はディスパッチ(アクション)トリガ更新減速購読(()=> {})、モニタの状態が変化を取得作成しました
アクションがオブジェクトである、構造{タイプ:「ADD」、数:2 ...}であります
減速機は、新しいオブジェクトがcombineReducersを組み合わせることができ、副作用のデータ更新リターンを持つべきではない純粋な関数であります
'Reduxの' からインポート{CREATESTORE、combineReducers、applyMiddleware}。 「Reduxの-サンク」からインポートReduxThunk。 CONST countInitial = { カウント:0 }。 CONST userInitial = { 名前:「ジェイソン」 }。 constのADD = 'ADD'; constのUPDATE = 'UPDATE'; //アクションクリエイター 機能追加(NUM){ リターン{ タイプ:ADD、 A }。 } //ここでの発送はstore.dispatchです 関数asyncAdd(NUM){ リターン(ディスパッチ)=> { setTimeout(()=> { 派遣(アドオン(NUM)) }、3000) } } //減速機能 関数countReducer(状態= countInitial、アクション){ console.log(状態、行動)。 スイッチ(action.type){ ケース「追加」: リターン{ ...状態、 カウント:state.count +(action.num || 1) }; //新しいオブジェクトの必須を返します デフォルト: 状態を返します。 } } 関数userReducer(状態= userInitial、アクション){ console.log(状態、行動)。 スイッチ(action.type){ ケース「更新」: リターン{ ...状態、 名前:action.name }; //新しいオブジェクトの必須を返します デフォルト: 状態を返します。 } } //マージ減速 CONST減速= combineReducers({ カウンター:countReducer、 ユーザー:userReducer }); / ** *ストアを作成し、入ってくる減速InitialDataはミドルウェア * / constの店= CREATESTORE( レデューサー、 { カウンター:countInitial、 ユーザー:userInitial }、 applyMiddleware(ReduxThunk) ); store.dispatch(asyncAdd(7))。 store.dispatch(アドオン(3)); store.subscribe(()=> { console.log(store.getState())。 }); store.dispatch({タイプ:UPDATE、名称: 'アンディ'})。 デフォルトストアをエクスポートします。
非同期アクション
'Reduxの' からインポート{CREATESTORE、combineReducers、applyMiddleware}。 「Reduxの-サンク」からインポートReduxThunk。 //アクションクリエイター 機能追加(NUM){ リターン{ タイプ:ADD、 A }。 } //ここでの発送はstore.dispatchです 関数asyncAdd(NUM){ リターン(ディスパッチ)=> { setTimeout(()=> { 派遣(アドオン(NUM)) }、3000) } } / ** *ストアを作成し、入ってくる減速InitialDataはミドルウェア * / constの店= CREATESTORE( レデューサー、 initalData、 applyMiddleware(ReduxThunk) ); store.dispatch(asyncAdd(7))。