解析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 相关文章推荐
新手入门常用代码集锦
Jan 11 Javascript
单击复制文字兼容各浏览器的完美解决方案
Jul 04 Javascript
JS文本框追加多个下拉框的值的简单实例
Jul 12 Javascript
js点击按钮实现带遮罩层的弹出视频效果
Dec 19 Javascript
javascript学习之json入门
Dec 22 Javascript
Web 开发中Ajax的Session 超时处理方法
Jan 19 Javascript
javascript实现最长公共子序列实例代码
Feb 05 Javascript
使用vue-router完成简单导航功能【推荐】
Jun 28 Javascript
浅谈关于iview表单验证的问题
Sep 29 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
May 09 Javascript
React中获取数据的3种方法及优缺点
Feb 18 Javascript
quickjs 封装 JavaScript 沙箱详情
Nov 02 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
用PHP和ACCESS写聊天室(三)
2006/10/09 PHP
php实时倒计时功能实现方法详解
2017/02/27 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
2017/03/14 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
js时间戳转为日期格式的方法
2015/12/28 Javascript
Google 地图API Map()构造器详解
2016/08/06 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
2016/12/25 Javascript
Vue.js实现一个todo-list的上移下移删除功能
2017/06/26 Javascript
vue实现nav导航栏的方法
2017/12/13 Javascript
axios发送post请求springMVC接收不到参数的解决方法
2018/03/05 Javascript
Vue动态获取width的方法
2018/08/22 Javascript
js+canvas实现两张图片合并成一张图片的方法
2019/11/01 Javascript
vue学习笔记之slot插槽用法实例分析
2020/02/29 Javascript
用map函数来完成Python并行任务的简单示例
2015/04/02 Python
在Python中使用AOP实现Redis缓存示例
2017/07/11 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
python实现学员管理系统
2019/02/26 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
Python 实现简单的客户端认证
2020/07/29 Python
国际化的太阳镜及太阳镜配件零售商:Sunglass Hut
2016/07/26 全球购物
意大利奢侈品购物网站:Deliberti
2019/10/08 全球购物
大学生四个方面的自我评价
2013/09/19 职场文书
自荐信模版
2013/10/24 职场文书
行政助理的职责
2013/11/14 职场文书
党员公开承诺书范文
2014/03/25 职场文书
总结表彰大会主持词
2014/03/26 职场文书
应届生求职自荐信范文
2014/04/07 职场文书
《鸿门宴》教学反思
2014/04/22 职场文书
优秀护士演讲稿
2014/04/30 职场文书
法人授权委托书范本
2014/09/17 职场文书
2014党的群众路线教育实践活动总结报告
2014/10/31 职场文书
工程资料员岗位职责
2015/04/13 职场文书
秋菊打官司观后感
2015/06/03 职场文书
GoFrame基于性能测试得知grpool使用场景
2022/06/21 Golang