Skip to content

Vue优化方式

  • v-if 和 v-show 使用
  • Object.freeze()方式冻结 data 中的属性,从而阻止数据劫持
  • 组件销毁的时候会断开所有与实例联系,但是除了 addEventListener,所以当一个组 件销毁的时候需要手动去 removeEventListener
    • 元素已被删除:一旦一个元素被从DOM树中移除,所有绑定到该元素的事件监听器也会被自动清理掉,尤其是那些使用 addEventListener 添加的监听器。由于事件监听器和元素的生命周期相关,元素销毁后,事件监听器就不再有任何有效的目标对象,因此也不再起作用。
  • 图片懒加载
  • 路由懒加载
  • 为减少重新渲染和创建 dom 节点的时间,采用虚拟 dom

defer优化白屏时间

让组件在不同的渲染时机进行渲染

js
// v-if="defer(0)"
function useDefer(frameIndex) {
    const frameCount = ref(0); // 响应式数据,这样可以触发页面渲染
    function update() {
      requestAnimationFrame(() => {
        frameCount.value++;
        update();
      })
    }
    
    update();
    
    return function () {
        if (frameIndex < frameCount) {
            return false
        }
        return true
    }
}

苏ICP备2025160170号-1 | 前端进化之路 | Released under the MIT License.