我来自React背景,它只是足以从道具设置你的状态,你可以调用setState({...})
来更新状态,所以,使用vue / vuex,我觉得很困难。
简化:
Vuex State
name: "Foo bar"
Vuex行动
addName
我可以更改状态没问题,但我需要绑定一个输入字段,当更改时,状态会更新。可以将此视为一个更新表单,其中用户详细信息已经预先填写,并且可以更改其名称。
<input @change="addName(newName) v-model="newName" />
我可以添加watch
来监听newName
并更新状态,但是,我需要预先填充输入状态。哈!我可以使用beforeMount()
但我的状态尚未加载。
computed: {
...mapState([
'name'
]),
},
beforeMount() {
// this.newName = this.name
console.log('Mounted') // Shows in console
console.log(this.name) // nothing
}
名字显示在模板<pre>{{ name }}</pre>
答案 0 :(得分:11)
哟可以使用computed setter
computed:{
name:{
get: function(){
return store.state.name;
},
set: function(newName){
store.dispatch('addName',newName);
}
}
}
enter code here
并将v-model
设置为name
标记中的计算属性<input>
:
<input v-model="name" />
这是工作jsfiddle