在vue.js中更新数据属性/对象

Tru*_*ran 7 javascript vue.js

有没有办法我可以编程方式更新datavue.js中的对象/属性?例如,当我的组件加载时,我的数据对象是:

data: function () {
    return {
        cars: true,
    }
}
Run Code Online (Sandbox Code Playgroud)

触发事件后,我希望data对象看起来像:

data: function () {
    return {
        cars: true,
        planes: true
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过了:

<script>

module.exports = {

    data: function () {
        return {
            cars: true
        }
    },

    methods: {
        click_me: function () {
            this.set(this.planes, true);
        }
    },

    props: []

}

</script>
Run Code Online (Sandbox Code Playgroud)

但这给了我错误this.set is not a function.有人可以帮忙吗?

提前致谢!

ABD*_*MAN 13

Vue不允许向已创建的实例动态添加新的根级别响应属性.但是,可以将反应属性添加到嵌套对象中,因此您可以创建一个对象并添加一个新属性:

data: function () {
    return {
        someObject:{
            cars: true,
    }
}
Run Code Online (Sandbox Code Playgroud)

并使用set方法添加属性:

methods: {
        click_me: function () {
            this.$set(this.someObject, 'planes', true)
        }
    }
Run Code Online (Sandbox Code Playgroud)

对于vue 1.x使用Vue.set(this.someObject, 'planes', true)

反应

  • @ user1547174这看起来像vue 1.x尝试这个`Vue.set(this.someObject,'planes',true)` (2认同)