长列表性能优化
不做响应式
由于部分长简单数据列表,并不需要做响应式,所以我们可以在赋值完毕后,取消响应式,这样可以减少相关的事件监听,从而减少性能消耗,
可以采用 Object.freeze 来 冻结,使对象的 configable 属性为 false 进而不能被修改
或者 直接在 created 之后在使用 this.xxx 进行引用,这时已经数据已经初始化完了,this.xxx 没有被双向绑定
懒加载
出现长列表的时候,第一次并不完全渲染所有的 DOM 节点,即可解决一部分场景下的问题。
虚拟滚动
简单点说,就是只渲染可视区域的内容 ,需要了解的是,这个能应用的场景并不多,除非是特别长的列表,不然可能你做滚动的监听的性能消耗就入不敷出了 原理是监听滚动事件,动态更新需要显示的 DOM,并计算出在视图中的位移,这也意味着在滚动过程需要实时计算,有一定成本,所以如果数据量不是很大的情况下,用普通的滚动就行(详细了解可以查看这里 )
浙公网安备 33010602011771号