我现在所知的 Vue 中的懒加载
路由懒加载
将不同路由的组件通过箭头函数引用,而不是直接使用导入过后的组件名来引入。也就是使用 component:() => import(‘../views/home’) 替换 component: Home。让路由被访问时才开始加载对应的组件,这样可以提高项目的加载速度和效率。‘
const router = new VueRouter({ |
图片懒加载
概念
懒加载就是延时加载,也就是当需要用到的时候再去加载
懒加载的优点
- 可以减少首页首次加载的数量,减少服务器的压力
- 当网络叫差时,可以提前给这张图片添加一个低像素图片,使页面结构完整,让用户体验更好一点。
懒加载的原理
原理:当用户滚动页面时,判断元素是否处于可视区域,而可视区域外的元素资源(如图片)不会加载。\n
简单来说就是会先将 img 标签中的 src 路径设置为一张图片,当进行 v-for 遍历时就可以遍历为同一张图片,将其真正的图片地址存储在其自定义属性中(比如data-src)。当js监听到该图片元素进入可视窗口时,即将自定义属性中的地址存储到src属性中,达到懒加载的效果。
如何实现懒加载
// 第一步: 安装 |
注意
上面的 loading 不能写相对路径。因为src中的文件会被 webpack 编译,assets文件夹中的图片地址,会在编译过程中重命名。\n
vue-lazyload 是在 main.js 文件中引入,不会被 webpack 进行编译,这就导致写相对路径 vue-lazyload 会无法获得正确的图片路径。