15.vue.jsのvuexでカウンター:index.html
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| 15.vue.jsのvuexでカウンター:index.html [2019/01/26] – [CounterコンポーネントからVuexの利用] adash333 | 15.vue.jsのvuexでカウンター:index.html [2019/02/23] (現在) – [15.Vue.jsのvuexでカウンター] adash333 | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ====== 15.Vue.jsのvuexでカウンター ====== | ====== 15.Vue.jsのvuexでカウンター ====== | ||
| - | vuexをなんとかして理解するために簡単なアプリを写経しています。前回の[[14.vue.jsのvuexで入力フォーム: | + | vuexをなんとかして理解するために簡単なアプリを写経しています。前回の<wrap hi>[[14.vue.jsのvuexで入力フォーム: |
| 今回は、『カウンターアプリ』を作成しながら、vuexの理解を深めたいと思います。 | 今回は、『カウンターアプリ』を作成しながら、vuexの理解を深めたいと思います。 | ||
| 行 23: | 行 23: | ||
| 今回は、https:// | 今回は、https:// | ||
| - | |||
| - | |||
| - | |||
| - | |||
| ソースコード | ソースコード | ||
| - | + | https:// | |
| - | + | https:// | |
| Demo | Demo | ||
| + | https:// | ||
| + | {{: | ||
| ===== 開発環境 ===== | ===== 開発環境 ===== | ||
| 行 298: | 行 294: | ||
| }, | }, | ||
| </ | </ | ||
| + | |||
| + | src/ | ||
| + | (変更前) | ||
| + | {{: | ||
| + | (変更後) | ||
| + | {{: | ||
| + | |||
| + | カウンターの初期値や、+1、-1の状態管理をvuexに移動しても、ちゃんと、カウンターが動くことが確認できました。 | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ここまでのソースコード(CodeSandeboxバージョン) | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | ===== mapGetters, mapActionsを用いてVuexのコードを少し発展させる ===== | ||
| + | |||
| + | mapState, mapGetters, mapMutations, | ||
| + | (いきなりこれを見ると、『わけわからん状態』ですが、上記の経過をたどった後であれば、何となく分かった気になれる気がします。) | ||
| + | |||
| + | < | ||
| + | import { | ||
| + | mapState, | ||
| + | mapGetters, | ||
| + | mapMutations, | ||
| + | mapActions | ||
| + | } from ' | ||
| + | </ | ||
| + | |||
| + | stateとgetterは算出プロパティcomputedに登録します。 | ||
| + | mutationとactionはメソッドmethodsに登録します。 | ||
| + | |||
| + | < | ||
| + | computed: { | ||
| + | // ローカルの算出プロパティ | ||
| + | myProperty() { ... }, | ||
| + | ...mapGetters([ | ||
| + | // this.messageをstore.getters.messageにマッピング | ||
| + | ' | ||
| + | ]), | ||
| + | // メソッド名を変更したい場合はオブジェクトで定義 | ||
| + | ...mapGetters({ | ||
| + | // this.messageAliasをstore.getters.messageにマッピング | ||
| + | messageAlias: | ||
| + | }) | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | カッコが、[]なのか、{}なのか、紛らわしいです。[]は配列、{}はオブジェクトなのだと思います。 | ||
| + | |||
| + | 組み合わせる必要がなければ、以下のように、オプションに直接、登録することもできるとのことです。 | ||
| + | (しかし、これは汎用的ではないと思われます。) | ||
| + | < | ||
| + | computed: mapGetters([' | ||
| + | methods: mapActions([' | ||
| + | </ | ||
| + | |||
| + | 上記のカウンターアプリを、mapGetters, | ||
| + | |||
| + | < | ||
| + | import { | ||
| + | mapGetters, | ||
| + | mapActions | ||
| + | } from ' | ||
| + | |||
| + | export default { | ||
| + | name: ' | ||
| + | computed: { | ||
| + | count () { | ||
| + | return this.$store.getters.getCount | ||
| + | } | ||
| + | }, | ||
| + | methods: { | ||
| + | ...mapActions([ | ||
| + | ' | ||
| + | ' | ||
| + | ]) | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | (変更前) | ||
| + | {{: | ||
| + | |||
| + | (変更後) | ||
| + | {{: | ||
| + | |||
| + | 今回のアプリ作成はここまでとなります。 | ||
| + | |||
| 行 327: | 行 412: | ||
| ===== ソースコード ===== | ===== ソースコード ===== | ||
| ソースコード | ソースコード | ||
| - | + | https:// | |
| DEMO | DEMO | ||
| + | https:// | ||
15.vue.jsのvuexでカウンター/index.html.1548481299.txt.gz · 最終更新: 2019/01/26 by adash333
