A、Reduxの使用の基礎

安装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))。

  

  

おすすめ

転載: www.cnblogs.com/kongchuan/p/12164620.html