读vue源码感悟

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

for (var i=0,l= items.length;i<l;i++){} 

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

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


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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容