vue.js 几个小坑
无论如何,vue.js都是坑很少的了,并且大多数坑是js本身所导致的,并且cn.vuejs.org上也说明了,不过如果你没注意看这些坑边的警告,就可能掉进去半天找不到问题出口。
举例是:
new Vue({
el:'body',
data: {
obj: {x:1},
arr: [1,2,3,{y:2}],
}
})
1. data中的数据,如果是对象{},再次给它赋值会破坏数据-视图绑定。如:
this.obj = {} //破坏绑定
所以别这么做,需要增加新的属性,直接:
this.obj.newkey = 'newvalue'
删除属性可以:
delete this.obj.x
2. 如果是数组,则千万不能直接对索引值赋值,这也会破坏绑定。
this.arr[1] = 9 //破坏绑定
要这么做:
this.arr.$set(1,9)
如果要增加新的,用push或者unshift
this.arr[4] = 7 //破坏绑定
this.arr.push(7) //这样是OK的
3. 只要不是直接对数组索引值,对索引值下面的属性是可以这么做的:
this.arr[3].x = 11 //不会破坏绑定
4. 貌似与对象不同,数组可以赋值为空数组而不会破坏把绑定
this.arr = [] //没有问题