学习

25 阅读1分钟

Vue禁止data computed props的属性同名,因为这三个属性都会被挂载到Vue实例上(vm) vm.datavm.data vm.options.props vue组件的data()只能是一个函数,因为如果是一个对象,用组件注册的实例就会指向相同的地址,修改实例A就会同步修改实例B,如果是函数就不同,函数返回的内存地址并不相同。 使用对象会造成数据污染。 vue2添加对象的新属性,导致数据变化,但是视图未变化,因为通过obj.newProperty=value添加的属性不是响应式的,可以通过vue.set(obj,newProperty,value)数据变化,视图未变化。可以使用强制更新的APIset(obj,newProperty,value) 数据变化,视图未变化。可以使用强制更新的API:forceUpdate() 用Object.assgin()添加新属性不会触发视图更新,需要建立一个新对象,将旧数据,新数据通过Object.assgin进行合并,然后赋值给新对象。