1. data:
在new 一个vue实例的时候,只有被定义在data中的数据才是响应式的,未被定义仅是动态加入data中的数据是非响应式的,所以要将一个数据变为可响应式,必须先在data中初始化出来。
eg:
// data 对象 var data = { a: 1 } // 此对象将会添加到 Vue 实例上 var vm = new Vue({ data: data }) // 在实例上获取属性 // 将返回原始数据中的属性 vm.a == data.a // => true // 设置实例上的属性, // 也会影响原始数据 vm.a = 2 data.a // => 2 // ... 反之亦然 data.a = 3 vm.a // => 3
2.Object.freeze()
此方法用来防止属性被修改,即被此方法作用过的数据对象是无法达到响应式效果的。
eg:
var obj = { foo: 'bar' } Object.freeze(obj) new Vue({ el: '#app', data: obj })代码中的obj是不会响应变化的。