美文网首页让前端飞随笔-生活工作点滴
vue路由懒加载,vue首屏加载慢和使用懒加载prefetch问

vue路由懒加载,vue首屏加载慢和使用懒加载prefetch问

作者: 时光遣散故人_ | 来源:发表于2019-07-11 12:12 被阅读63次

使用路由懒加载以后 webpack打包可以根据页面划分来生成文件,根据路由的不同来加载文件,解决了首页一次性加载文件过大导致打开过慢问题的问题。

//常规引入页面
import Home from './views/Home.vue';
const routes = [
    { path: '/', name: 'home', component: Home, meta: { title: 'Home' } },
];

以上是常规引入页面得部分
下面来看下使用路由懒加载的写法

实现懒加载部分

const Home = () => import('./views/home.vue');
const pageA = () => import('./views/homeA.vue');
const pageB = () => import('./views/homeB.vue');
const routes = [
    { path: '/', name: 'home', component: Home, meta: { title: 'Home' } },
    { path: '/a', name: 'pageA', component: pageA, meta: { title: 'APage' } },
    { path: '/b', name: 'pageB', component: pageB, meta: { title: 'BPage' } }
];

看一下打包之后的效果,会看到打包出了多个chunk异步块。


实现懒加载后打包
如果想把一些页面打包到同一个chunk块呢?只需要通过一个特殊的注释语法来提供 chunk name就可以了。
//引入页面
const Home = () => import('./views/Home.vue');
//把页面进行分组 home-group
const pageA = () => import(/* webpackChunkName: "home-group" */ './views/homeA.vue');
const pageB = () => import(/* webpackChunkName: "home-group" */ './views/homeB.vue');
const routes = [
    { path: '/', name: 'home', component: Home, meta: { title: 'Home' } },
    { path: '/a', name: 'pageA', component: pageA, meta: { title: 'APage' } },
    { path: '/b', name: 'pageB', component: pageB, meta: { title: 'BPage' } }
];
使用webpackChunkName

这样vue 的路由懒加载就完成了

但是在实际在浏览器里访问首页的时候也加载了其他chunk的块,是prefetch提前加载的原因,理论上这个是不影响加载速度的,但是我实际测试会影响一些。

image.png
可以通过在vue.config.js里添加以下配置Prefetch
// vue.config.js
module.exports = {
  chainWebpack: config => {
    // 移除 prefetch 插件
    config.plugins.delete('prefetch')

    // 或者
    // 修改它的选项:
    config.plugin('prefetch').tap(options => {
      options[0].fileBlacklist = options[0].fileBlacklist || []
      options[0].fileBlacklist.push(/myasyncRoute(.)+?\.js$/)
      return options
    })
  }
}

相关文章

  • Vue路由懒加载

    VUE路由懒加载及组件懒加载一、为什么要使用路由懒加载为给客户更好的客户体验,首屏组件加载速度更快一些,解决白屏问...

  • vue路由懒加载,vue首屏加载慢和使用懒加载prefetch问

    使用路由懒加载以后 webpack打包可以根据页面划分来生成文件,根据路由的不同来加载文件,解决了首页一次性加载文...

  • vue路由懒加载和组件懒加载

    vue路由懒加载及组件懒加载 一、为什么要使用路由懒加载 为给客户更好的客户体验,首屏组件加载速度更快一些,解决白...

  • vue中组件懒加载

    vue中组件懒加载的方法 1.异步实现路由懒加载 2.import(推荐使用这种方式) 同理,路由懒加载和组件懒加...

  • vue中页面加载进度条效果的实现

    效果图: 1.介绍: 我们在vue项目中,为了减少首屏加载的时间,通常会开启路由的懒加载。路由懒加载配合gizp确...

  • 浅谈 vue项目优化

    1.路由懒加载 使用vue-router的方法 2.图片懒加载 组件缓存 使用vue的,详...

  • 图片懒加载组件与应用

    实现图片只加载首屏用到的,其他的等滚动到再加载这就是图片懒加载 使用vue-lazyload插件实现 安装vue-...

  • 复习3

    vue路由懒加载 1.vue路由懒加载解决的什么 问题:解决打包后文件过大的问题,从而优化页面加载,提升性能 注意...

  • vue路由懒加载及组件懒加载

    路由 和 组件 的常用两种懒加载方式:1、vue异步组件实现路由懒加载component:resolve=>(['...

  • Vue项目首屏加载速度优化

    一、路由懒加载 1、作用 提升用户体验,提升首屏组件加载速度,解决白屏问题 2、代码示例 2.1 未使用路由懒加载...

网友评论

    本文标题:vue路由懒加载,vue首屏加载慢和使用懒加载prefetch问

    本文链接:https://www.haomeiwen.com/subject/hnkrkctx.html