在VueJS中更新多个数据

时间:2017-04-26 06:35:54

标签: vue.js

考虑下面的示例并提出正确的方法来处理这个问题,或者从这种想法中清除我的想法

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 
}

1 个答案:

答案 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)
    },
}

See attached pen