zukucode
主にWEB関連の情報を技術メモとして発信しています。

Vuex モジュールのactionの処理で別モジュールのactionをコールする

Vuexのモジュール内のactionの処理で別モジュールのactionをコールする方法を紹介します。

ルートのactionの場合、moduleで定義したactionをコールする場合は、以下のようにモジュール名/アクション名の形式でaction名を指定します。

export const actionA = async ({ dispatch }) => {
  await dispatch(`moduleY/actionB`, パラメータ);
};

例えばmoduleXactionからmoduleYactionをコールしたい場合は上記の方法ではうまくいかないので、以下のように第3パラメータに{ root: true }を指定します。

export const actionA = async ({ dispatch }) => {
  await dispatch(`moduleY/actionB`, パラメータ);
  await dispatch(`moduleY/actionB`, パラメータ, { root: true });
};

関連記事

  • Vuex 厳格(strict)モードでエラーになるよくある原因

    Vuexの厳格(strict)モードでエラーになってしまう原因でよくあるパターンです。stateに格納した配列をソートして表示するときに、stateの値をcomputedやgettersでそのままソー...


  • Vuex stateを作成して各コンポーネントで参照する

    実際にstoreを作成して、各コンポーネントでその値を参照できるようにします。mutations.jsにstateのオブジェクトを定義します。stateがアプリケーション全体の状態を管理します。


  • Vuex mutationでstateの値を変更する

    stateはmutationの処理でしか変更できません。コンポーネントからmutationを実行し、stateの値を更新する方法を紹介します。mutationを作成するにあたって、最初にmutatio...


  • Vuex moduleに定義したstateをコンポーネントで簡単に取得する

    Vuexのモジュールに定義したstateを各コンポーネントで参照する方法を紹介します。各コンポーネントではthis.$store.state.モジュール名で各moduleで定義したstateを取得でき...


  • Vuexとaxiosを連携する

    ajaxの処理が増えるたびに同じmutationを実行するように処理を入れるのは大変なので、axiosの処理でmutationを実行するようにします。axiosにはinterceptorsという機能が...


  • Vuex actionでローディングアイコンを表示する

    actionでajaxを行うときにローディングアイコンを表示させます。Vuexのstoreにloadingの状態を持つようにします。また、mutationでloadingの状態を変更でするようにします...


  • Vuex actionの処理で別のactionをコールする

    Vuexのactionの処理で別のactionをコールする方法を紹介します。第一引数のcontextを受取り、dispatchメソッドをコールします。dispatchメソッドの第一引数はコールしたいa...


  • Vuex actionの処理でaxiosでajaxを行う

    Vuexのactionでaxiosのライブラリを使ったajaxの処理を行います。処理の流れとして、http(axios)でajaxアクセスを行い、成功時はmutationをコールして、storeに取得...


  • Vuex actionでの非同期処理をasync/awaitの実装をする

    Vuexのactionではajaxなどの非同期処理を実装しますが、非同期処理をasync,awaitで実装する方法を紹介します。特別な制御はいりません。ファンクションを定義する箇所にasyncを追加し...


  • Vue.jsにVuexを導入する

    Vuexを導入する手順の作業メモです。Vuexを利用することにより、各コンポーネントで保持していたデータをstateにまとめられるので、ある程度規模が大きくなっても耐えられるプログラムを作成できます。...