Vuex moduleに定義したstateをコンポーネントで簡単に取得する
Vuex
のモジュールに定義したstate
を各コンポーネントで参照する方法を紹介します。
ファイル構成
以下のようにmodule
が定義されているとします。
moduleA.js
const state = {
message: 'テストです'
};
export default {
state
};
index.js
// 一部抜粋
export default new Vuex.Store({
modules: {
moduleA
}
actions,
getters,
state,
mutations
});
取得方法
各コンポーネントではthis.$store.state.モジュール名
で各module
で定義したstate
を取得できますが、Vuex stateを作成して各コンポーネントで参照するで紹介したように、mapState
を使用します。
<script>
import { mapState } from 'vuex';
export default {
computed: {
...mapState({
message: function (state) {
return state.moduleA.message;
}
})
}
};
</script>
mapState
の部分をES2015
の記法でもう少しシンプルに書き換えます。
...mapState({
message (state) => state.moduleA.message
})
更にシンプルにします。
...mapState({
message ({ moduleA }) => moduleA.message
})
これだけシンプルになるので、ES2015
の記法はVue.js
ととても相性がいいと感じています。
Vue.jsを学習する上で知っておきたいES2015の文法でVue.js
でよく使われるES2015
の文法を紹介しています。