Vue项目使用CDN优化首屏加载问题

 更新时间:2018年04月01日 09:09:06   作者:Fordestiny  
这篇文章主要介绍了Vue项目使用CDN优化首屏加载问题,本文以vue、vuex、vue-touter为例,给大家介绍处理流程,需要的朋友可以参考下

前言

作为一个网站应用,加载速度是非常重要的。加载速度,一个是程序的合理安排,如以组件按需加载,一个是js、css等资源的异步加载。

在Vue项目中,引入到工程中的所有js、css文件,编译时都会被打包进vendor.js,浏览器在加载该文件之后才能开始显示首屏。若是引入的库众多,那么vendor.js文件体积将会相当的大,影响首开的体验。

解决方法是,将引用的外部js、css文件剥离开来,不编译到vendor.js中,而是用资源的形式引用,这样浏览器可以使用多个线程异步将vendor.js、外部的js等加载下来,达到加速首开的目的。

外部的库文件,可以使用CDN资源,或者别的服务器资源等。

下面,以引入vue、vuex、vue-router为例,说明处理流程。

一、资源引入

在index.html中,添加CDN资源,例如bootstrap:

<body>
  <div id="app"></div>

  <script src="https://cdn.bootcss.com/vue/2.5.2/vue.min.js"></script>
  <script src="https://cdn.bootcss.com/vue-router/3.0.1/vue-router.min.js"></script>
  <script src="https://cdn.bootcss.com/vuex/3.0.1/vuex.min.js"></script>
 </body>

二、添加配置

在bulid/webpack.base.conf.js文件中,增加externals,将引用的外部模块导入,如下:

module.exports = {
 entry: {
  app: './src/main.js'
 },
 externals:{
  'vue': 'Vue',
  'vue-router': 'VueRouter',
  'vuex':'Vuex'
 }

注意一点:

格式为 'aaa' : 'bbb', 其中,aaa表示要引入的资源的名字,bbb表示该模块提供给外部引用的名字,由对应的库自定。例如,vue为Vue,vue-router为VueRouter.

三、去掉原有的引用

去掉import,如:

// import Vue from 'vue'
// import Router from 'vue-router'

去掉Vue.use(XXX),如:

// Vue.use(Router)

测试

重新npm run build,会看到 vendor.js体积有所下降了。通过开发者模式的Network工具,可以看到vue.js、vuex.js、vendor.js等文件会分别由一个线程进行加载。且因为使用了CDN,加载速度比自已的服务器更快。

总结

相关文章

  • 卸载vue2.0并升级vue_cli3.0的实例讲解

    卸载vue2.0并升级vue_cli3.0的实例讲解

    在本篇文章里小编给大家整理的是关于卸载vue2.0并升级vue_cli3.0的实例内容,需要的朋友们可以学习参考下。
    2020-02-02
  • vue项目配置env的方法步骤

    vue项目配置env的方法步骤

    在vue项目中env是全局配置文件,可以存储不同环境下的变量,下面这篇文章主要给大家介绍了关于vue项目配置env的方法步骤,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • 解决axios发送post请求上传文件到后端的问题(multipart/form-data)

    解决axios发送post请求上传文件到后端的问题(multipart/form-data)

    这篇文章主要介绍了如何使用axios发送post请求上传文件到后端(multipart/form-data),本文给大家带来了问题原因及解决方案,结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • vue-cli3+ts+webpack实现多入口多出口功能

    vue-cli3+ts+webpack实现多入口多出口功能

    这篇文章主要介绍了vue-cli3+ts+webpack实现多入口多出口功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • vue3 :deep()的使用教程

    vue3 :deep()的使用教程

    对应前端小白来说,一看到:deep()这些模式的用法就不理解是啥意思,下面简单介绍一下:deep()是什么以及如何使用,感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • vue3 Vite 进阶rollup命令行使用详解

    vue3 Vite 进阶rollup命令行使用详解

    这篇文章主要介绍了vue3 Vite 进阶rollup命令行使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Vue 报错TypeError: this.$set is not a function 的解决方法

    Vue 报错TypeError: this.$set is not a function 的解决方法

    这篇文章主要介绍了Vue 报错TypeError: this.$set is not a function 的解决方法,分享给大家,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • element表格去掉表头的实现方法

    element表格去掉表头的实现方法

    本文主要介绍了element表格去掉表头的实现方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • Vue中函数防抖节流的理解及应用实现

    Vue中函数防抖节流的理解及应用实现

    这篇文章主要介绍了Vue中函数防抖节流的理解及应用实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Vue的列表之渲染,排序,过滤详解

    Vue的列表之渲染,排序,过滤详解

    这篇文章主要为大家详细介绍了Vue的列表之渲染,排序,过滤,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02

最新评论