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 相关文章推荐
js实现网站首页图片滚动显示
Feb 04 Javascript
jQuery背景插件backstretch使用指南
Apr 21 Javascript
原生javascript实现图片无缝滚动效果
Feb 12 Javascript
使用vue.js开发时一些注意事项
Apr 27 Javascript
js实现千分符和保留几位小数的简单实例
Aug 01 Javascript
jQuery中的AjaxSubmit使用讲解
Sep 25 Javascript
javascript图片预览和上传(兼容IE)
Mar 15 Javascript
Vue调试神器vue-devtools安装方法
Dec 12 Javascript
vue2.0 父组件给子组件传递数据的方法
Jan 15 Javascript
JavaScript设计模式之工厂模式简单实例教程
Jul 03 Javascript
qrcode生成二维码微信长按无法识别问题的解决
Apr 04 Javascript
Vue和React有哪些区别
Sep 12 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蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
PHP文件上传类实例详解
2016/04/08 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
php根据数据id自动生成编号的实现方法
2016/10/16 PHP
详解yii2实现分库分表的方案与思路
2017/02/03 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
2009/06/02 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
WEB前端设计师常用工具集锦
2014/12/09 Javascript
node.js中的fs.fsyncSync方法使用说明
2014/12/15 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
AngularJS Controller作用域
2017/01/09 Javascript
js编写简易的计算器
2020/07/29 Javascript
[20:57]Ti4主赛事第三天开幕式
2014/07/21 DOTA
Python实现的监测服务器硬盘使用率脚本分享
2014/11/07 Python
使用FastCGI部署Python的Django应用的教程
2015/07/22 Python
Python使用matplotlib简单绘图示例
2018/02/01 Python
Python中的上下文管理器和with语句的使用
2018/04/17 Python
Python爬虫获取图片并下载保存至本地的实例
2018/06/01 Python
BP神经网络原理及Python实现代码
2018/12/18 Python
PyTorch的深度学习入门教程之构建神经网络
2019/06/27 Python
python groupby 函数 as_index详解
2019/12/16 Python
基于python模拟TCP3次握手连接及发送数据
2020/11/06 Python
西班牙英格列斯百货法国官网:El Corte Inglés法国
2017/07/09 全球购物
德国药房apodiscounter中文官网:德国排名前三的网上药店
2019/06/03 全球购物
印度领先的眼镜电子商务网站:Lenskart
2019/12/16 全球购物
万代美国官网:PREMIUM BANDAI USA
2020/09/11 全球购物
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
教育学专业实习生的自我鉴定
2013/11/26 职场文书
员工培训邀请函
2014/02/02 职场文书
员工考核管理制度
2014/02/02 职场文书
学校领导班子对照检查材料
2014/08/28 职场文书
2015年元旦联欢晚会活动总结
2014/11/28 职场文书
python OpenCV学习笔记
2021/03/31 Python
无线电通信名词解释
2022/02/18 无线电