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 相关文章推荐
javascript attachEvent绑定多个事件执行顺序问题
Oct 20 Javascript
Javascript中的for in循环和hasOwnProperty结合使用
Jun 05 Javascript
js与运算符和或运算符的妙用
Feb 14 Javascript
javascript为下拉列表动态添加数据项
May 23 Javascript
javascript中call,apply,bind的用法对比分析
Feb 12 Javascript
js实现鼠标经过时图片滚动停止的方法
Feb 16 Javascript
Javascript BOM学习小结(六)
Nov 26 Javascript
基于javascript实现浏览器滚动条快到底部时自动加载数据
Nov 30 Javascript
Bootstrap标签页(Tab)插件使用方法
Mar 21 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
Mar 12 Javascript
vue+elementUI实现表单和图片上传及验证功能示例
May 14 Javascript
深度了解vue.js中hooks的相关知识
Jun 14 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
php面向对象全攻略 (八)重载新的方法
2009/09/30 PHP
PHP 7.4中使用预加载的方法详解
2019/07/08 PHP
JS request函数 用来获取url参数
2010/05/17 Javascript
也说JavaScript中String类的replace函数
2011/09/22 Javascript
JavaScript 学习笔记之数据类型
2015/01/14 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
实例代码讲解jquery easyui动态tab页
2015/11/17 Javascript
nodejs中模块定义实例详解
2017/03/18 NodeJs
Vue.js实战之使用Vuex + axios发送请求详解
2017/04/04 Javascript
Windows下快速搭建NodeJS本地服务器的步骤
2017/08/09 NodeJs
JavaScript fetch接口案例解析
2018/08/30 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
layui表格内容溢出的解决方法
2019/09/06 Javascript
Vue快速实现通用表单验证功能
2019/12/05 Javascript
微信浏览器下拉黑边解决方案 wScroollFix
2020/01/21 Javascript
JavaScript 正则应用详解【模式、欲查、反向引用等】
2020/05/13 Javascript
[01:08:17]2018DOTA2亚洲邀请赛3月29日 小组赛B组 EG VS VGJ.T
2018/03/30 DOTA
[12:29]2018国际邀请赛 开幕秀
2018/08/22 DOTA
python基础教程之匿名函数lambda
2017/01/17 Python
python僵尸进程产生的原因
2017/07/21 Python
python3实现网络爬虫之BeautifulSoup使用详解
2018/12/19 Python
PyQt5 多窗口连接实例
2019/06/19 Python
Python Django 实现简单注册功能过程详解
2019/07/29 Python
Python制作词云图代码实例
2019/09/09 Python
Python类的绑定方法和非绑定方法实例解析
2020/03/04 Python
利用pyecharts读取csv并进行数据统计可视化的实现
2020/04/17 Python
如何从csv文件构建Tensorflow的数据集
2020/09/21 Python
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
工作失职检讨书范文
2014/01/16 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
催款律师函范文
2015/05/27 职场文书
机关单位2016年创先争优活动总结
2016/04/05 职场文书
Django实现在线无水印抖音视频下载(附源码及地址)
2021/05/06 Python
python 如何做一个识别率百分百的OCR
2021/05/29 Python
Win11安装受阻怎么办? Windows11安装问题与解决方案汇总
2021/11/21 数码科技
Axios代理配置及封装响应拦截处理方式
2022/04/07 Vue.js