解析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 相关文章推荐
比Jquery的document.ready更快的方法
Apr 28 Javascript
点击显示指定元素隐藏其他同辈元素的方法
Feb 19 Javascript
JS实现在网页中弹出一个输入框的方法
Mar 03 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
Oct 25 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
Jun 09 Javascript
总结在前端排序中遇到的问题
Jul 19 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
Nov 18 Javascript
vue日期组件 支持vue1.0和2.0
Jan 09 Javascript
微信小程序商品到详情的实现
Jun 27 Javascript
小程序实现选择题选择效果
Nov 04 Javascript
详解JavaScript 中的批处理和缓存
Nov 19 Javascript
vue实现简易音乐播放器
Aug 14 Vue.js
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
PHP解决中文乱码
2017/04/28 PHP
js 跨域和ajax 跨域问题小结
2009/07/01 Javascript
jQuery的Ajax时无响应数据的解决方法
2010/05/25 Javascript
IE6/7/8/9不支持exec的简写方式
2011/05/25 Javascript
浅说js变量
2011/05/25 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
2013/12/11 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
2015/09/12 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
Ajax验证用户名或昵称是否已被注册
2017/04/05 Javascript
jquery实现倒计时小应用
2017/09/19 jQuery
webpack external模块的具体使用
2018/03/10 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
2018/04/11 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
Vue仿微信app页面跳转动画效果
2019/08/21 Javascript
vue+swiper实现左右滑动的测试题功能
2020/10/30 Javascript
浅析python中的分片与截断序列
2016/08/09 Python
基于Django的python验证码(实例讲解)
2017/10/23 Python
python实现手机通讯录搜索功能
2018/02/22 Python
详解Python3之数据指纹MD5校验与对比
2019/06/11 Python
使用pip安装python库的多种方式
2019/07/31 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
Django框架请求生命周期实现原理
2020/11/13 Python
使用css3实现的tab选项卡代码分享
2014/12/09 HTML / CSS
HTML5 placeholder属性详解
2016/06/22 HTML / CSS
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
车辆工程专业求职信
2014/06/14 职场文书
药店促销活动总结
2014/07/10 职场文书
暑期社会实践心得体会
2014/09/02 职场文书
水电维修专业推荐信
2014/09/06 职场文书
2015元旦晚会主持人开场白+结束语
2014/12/14 职场文书
Pyhton模块和包相关知识总结
2021/05/12 Python
Python基础之变量的相关知识总结
2021/06/23 Python
redis 存储对象的方法对比分析
2021/08/02 Redis
Apache Linkis 中间件架构及快速安装步骤
2022/03/16 Servers
《英雄联盟》2022日蚀、月蚀皮肤演示 黑潮亚索曝光
2022/04/13 其他游戏