ここでは、Composition APIの<script setup>
形式に合わせて、
Vuexのstate / getter / mutation / actionをまとめて使いやすくするための
**コンポーザブル関数(カスタムフック)**を作成する方法を解説します!
つまり
👉 「Vuexのごちゃごちゃを整理して、スマートに書くため」
です!
// ファイル名: useSampleModule.ts
// Vuexのstate, getter, actionをまとめた「操作窓口」!
export function useSampleModule() {
const text = ...
const textLength = ...
const currentRouteName = ...
const updateText = ...
return {
text,
textLength,
currentRouteName,
updateText,
};
}
これを呼び出すだけで、
コンポーネント内で簡単にVuexを操作できるようになります!
// ファイル名: useSampleModule.ts
//storeから直接データを取得するためにインポート
import { computed } from 'vue';
import store from '@/store'; // Vuexストア直import!
// sampleModule専用のコンポーザブル関数
export function useSampleModule() {
// sampleModuleのstate
const text = computed(() => store.state.sampleModule.text);
// sampleModuleのgetter
const textLength = computed(() => store.getters['sampleModule/textLength']);
const currentRouteName = computed(() => store.getters['sampleModule/currentRouteName']);
// sampleModuleのaction
const updateText = (newText: string) => {
store.dispatch('sampleModule/updateText', newText);
};
return {
text,
textLength,
currentRouteName,
updateText,
};
}