解析vue路由异步组件和懒加载案例


Posted in Javascript onJune 08, 2018

最近研究了vue性能优化,涉及到vue异步组件和懒加载。一番研究得出如下的解决方案。

原理:利用webpack对代码进行分割是懒加载的前提,懒加载就是异步调用组件,需要时候才下载。

案例:

首先是组件,创建四个组件分别命名为first、second、three和four;内容如下

first

<template> 

<div>我是第一个页面</div> 

</template>

 

second

<template> 

<div>我是第二个页面</div> 

</template>

 

three

<template> 

<div>我是第三个页面</div> 

</template>

four
<template> 
<div>我是第四个页面</div> 
</template>

路由index.js代码,异步组件方式有两种,代码中的方案1和方案2;注意:方案1需要添加syntax-dynamic-import插件

import Vue from 'vue'

import VueRouter from 'vue-router'

/*import First from '@/components/First' 

import Second from '@/components/Second'*/

  

Vue.use(VueRouter) 

//方案1

const first =()=>import(/* webpackChunkName: "group-foo" */ "../components/first.vue");

const second = ()=>import(/* webpackChunkName: "group-foo" */ "../components/second.vue");

const three = ()=>import(/* webpackChunkName: "group-fooo" */ "../components/three.vue");

const four = ()=>import(/* webpackChunkName: "group-fooo" */ "../components/four.vue");

//方案2

const first = r => require.ensure([], () => r(require('../components/first.vue')), 'chunkname1')

const second = r => require.ensure([], () => r(require('../components/second.vue')), 'chunkname1')

const three = r => require.ensure([], () => r(require('../components/three.vue')), 'chunkname2')

const four = r => require.ensure([], () => r(require('../components/four.vue')), 'chunkname2')

 

//懒加载路由 

const routes = [ 

 {  //当首次进入页面时,页面没有显示任何组件;让页面一加载进来就默认显示first页面 

 path:'/', //重定向,就是给它重新指定一个方向,加载一个组件; 

 component:first 

 }, 

 { 

 path:'/first', 

 component:first

 }, 

 { 

 path:'/second', 

 component:second

 }, { 

 path:'/three', 

 component:three

 }, 

 { 

 path:'/four', 

 component:four

 } 

//这里require组件路径根据自己的配置引入 

] 

//最后创建router 对路由进行管理,它是由构造函数 new vueRouter() 创建,接受routes 参数。 

  

 const router = new VueRouter({ 

 routes 

}) 
export default router;

最后,如果想要让build之后的代码更便于识别,配置webpack代码

解析vue路由异步组件和懒加载案例

运行 npm run build结果

解析vue路由异步组件和懒加载案例

注意方案1和方案2只能用一个。然后运行项目试验一下就可以了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript客户端将指定区域导出到Word、Excel的代码
Oct 22 Javascript
javascript 面向对象编程 function也是类
Sep 17 Javascript
javascript 语法基础 想学习js的朋友可以看看
Dec 16 Javascript
28个JS验证函数收集
Mar 02 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
Jun 30 Javascript
DOM基础教程之事件类型
Jan 20 Javascript
学习javascript面向对象 掌握创建对象的9种方式
Jan 04 Javascript
webpack入门必知必会
Jan 16 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
Apr 13 Javascript
在 Vue.js中优雅地使用全局事件的方法
Feb 01 Javascript
vue学习笔记之slot插槽用法实例分析
Feb 29 Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
Jul 23 Javascript
node中modules.exports与exports导出的区别
Jun 08 #Javascript
Vue不能观察到数组length的变化
Jun 08 #Javascript
Node.js中的child_process模块详解
Jun 08 #Javascript
详解使用 Node.js 开发简单的脚手架工具
Jun 08 #Javascript
使用JavaScript生成罗马字符的实例代码
Jun 08 #Javascript
jQuery实现表单动态加减、ajax表单提交功能
Jun 08 #jQuery
Node.js中你不可不精的Stream(流)
Jun 08 #Javascript
You might like
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
jquery刷新页面的实现代码(局部及全页面刷新)
2011/07/11 Javascript
jQuery ajax serialize()方法的使用以及常见问题解决
2013/01/27 Javascript
UpdatePanel和Jquery冲突的解决方法
2013/04/01 Javascript
javascript强大的日期函数代码分享
2013/09/04 Javascript
jQuery的cookie插件实现保存用户登陆信息
2014/04/15 Javascript
JS长整型精度问题实例分析
2015/01/13 Javascript
JS+CSS实现淡入式焦点图片幻灯切换效果的方法
2015/02/26 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
vue+element-ui+ajax实现一个表格的实例
2018/03/09 Javascript
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
vuedraggable+element ui实现页面控件拖拽排序效果
2020/07/29 Javascript
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
2019/03/06 jQuery
详解VUE前端按钮权限控制
2019/04/26 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
2020/04/09 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
2020/05/15 Javascript
pyenv命令管理多个Python版本
2017/03/26 Python
Python实现基于二叉树存储结构的堆排序算法示例
2017/12/08 Python
Python生成器以及应用实例解析
2018/02/08 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
python发送邮件脚本
2018/05/22 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
2019/06/26 Python
python中如何使用insert函数
2020/01/09 Python
Python异步编程之协程任务的调度操作实例分析
2020/02/01 Python
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
50道外企软件测试面试题
2014/08/18 面试题
应届毕业生专业个人求职自荐信格式
2013/11/20 职场文书
精彩的推荐信范文
2013/11/26 职场文书
助人为乐表扬信范文
2014/01/14 职场文书
企业员工培训感言
2014/02/26 职场文书
售后求职信范文
2014/03/15 职场文书
最新离婚协议书范本
2014/08/19 职场文书
单位法人授权委托书范本
2014/10/09 职场文书
车辆安全隐患排查制度
2015/08/05 职场文书