vue代码分割的实现(codesplit)


Posted in Javascript onNovember 13, 2018

在vue单页应用中,若不做任何处理,所有vue文件会打包为一个文件,这个文件非常的大,造成网页在首次进入时比较缓慢。做了代码分割后,会将代码分离到不同的bundle中,然后进行按需加载这些文件,能够提高页面首次进入的速度,网站性能也能够得到提升。

一、未分割时浏览器加载js的情况

vue代码分割的实现(codesplit) 

可以看到,只有一个app.js,大小为595kb,若在实际的大型项目中,这个大小会更大

二、做了代码分割后浏览器加载js情况

vue代码分割的实现(codesplit) 

发现多了一个js文件,且app.js大小也变小了,下面看看点击到其他页面时加载情况

vue代码分割的实现(codesplit) 

点到其他页面后,页面会依次加载当前页面的js

三、代码中如何使用

该demo中使用的vue版本号为2.5.2,不同版本的使用方式可能会有所不同

1、首先,看一下路由按需加载的做法

下面是修改前的代码

import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
import page1 from '@/page/page1'
import page2 from '@/page/page2'
import page3 from '@/page/page3'

Vue.use(Router)

export default new Router({
 routes: [
  {
   path: '/',
   name: 'HelloWorld',
   component: HelloWorld
  },
  {
   path: '/page1',
   name: 'page1',
   component: page1
  },
  {
   path: '/page2',
   name: 'page2',
   component: page2
  },
  {
   path: '/page3',
   name: 'page3',
   component: page3
  }
 ]
})

此时,我们只需将

import page1 from '@/page/page1'

改为

const page1 = () => import('@/page/page1')

这样,我们在切换路由时便达到按需加载了,怎么样,是不是很简单

2、在组件中按需加载其他组件

我们还是先来看看修改前的代码,此时引用组件的方式为传统正常的方式

import vOther from '@/components/other'
export default {
  components: {
    vOther
  }
}

我们只需做如下修改,便能达到我们想要的效果,将

import vOther from '@/components/other'

改为

const vOther = () => import('@/components/other')

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

Javascript 相关文章推荐
JsEasy简介 JsEasy是什么?与下载
Mar 07 Javascript
jquery插件 autoComboBox 下拉框
Dec 22 Javascript
JavaScript中的函数(二)
Dec 23 Javascript
微信jssdk在iframe页面失效问题的解决措施
Mar 03 Javascript
Javascript数组Array基础介绍
Mar 13 Javascript
JS+CSS3模拟溢出滚动效果
Aug 12 Javascript
JS SetInterval 代码实现页面轮询
Aug 11 Javascript
vue 表单输入格式化中文输入法异常问题
May 30 Javascript
JS实现带阴历的日历功能详解
Jan 24 Javascript
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
Aug 27 jQuery
JS几个常用的函数和对象定义与用法示例
Jan 15 Javascript
JS删除对象中某一属性案例详解
Sep 08 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
Nov 13 #Javascript
JS获取当前时间的实例代码(昨天、今天、明天)
Nov 13 #Javascript
checkbox在vue中的用法小结
Nov 13 #Javascript
React父子组件间的传值的方法
Nov 13 #Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
Nov 13 #Javascript
详解如何用typescript开发koa2的二三事
Nov 13 #Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
Nov 13 #Javascript
You might like
php MessagePack介绍
2013/10/06 PHP
PHP面相对象中的重载与重写
2017/02/13 PHP
关于PHP定时发送服务的解决办法
2017/04/23 PHP
php格式文件打开的四种方法
2018/02/24 PHP
php+iframe 实现上传文件功能示例
2020/03/04 PHP
jQuery 名称冲突的解决方法
2011/04/08 Javascript
cument.execCommand()用法深入理解
2012/12/04 Javascript
jquery插件jquery倒计时插件分享
2013/12/27 Javascript
浅析js中的浮点型运算问题
2014/01/06 Javascript
文本框文本自动补全效果示例分享
2014/01/19 Javascript
javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法
2014/04/12 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
悬浮广告方法日常收集整理
2016/03/18 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
jQuery的实例及必知重要的jQuery选择器详解
2016/05/20 Javascript
jQuery限制图片大小的方法
2016/05/25 Javascript
js实现文字超出部分用省略号代替实例代码
2016/09/01 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
ES6教程之for循环和Map,Set用法分析
2017/04/10 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
2017/06/13 Javascript
node.js中fs文件系统目录操作与文件信息操作
2018/02/24 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
react结合bootstrap实现评论功能
2020/05/30 Javascript
pyqt 实现在Widgets中显示图片和文字的方法
2019/06/13 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
使用Keras中的ImageDataGenerator进行批次读图方式
2020/06/17 Python
迪卡侬比利时官网:Decathlon比利时
2019/12/28 全球购物
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
教师年度考核自我鉴定
2014/01/19 职场文书
幼儿园教师奖惩制度
2014/02/01 职场文书
《雨点儿》教学反思
2014/04/14 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
动物科学专业求职信
2014/07/27 职场文书
Python 如何实现文件自动去重
2021/06/02 Python