在vue 单页应用中,如果路由不实现懒加载,那么打包出来的文件将会非常大,加载也会非常慢。vue-router 官网也有相应的介绍,但是具体怎么去实现还是讲的比较模糊的,下面将一步步讲解配置路由懒加载。

先看一下依赖版本:

webpack 3.6.x, vue 2.5.x, babel 6.x

使用vue-cli 2.9构建的项目。

1. 首先下载babel 插件

babel-plugin-syntax-dynamic-import 6.18.0 到本地依赖
2. 在 .babelrc中配置插件
{
"presets": [
["env", {
"modules": false,
"targets": {
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
}
}],
"stage-2"
],
"plugins": [
"transform-vue-jsx",
"transform-runtime",
"syntax-dynamic-import", // 配置这个插件
[
"component",
{
"libraryName": "element-ui",
"styleLibraryName": "theme-chalk"
}
]
]
}

3. 更改打包配置 webpack.prod.conf.js

将chunkFilename的 id 改成 name

添加 new webpack.NamedChunksPlugins()插件到plugin 中

4. 接下来就是更改router 的配置,实现按需引入

import Vue from 'vue';
import Router from 'vue-router'; Vue.use(Router); export default new Router({
routes: [
{
path: '*',
redirect: {
name: 'Home'
}
},
{
path: '/home',
name: 'Home',
component: () => import(/* webpackChunkName: "home" */ '@/components/Home')
},
{
path: '/remind',
name: 'Remind',
component: () => import(/* webpackChunkName: "order" */ '@/components/Remind')
}
]
});

利用webpack 的特殊注释语句来提供chunkName (需要webpack > 2.4)。

Webpack 会将任何一个异步模块与相同的块名称组合到相同的异步块中。

 

vue-cli 项目实现路由懒加载的更多相关文章

  1. vue(18)路由懒加载

    什么是路由懒加载 官方的解释: 当打包构建应用时,JavaScript 包会变得非常大,影响页面加载. 如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更 ...

  2. Vue.js笔记 — vue-router路由懒加载

    用vue.js写单页面应用时,会出现打包后的JavaScript包非常大,影响页面加载,我们可以利用路由的懒加载去优化这个问题,当我们用到某个路由后,才去加载对应的组件,这样就会更加高效,实现代码如下 ...

  3. Vue结合webpack实现路由懒加载和分类打包

    https://blog.csdn.net/weixin_39205240/article/details/80742723

  4. 【巷子】---vue路由懒加载---【vue】

    一.懒加载 也叫延迟加载或者按需加载,即在需要的时候进行加载,   二.为什么要使用懒加载 像vue这种单页面应用,如果没有应用懒加载,运用webpack打包后的文件将会异常的大,造成进入首页时,需要 ...

  5. vue路由懒加载及组件懒加载

    一.为什么要使用路由懒加载 为给客户更好的客户体验,首屏组件加载速度更快一些,解决白屏问题. 二.定义 懒加载简单来说就是延迟加载或按需加载,即在需要的时候的时候进行加载. 三.使用 常用的懒加载方式 ...

  6. vue项目性能优化(路由懒加载、gzip加速、cdn加速)

    前端工程性能优化一说意义深远悠长,本章主要介绍除了一些基础优化外如何实行路由懒加载.Gzip加速.CDN加速,让网页飞的快一些. 基础优化 老生常谈的一些: 不要在模板中写复杂的表达式 慎用watch ...

  7. vue-router路由懒加载(解决vue项目首次加载慢)

    懒加载:----------------------------------------------------? 也叫延迟加载,即在需要的时候进行加载,随用随载. 为什么需要懒加载? 像vue这种单 ...

  8. vue+element ui项目总结点(一)select、Cascader级联选择器、encodeURI、decodeURI转码解码、mockjs用法、路由懒加载三种方式

    不多说上代码: <template> <div class="hello"> <h1>{{ msg }}</h1> <p> ...

  9. vue-cli3项目首页加载速度优化(cdn加速,路由懒加载,gzip压缩)

    今天打算上线vue的单页面项目,上线后,首页加载速度巨慢! 原因是项目上线后,网速不够快,加载js,css等资源很慢, 打开打包好的文件发现chunk-vendors.xxxxxxx.js的包很大,达 ...

随机推荐

  1. vs问题--------------标记为系统必备组建...

    问题:标记为系统必备组建 要将程序集“D:\project\DMS\DMSGaeaService\TmsApplication\bin\Debug\Jns.Gaea.dll”标记为系统必备组件,必须对 ...

  2. 测试使用 Open Live Writer写博客

    这里测试文字的显示: 第一段 第二段 第三段 这里测试图片的显示: 这里测试视频的显示: 测试不了,是不是版权问题?

  3. oracle 语句导出 导入一张表语句

    导出: exp system/midsoft@bafy0929 file=d:\dzbl_models_temp.dmp tables=(emr.dzbl_models_temp) ; 导入:imp ...

  4. python命令行运行py文件找不到模块的解决办法

    问题: 新建了一个项目,目录结构如下: 然后在pycharm中运行glovar是没有问题的,但是在命令行中运行就会提示找不到init模块 这是因为在pycharm中运行的时候,pycharm会自动将项 ...

  5. python文本处理,format方法--转子网上 crifan

    原文出处:https://www.crifan.com/python_string_format_fill_with_chars_and_set_alignment/ [问题] 想要获得这样的效果: ...

  6. wpf binging(三) 绑定方法的返回值

    有时候我们不能绑定对象的属性或者成员,我们需要绑定一个对象的方法时 可以用 ObjectDataProvider 比如先声明一个类 含有加法 ObjectDataProvider 的简单使用 以下为综 ...

  7. css+jquery 实现图片局部放大预览

    今天有时间开始动手,使用css+jquery实现了图片局部放大的组件,首先看看效果图: 界面设计思路如下: 1.两个div,左边放图片的缩略图 2.在左边缩略图鼠标移动的时候,区域(效果图中的网格) ...

  8. 启动和停止SQL Server服务三种形式

    1.后台启动和停止服务 计算机>右键>管理>服务和应用>服务>sqlserver(MSSSQLSERVER) 2.配置管理器启动和停止服务 开始>所有程序>M ...

  9. CSS学习笔记_day3

    一.浮动的清除 1.给祖先元素加高度 <style> * { padding: 0; margin: 0; } .box1 { height: 100px; /**/ } ul { /*去 ...

  10. ANOVA-方差分析和单尾方差分析

    https://www.cnblogs.com/webRobot/p/6877283.html https://blog.csdn.net/zijinmu69/article/details/8056 ...