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 相关文章推荐
自动设置iframe大小的jQuery代码
Sep 11 Javascript
基于BootStrap实现局部刷新分页实例代码
Aug 08 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
Jan 19 Javascript
简单实现js选项卡切换效果
Feb 09 Javascript
微信小程序 引用其他js文件实现代码
Feb 22 Javascript
vue如何从接口请求数据
Jun 22 Javascript
Javascript 一些需要注意的细节(必看篇)
Jul 08 Javascript
对存在JavaScript隐式类型转换的四种情况的总结(必看篇)
Aug 31 Javascript
微信小程序中button组件的边框设置的实例详解
Sep 27 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
Aug 09 Javascript
Vue实现商品详情页的评价列表功能
Sep 04 Javascript
vue实现移动端省市区选择
Sep 27 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图片处理之使用imagecopyresampled函数裁剪图片例子
2014/11/19 PHP
php针对cookie操作的队列操作类实例
2014/12/10 PHP
php上传大文件失败的原因及应对策略
2015/10/20 PHP
php删除二维数组中的重复值方法
2018/03/12 PHP
文本加密解密
2006/06/23 Javascript
JS动画效果代码3
2008/04/03 Javascript
js png图片(有含有透明)在IE6中为什么不透明了
2010/02/07 Javascript
js 中{},[]中括号,大括号使用详解
2011/05/12 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
JQuery的Ajax跨域请求原理概述及实例
2013/04/26 Javascript
JS网页播放声音实现代码兼容各种浏览器
2013/09/22 Javascript
JavaScript简单实现网页回到顶部功能
2013/11/12 Javascript
javascript学习笔记(六)数据类型和JSON格式
2014/10/08 Javascript
js倒计时显示实例
2016/12/11 Javascript
js实现适合新闻类图片的轮播效果
2017/02/05 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
vuex state及mapState的基础用法详解
2018/04/19 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
JS实现烟花爆炸效果
2020/03/10 Javascript
[00:53]2015国际邀请赛 中国区预选赛一触即发
2015/05/14 DOTA
Python中Collections模块的Counter容器类使用教程
2016/05/31 Python
详解字典树Trie结构及其Python代码实现
2016/06/03 Python
Python中多线程的创建及基本调用方法
2016/07/08 Python
Django基于ORM操作数据库的方法详解
2018/03/27 Python
python pygame模块编写飞机大战
2018/11/20 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
2019/11/01 Python
python/Matplotlib绘制复变函数图像教程
2019/11/21 Python
Python流程控制常用工具详解
2020/02/24 Python
Python导入数值型Excel数据并生成矩阵操作
2020/06/09 Python
Python 的 f-string 可以连接字符串与数字的原因解析
2021/02/20 Python
法国发饰品牌:Alexandre De Paris
2018/12/04 全球购物
2016秋季田径运动会广播稿
2015/12/21 职场文书
《小蝌蚪找妈妈》教学反思
2016/02/23 职场文书
利用python进行数据加载
2021/06/20 Python
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技