考虑下面的示例并提出正确的方法来处理这个问题,或者从这种想法中清除我的想法
data(){
return{
a: true,
b: 5
}
},
someMethod: function(){
/*Currently update using the following lines,
this.a = false
this.b = 6
*/
//Is there anything to update multiple attributes at a single line
//Like in ReactJS
//this.setState({})
//Or correct my VueJS knowledge if im wrong
}
答案 0 :(得分:2)
您可以使用Object.assign(...)
执行所要求的操作。它提供了this.setState
中的浅合并,您可以这样设置基本级别属性
Vue也有vm.$set(this, propName, value)
和Vue.set(this, propName, value)
,虽然它们提供了类似的功能,但它们合并现有的道具与新的道具(它们只是覆盖),并且它们不允许使用与this.setState({})
相同的语法设置基本级别属性,但需要使用Vue.set(this, propName, {})
// Poor mans setState(...), only using the shallow merge
methods: {
setState(obj) {
Object.assign(this, obj)
},
}