vue 优化CDN加速的方法示例


Posted in Javascript onSeptember 19, 2018

代码敲完,项目上线,然后就要与优化相遇。

vue 优化CDN加速的方法示例

项目有抢购的性质content download 时间非常的长加载慢的很,至此开始前端优化之旅

项目根目录运行

npm install webpack-bundle-analyzer --save-dev

在build/webpack.dev.conf.js中引入

const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
 plugins: [
 new BundleAnalyzerPlugin()
 ]

运行后显示可以看到几个大的js 下面是已经优化过后的截图

像vue ,vue-router,vuex,axios,mint-ui,crypto-js

vue 优化CDN加速的方法示例

1.使用CDN资源

其作用是:当我们加载页面时,需要将我们所需要的一些依赖加载到当前会话中然后再开始执行,如果我们首屏,模块比较多是,需要等待的时间会比较长,而且。浏览器内存最多执行四十个进程,需要等到加载完前面的才能执行后面的代码,如果我们采用cdn的方式来引入一些第三方资源,就可以缓解我们服务器的压力,原理是将我们的压力分给其他服务器点。

使用cdn在index.html中引入

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <script src="//cdn.bootcss.com/vue/2.5.2/vue.min.js"></script>
 <script src="//cdn.bootcss.com/vue-router/3.0.1/vue-router.min.js"></script>
 <script src="//cdn.bootcss.com/vuex/3.0.1/vuex.min.js"></script>
 <script src="//cdn.bootcss.com/axios/0.17.1/axios.min.js"></script>
 <script src="https://cdn.bootcss.com/mint-ui/2.2.13/index.js"></script>
 <script src="https://cdn.bootcss.com/crypto-js/3.1.9/crypto-js.min.js"></script>
 <title></title>
</head>
<body>
 <div id="app"></div>
 <!-- built files will be auto injected -->
</body>
</html>

修改build/webpack.base.conf.js文件,externals外部扩展,通过这种方式引入依赖库,不需要webpack处理。

module.exports = {
 ...
 externals: {
 'vue': 'Vue', // 左侧vue是我们自己引入时候要用的,右侧是开发依赖库的主人定义的不能修改
 'vue-router': 'VueRouter',
 'vuex': 'Vuex',
 'axios': 'axios',
 'mint-ui': 'MINT',
 'crypto-js': 'CryptoJS'
 }
 ...
}

console.log(window) 打印出下图

网上查了资料有的引入有的还是会引入有的没有引入,拿mint-ui举例,查到的资料在main.js有下面的引入,但是注释掉之后还是可以正常使用mint-ui的组件,import VueRouter from 'vue-router' 也是可以注释掉使用的,感觉是因为window全局有了VueRouter,但是有个问题就是eslint会报警告,所以就没有注释掉。如果理解有误希望大家能指出我的错误

import MINT from 'mint-ui'
Vue.use(MINT)

vue 优化CDN加速的方法示例

main.js

import Vue from 'vue' // 没有注释掉是因为main.js其他地方用到了Vue,如果没有用到可以注释掉
import App from './App'
import router from './router'
import store from './store'

router/index.js

// import Vue from 'vue' // 注释掉
// Vue.use(VueRouter) // 注释掉
import VueRouter from 'vue-router' // 文件中引入的时候用我们自己定义的vue-router
const appRouter = {
....
}
export default new VueRouter(appRouter)

store/index.js

// import Vue from 'vue' // 注释掉
// Vue.use(Vuex) // 注释掉
import Vuex from 'vuex'
const store = new Vuex.Store({
 ....
})
export default store

CryptoJS用来加密,在使用的地方直接引入。axios同理

import CryptoJS from 'crypto-js'
.....

优化之前

vue 优化CDN加速的方法示例

优化之后

vue 优化CDN加速的方法示例

另外就是花点钱提高了下带宽o(?□?)o

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
asp 的 分词实现代码
May 24 Javascript
js加强的经典分页实例
Mar 15 Javascript
jquery实现文本框数量加减功能的例子分享
May 10 Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
Jun 26 Javascript
JQuery控制radio选中和不选中方法总结
Apr 15 Javascript
javascript实现的图片切割多块效果实例
May 07 Javascript
为何JS操作的href都是javascript:void(0);呢
Nov 12 Javascript
js获取url传值的方法
Dec 18 Javascript
AngularJS内建服务$location及其功能详解
Jul 01 Javascript
AngularJS入门教程之双向绑定详解
Aug 18 Javascript
vue router 传参获取不到的解决方式
Nov 13 Javascript
关于vue 项目中浏览器跨域的配置问题
Nov 10 Javascript
Vue前后端不同端口的实现方法
Sep 19 #Javascript
vue-cli 3.x 修改dist路径的方法
Sep 19 #Javascript
浅谈React之状态(State)
Sep 19 #Javascript
jQuery使用each遍历循环的方法
Sep 19 #jQuery
vue新vue-cli3环境配置和模拟json数据的实例
Sep 19 #Javascript
vue-cli 3.x 配置Axios(proxyTable)跨域代理方法
Sep 19 #Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
Sep 19 #Javascript
You might like
ThinkPHP 404页面的设置方法
2015/01/14 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
PHP单例模式定义与使用实例详解
2017/02/06 PHP
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
2007/10/23 Javascript
javascript 解析url的search方法
2010/02/09 Javascript
基于jquery自己写tab滑动门(通用版)
2012/10/30 Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
2013/12/30 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
AngularJS入门教程之表格实例详解
2016/07/27 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
2017/03/21 jQuery
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
React利用插件和不用插件实现双向绑定的方法详解
2017/07/03 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
微信小程序自定义多列选择器使用详解
2019/06/21 Javascript
vue 实现特定条件下绑定事件
2019/11/09 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
2020/04/11 Javascript
JavaScript十大取整方法实例教程
2020/12/03 Javascript
vue实现滚动鼠标滚轮切换页面
2020/12/13 Vue.js
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
不要用强制方法杀掉python线程
2017/02/26 Python
Python实现两个list对应元素相减操作示例
2017/06/09 Python
在dataframe两列日期相减并且得到具体的月数实例
2018/07/03 Python
python自动化生成IOS的图标
2018/11/13 Python
详解Python 调用C# dll库最简方法
2019/06/20 Python
使用python的pandas为你的股票绘制趋势图
2019/06/26 Python
Django REST Framework序列化外键获取外键的值方法
2019/07/26 Python
python多任务之协程的使用详解
2019/08/26 Python
python PIL/cv2/base64相互转换实例
2020/01/09 Python
如何利用python 读取配置文件
2021/01/06 Python
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
作风建设演讲稿
2014/05/23 职场文书
MySQL数据库⾼可⽤HA实现小结
2022/01/22 MySQL
python_tkinter事件类型详情
2022/03/20 Python
Redis特殊数据类型HyperLogLog基数统计算法讲解
2022/06/01 Redis