解析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代码复用模式详解
Nov 07 Javascript
js基础知识(公有方法、私有方法、特权方法)
Nov 06 Javascript
AngularJS实现一次监听多个值发生的变化
Aug 31 Javascript
BootStrap Validator使用注意事项(必看篇)
Sep 28 Javascript
Select2.js下拉框使用小结
Oct 24 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
Nov 07 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
Apr 13 jQuery
JS动态添加的div点击跳转到另一页面实现代码
Sep 30 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
Dec 06 Javascript
javascript实现图片轮播代码
Jul 09 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
Jun 29 Javascript
Vue实现点击当前行变色
Dec 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 配置文件中open_basedir选项作用
2009/07/19 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
PHP array_multisort() 函数的深入解析
2013/06/20 PHP
php反射应用示例
2014/02/25 PHP
php使用json_encode对变量json编码
2014/04/07 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
2015/03/04 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
jquery 可拖拽的窗体控件实现代码
2010/03/21 Javascript
JQuery入门——用映射方式绑定不同事件应用示例
2013/02/05 Javascript
js动态创建、删除表格示例代码
2013/08/07 Javascript
JS取文本框中最小值的简单实例
2013/11/29 Javascript
js实现俄罗斯方块小游戏分享
2014/01/31 Javascript
浅析Node.js中使用依赖注入的相关问题及解决方法
2015/06/24 Javascript
JavaScript操作class和style样式代码详解
2016/02/13 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
2016/06/25 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
2017/05/26 jQuery
JS基于正则实现数字千分位用逗号分隔的方法
2017/06/16 Javascript
bootstrap是什么_动力节点Java学院整理
2017/07/14 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
2017/09/19 jQuery
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
js实现一款简单踩白块小游戏(曾经很火)
2019/12/02 Javascript
Vue点击切换Class变化,实现Active当前样式操作
2020/07/17 Javascript
js实现表格数据搜索
2020/08/09 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
python生成n个元素的全组合方法
2018/11/13 Python
python写日志文件操作类与应用示例
2019/07/01 Python
英国家电购物网站:Sonic Direct
2019/03/26 全球购物
会计电算化个人自我评价
2013/11/17 职场文书
企业内控岗位的职责
2014/02/07 职场文书
餐厅总厨求职信
2014/03/04 职场文书
就业协议书怎么填
2014/04/11 职场文书
个人担保书范文
2014/05/20 职场文书
工作犯错保证书
2015/05/11 职场文书