eg:

new Vue({
    data() {
        return {
            person: {
                name: '张三'
            }
        }
    },
    
    methods: {
        check() {
            this.person['age'] = 12;  // 增加了一个新属性,但是视图不会更新
            
            this.$set(this.person, 'age', 12); // 这样之后视图就能刷新了
        }
    }
})

删除属性可以调用 vue.delete(json, key);

    new Vue({
        data() {
            person: {
                name:'张三',
                age:12
            }
        }
        methods: {
            check() {
                Vue.delete(this.person, 'age');    // 删除person中的age属性
            }
        }
    })

总结

感觉 this.$set() 这个方法,有点像微信小程序中的 this.setData()。

个人笔记