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 相关文章推荐
JavaScript中关于indexOf的使用方法与问题小结
Aug 05 Javascript
关于Javascript加载执行优化的研究报告
Dec 16 Javascript
js小数运算出现多位小数如何解决
Oct 08 Javascript
jQuery Easyui实现左右布局
Jan 26 Javascript
第一次接触神奇的Bootstrap导航条
Aug 09 Javascript
Json按某个键的值进行排序
Dec 22 Javascript
详解React Native网络请求fetch简单封装
Aug 10 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
Jul 08 Javascript
JavaScript闭包相关知识解析
Oct 19 Javascript
解决vue页面渲染但dom没渲染的操作
Jul 27 Javascript
js实现无缝轮播图插件封装
Jul 31 Javascript
JavaScript事件的委托(代理)的用法示例详解
Feb 18 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连接数据库代码应用分析
2011/05/29 PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
2013/06/21 PHP
smarty获得当前url的方法分享
2014/02/14 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
PHP如何搭建百度Ueditor富文本编辑器
2018/09/21 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
2020/05/26 PHP
asm.js使用示例代码
2013/11/28 Javascript
jQuery实现返回顶部功能
2016/02/23 Javascript
通过扫描二维码打开app的实现代码
2016/11/10 Javascript
浅谈JavaScript中promise的使用
2017/01/11 Javascript
Vue开发之封装分页组件与使用示例
2019/04/25 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
python代码检查工具pylint 让你的python更规范
2012/09/05 Python
跟老齐学Python之用while来循环
2014/10/02 Python
python 统计代码行数简单实例
2017/05/04 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
2018/01/11 Python
python TF-IDF算法实现文本关键词提取
2019/05/29 Python
pandas 时间格式转换的实现
2019/07/06 Python
使用python实现CGI环境搭建过程解析
2020/04/28 Python
python使用多线程+socket实现端口扫描
2020/05/28 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
python主要用于哪些方向
2020/07/05 Python
Topshop美国官网:英国快速时尚品牌
2019/05/16 全球购物
施华洛世奇中国官网:SWAROVSKI中国
2020/06/16 全球购物
洗煤厂厂长岗位职责
2014/01/03 职场文书
大二学生学习个人自我评价
2014/01/19 职场文书
高中美术教学反思
2014/01/19 职场文书
入党积极分子自我鉴定
2014/02/18 职场文书
机关工会开展学习雷锋活动总结
2014/03/01 职场文书
《鞋匠的儿子》教学反思
2014/03/02 职场文书
职业生涯规划书范文
2014/03/10 职场文书
大学生求职自荐信
2015/03/24 职场文书
爱国影片观后感
2015/06/18 职场文书
对PyTorch中inplace字段的全面理解
2021/05/22 Python