useStore
の基本(型安全にVuexを使う最初の一歩)this.$store
が使えない → setup()
の中に this
がないからuseStore()
を使って store
を取り出すuseStore()
だけだと型が any
になる → 型付きの useStore
を自作するuseStore
を使えば、state / getters / mutations / actions 全部で補完が効く!家に大きな冷蔵庫(store)はあるけど、
「カレー作りたい人」には必要な材料だけ取り出して渡す。
→ それが
useStore()
の役割。→ 必要な人だけ持ってるから、どこで何使ってるかがわかりやすい。
useStore()
(素の形)import { useStore } from 'vuex';
const store = useStore(); // ← ここが any 型(型が弱い)
store.state.count; // ← 補完が出ない or 弱い
→ これだと 型安全じゃない。
だから useStore()
に型を教える関数 を自分で作る。
useStore
の作成store/useStore.ts
// 型を付けたuseStore関数を作成
import { useStore as baseUseStore } from 'vuex';
import { Store } from 'vuex';
import { RootState } from './types';
// 型付きのuseStore
export const useStore = (): Store<RootState> => {
return baseUseStore<RootState>();
};