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 + Flex 通过拖拽方式动态改变图片的代码
Aug 03 Javascript
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
Jun 21 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
May 06 Javascript
jquery+css实现的红色线条横向二级菜单效果
Aug 22 Javascript
详解JavaScript模块化开发
Dec 04 Javascript
使用3D引擎threeJS实现星空粒子移动效果
Sep 13 Javascript
js实现以最简单的方式将数组元素添加到对象中的方法
Dec 20 Javascript
利用angular、react和vue实现相同的面试题组件
Feb 19 Javascript
自己动手封装一个React Native多级联动
Sep 19 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
Jul 18 Javascript
vue实现瀑布流组件滑动加载更多
Mar 10 Javascript
JS轻量级函数式编程实现XDM二
Jun 16 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
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
3.从实例开始
2006/10/09 PHP
php 图片上添加透明度渐变的效果
2009/06/29 PHP
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
thinkPHP使用post方式查询时分页失效的解决方法
2015/12/09 PHP
PHP函数checkdnsrr用法详解(Windows平台用法)
2016/03/21 PHP
php结合mysql与mysqli扩展处理事务的方法
2016/06/29 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
基于jquery的回到页面顶部按钮
2011/06/27 Javascript
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
js获取html文件的思路及示例
2013/09/17 Javascript
JQuery中$.each 和$(selector).each()的区别详解
2015/03/13 Javascript
VC调用javascript的几种方法(推荐)
2016/08/09 Javascript
bootstrap中添加额外的图标实例代码
2017/02/15 Javascript
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
JS实现的集合去重,交集,并集,差集功能示例
2018/03/13 Javascript
vue中父子组件注意事项,传值及slot应用技巧
2018/05/09 Javascript
vue鼠标悬停事件实例详解
2019/04/01 Javascript
微信小程序Flex布局用法深入浅出分析
2019/04/25 Javascript
利用原生JavaScript实现造日历轮子实例代码
2019/05/08 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
python实现电子词典
2020/04/23 Python
python基础教程之元组操作使用详解
2014/03/25 Python
python实现超简单端口转发的方法
2015/03/13 Python
python实现颜色空间转换程序(Tkinter)
2015/12/31 Python
python中Switch/Case实现的示例代码
2017/11/09 Python
Python 窗体(tkinter)按钮 位置实例
2019/06/13 Python
python同时遍历两个list用法说明
2020/05/02 Python
python 将html转换为pdf的几种方法
2020/12/29 Python
HTML5+css3:3D旋转木马效果相册
2017/01/03 HTML / CSS
夜大毕业生自我鉴定
2013/10/31 职场文书
教师个人鉴定材料
2014/02/08 职场文书
单方离婚协议书范本2014
2014/10/28 职场文书
2014年镇党建工作汇报材料
2014/11/02 职场文书
给医院的感谢信
2015/01/21 职场文书
成品仓管员岗位职责
2015/04/01 职场文书