web-dev-qa-db-ja.com

V-modelを使用してVuexストアを変更する必要がありますか?

こんにちはVueの初心者ですが、本当に私を悩ませている問題があります。v-modelディレクティブを使用してvuexストアを変更する必要があるのでしょうか?Vuexは、vuexストアのみを変更する必要があると言っています突然変異によって、しかしvモデルはすべてをより簡単でより短くします(私は明確な答えを見つけることができなかったので私は尋ねています)

はい、できますが、ベストプラクティスではありません。

ドキュメンテーションが言うように、状態の制御を維持するために状態はミューテーション内でのみ更新されるべきです。

しかし、本当にそれをしたいのであれば、次のようにすることができます:

v-model="$store.state.yourProperty"
0

上記のソリューションは、ミューテーションで実装することもできます。

<template>
  <input v-model="message">
</template>

<script>
import { mapMutations, mapState } from 'vuex';

export default {
  computed: {
    ...mapState({messageFromStore: 'message'}),
    message: {
      get() {
        return this.messageFromStore;
      },
      set(value) {
        this.updateMessage(value);
      }
    }
  },
  methods: {
    ...mapMutations('updateMessage')
  }
};
</script>
0
Simon Thiel