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 控制非法字符的输入代码
Dec 04 Javascript
jQuery 开发者应该注意的9个错误
May 03 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
Jun 14 Javascript
javascript判断css3动画结束 css3动画结束的回调函数
Mar 10 Javascript
浅谈JavaScript中的对象及Promise对象的实现
Nov 15 Javascript
jquery解析json格式数据的方法(对象、字符串)
Nov 24 Javascript
JS获取随机数和时间转换的简单实例
Jul 10 Javascript
完美实现八种js焦点轮播图(上篇)
Jul 18 Javascript
JavaScript中的call和apply的用途以及区别
Jan 11 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
Mar 04 Javascript
jq checkbox 的全选并ajax传参的实例
Apr 01 Javascript
AngularJS 限定$scope的范围实例详解
Jun 23 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 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
Php Ctemplate引擎开发相关内容
2012/03/03 PHP
PHP基础知识介绍
2013/09/17 PHP
thinkphp模板赋值与替换实例简述
2014/11/24 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
PHP中数组转换为SimpleXML教程
2019/01/27 PHP
一直复略了的一个问题,关于表单重复提交
2007/02/15 Javascript
IE浏览器PNG图片透明效果代码
2008/09/02 Javascript
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
使用不同的方法结合/合并两个JS数组
2014/09/18 Javascript
JavaScript 拖拽实例代码
2016/09/21 Javascript
浅谈angularjs module返回对象的坑(推荐)
2016/10/21 Javascript
原生js实现简单的链式操作
2017/07/04 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
微信小程序地图绘制线段并且测量(实例代码)
2020/01/02 Javascript
[02:21]DOTA2英雄基础教程 蝙蝠骑士
2013/12/16 DOTA
[01:05:12]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS CIS-GAME
2014/05/21 DOTA
[03:51]吞吞映像 每周精彩击杀top10第二弹
2014/06/25 DOTA
Python遍历目录的4种方法实例介绍
2015/04/13 Python
基python实现多线程网页爬虫
2015/09/06 Python
深入理解Python对Json的解析
2017/02/14 Python
Python 稀疏矩阵-sparse 存储和转换
2017/05/27 Python
python 实现敏感词过滤的方法
2019/01/21 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
python基于celery实现异步任务周期任务定时任务
2019/12/30 Python
django 外键创建注意事项说明
2020/05/20 Python
CSS3中使用RGBa来调节透明度的教程
2016/05/09 HTML / CSS
有原因的手表:Flex Watches
2019/03/23 全球购物
查询优化的一般准则有哪些
2015/03/08 面试题
小学生迎国庆演讲稿
2014/09/05 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
创建文明城市倡议书
2015/04/28 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
2021/07/07 SQL Server
数据设计之权限的实现
2022/08/05 MySQL