#javascript #vue.js #vuejs2 #vue-component #vuex
#javascript #vue.js #vuejs2 #vue-компонент #vuex
Вопрос:
У меня есть <select>
в моем шаблоне:
<select v-model="amount" required>
<option value="10">10</option>
<option value="20">20</option>
<option value="25">25</option>
<option value="30">30</option>
</select>
data () {
return {
amount: '',
}
}
Могу ли я как-то перевести amount
в состояние vuex?
Ответ №1:
Да, вы можете. Сначала настройте хранилище Vuex для хранения значения и мутации:
Магазин
state: {
amount: null
},
mutations: {
SET_AMOUNT(state, payload) {
state.amount = payload;
}
}
Вам нужен способ вызывать мутацию при изменении модели и обновлять модель при изменении состояния. Вычисляемый сеттер — это элегантный инструмент для обработки обоих направлений и предотвращения неправильного изменения состояния Vuex в компоненте:
Создайте a computed
в компоненте:
компонент
computed: {
amount: {
get() { return this.$store.state.amount },
set(value) { this.$store.commit('SET_AMOUNT', value) }
}
}
Это будет работать с шаблоном так, как он есть в вашем сообщении.