读vue源码感悟

1. 使用for循环时,将items.length缓存,提高性能:

for (var i=0,l= items.length;i

避免每次都去计算数组的长度。

2. Vue.js 采取的是对几乎每一个可能改变数据的方法进行 prototype 更改


读vue源码感悟_第1张图片

但这个策略主要面临两个问题:

1.无法监听数据的length,导致arr.length这样的数据改变无法被监听

2.通过角标更改数据,即类似arr[2] = 1这样的赋值操作,也无法被监听

同时 Vue.js 提供了两个额外的“糖方法”$set和$remove来弥补这方面限制带来的不便。整体上看这是个取舍有度的设计。我个人之前在设计数据绑定库的时候也采取了类似的设计 (一个半途而废的内部项目就不具体献丑了),所以比较认同也有共鸣。

你可能感兴趣的:(读vue源码感悟)