プラグイン

ミューテーション をフックする機能をプラグインとして提供します。

ステートの上書きなどが可能です。

重要 Riotxの機能を破壊することも可能ですので注意してください。

定義

graph LR subgraph Riotx subgraph Store Mutations((Mutations))-- Mutates -->State Mutations((Mutations))-- Mutations after hook -->Plugins((Plugins)) Plugins((Plugins))-- Override mutates -->State end end

API リファレンス を参照してください。

store.change 関数

第一引数

実行されたミューテーションの名前です。

第二引数

実行されたミューテーションが返却した、トリガー名のリストです。

第三引数

実行されたミューテーションの引数にあるcontextと同一です。

第四引数

ステートを変更するのに必要なデータを受け取ります。

const store = new riotx.Store({
  state: {
    name: {
      lastName: 'yamada',
      firstName: 'taro'
    }
  },
  mutations: {
    nameMutation: (context, data) => {
      context.state.name.lastName = data.lastName;
      return ['nameChangeMutation', /** ... */];
    }
  },
  plugins: [ // <--
    store => {
      store.change('riotx:mutations:after', (name, targets, context, data) => {
        if (name === 'nameMutation' && targets.includes('nameChangeMutation')) {
          // Direct
          context.state.name.lastName = `Override ${context.state.lastName}`;
          //
          // or
          //
          // Mutation
          store.mutation('nameMutation', {
            lastName: `Override ${context.state.lastName}`;
          })
        }
      });
    },
  ]
})

フック

フックの種類

ミューテーション完了タイミング

riotx:mutations:after

store.change('riotx:mutations:after', (name, targets, context, data) => {
  // ...
});

プラグインの実行順番

配列のはじめから順次逐次実行されます。

results matching ""

    No results matching ""