vue双向数据绑定vuex中的state
在vue中, 不允许直接绑定vuex的值到组件中, 若是直接使用, 则会报错
have no setter
改善方法一: 使用get和set
// 在从组件的computed中
computed: {
user: {
get() {
return this.$store.state.user
},
set(v) {
// 使用vuex中的mutations中定义好的方法来改变
this.$store.commit('USER', v)
}
}
}
// 在组件中就可以使用
<input v-modle="user" />
改善方法二: 使用watch
// 在组件中绑定
<input v-modle="user" />
// 在computed中获取vuex的值
computed: {
...mapState( { user: state => state.user } )
}
// 在组件的watch中观测
watch: {
'user': {
deep: true,
handler(value) {
// 使用vuex中的mutations中定义好的方法来改变
this.$store.commit('USER', value)
}
}
}