除了路由的懒加载外,组件的懒加载在许多场景下也有告急的作用
举个?:
home 页面 和 about 页面,都引入了 dialogInfo 弹框组件,该弹框不是一进入页面就加载,而是须要用户手动触发后才展示出来
home 页面示例:
<template> <div终极,使用组件路由懒后,该项目标首页资源进一步镌汰约 11%
组件懒加载的使用场景
假造滚动的插件有许多,比如 vue-virtual-scroller、vue-virtual-scroll-list、react-tiny-virtual-list、react-virtualized 等
这里简单先容 vue-virtual-scroller 的使用
// 安装插件npm install vue-virtual-scroller// main.jsimport VueVirtualScroller from 'vue-virtual-scroller'import 'vue-virtual-scroller/dist/vue-virtual-scroller.css'Vue.use(VueVirtualScroller)// 使用<template> <RecycleScroller 测试实行:
如果直接把下面这段代码直接丢到主线程中,盘算过程中页面不停处于卡死状态,无法操纵
let sum = 0;for (let i = 0; i < 200000; i++) { for (let i = 0; i < 10000; i++) { sum += Math.random() } }使用 Web Worker 实行上述代码时,盘算过程中页面正常可操纵、无卡顿
// worker.jsonmessage = function (e) { // onmessage获取传入的初始值 let sum = e.data; for (let i = 0; i < 200000; i++) { for (let i = 0; i < 10000; i++) { sum += Math.random() } } // 将盘算的效果通报出去 postMessage(sum);}Web Worker 详细的使用与案例,详情见 一文彻底相识Web Worker,十万、百万条数据都是弟弟?
Web Worker 的通讯时长
并不是实行时间高出 50ms 的使命,就可以使用 Web Worker,还要先考虑通讯时长的题目
如果一个运算实行时长为 100ms,但是通讯时长为 300ms, 用了 Web Worker大概会更慢
比如新建一个 web worker, 欣赏器会加载对应的 worker.js 资源,下图中的 Time 是这个资源的通讯时长(也叫加载时长) 当使命的运算时长 - 通讯时长 > 50ms,保举使用Web Worker
7、requestAnimationFrame 制作动画