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 相关文章推荐
基于jquery的仿百度的鼠标移入图片抖动效果
Sep 17 Javascript
利用jQuery的deferred对象实现异步按顺序加载JS文件
Mar 17 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
Oct 22 Javascript
提高jQuery性能的十个诀窍
Nov 14 Javascript
jQuery获取当前对象标签名称的方法
Feb 07 Javascript
跟我学习javascript的最新标准ES6
Nov 20 Javascript
浅谈键盘上回车按钮的js触发事件
Feb 13 Javascript
vue webpack打包后图片路径错误的完美解决方法
Dec 07 Javascript
webpack4实现不同的导出类型
Apr 09 Javascript
小程序input数据双向绑定实现方法
Oct 17 Javascript
node事件循环和process模块实例分析
Feb 14 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
Apr 30 jQuery
详解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实现的一个很好用HTML解析器类可用于采集数据
2013/09/23 PHP
PHP使用PDO操作数据库的乱码问题解决方法
2016/04/08 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
javascript调试说明
2010/06/07 Javascript
StringTemplate遇见jQuery冲突的解决方法
2011/09/22 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
jquery实现手风琴效果
2015/11/20 Javascript
原生JavaScript实现瀑布流布局
2020/06/28 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
详谈表单格式化插件jquery.serializeJSON
2017/06/23 jQuery
Vue+Flask实现简单的登录验证跳转的示例代码
2018/01/13 Javascript
详解PHP后期静态绑定分析与应用
2018/03/21 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
在vue中实现某一些路由页面隐藏导航栏的功能操作
2020/09/21 Javascript
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
[06:53]2018DOTA2国际邀请赛寻真——为复仇而来的Newbee
2018/08/15 DOTA
Pyhton中单行和多行注释的使用方法及规范
2016/10/11 Python
浅谈Python爬取网页的编码处理
2016/11/04 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
2017/03/11 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
2018/07/12 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
基于HTML5 Canvas:字符串,路径,背景,图片的详解
2013/05/09 HTML / CSS
recorder.js 基于Html5录音功能的实现
2020/05/26 HTML / CSS
Kate Spade美国官网:纽约新兴时尚品牌,以包包闻名于世
2017/11/09 全球购物
美国体育用品在线:Modell’s Sporting Goods
2018/06/07 全球购物
物理教师自荐信范文
2013/12/28 职场文书
家居饰品店创业计划书
2014/01/31 职场文书
军校大学生个人的自我评价
2014/02/17 职场文书
演讲稿格式范文
2014/05/19 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
关于安全的标语
2014/06/10 职场文书
2014年六五普法工作总结
2014/11/25 职场文书
2015年大学班主任工作总结
2015/04/30 职场文书
毕业生政审意见范文
2015/06/04 职场文书
2015暑假实习报告范文
2015/07/13 职场文书