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 相关文章推荐
phpwind放自动注册方法
Dec 02 Javascript
javascript函数重载解决方案分享
Feb 19 Javascript
javascript实现的一个带下拉框功能的文本框
May 08 Javascript
学习JavaScript设计模式(封装)
Nov 26 Javascript
JavaScript的设计模式经典之建造者模式
Feb 24 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
Aug 09 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
Jan 22 Javascript
微信小程序动态显示项目倒计时效果
Jun 13 Javascript
AngularJs导出数据到Excel的示例代码
Aug 11 Javascript
js+html5实现手机九宫格密码解锁功能
Jul 30 Javascript
原生js实现商品筛选功能
Oct 28 Javascript
详解vue3中组件的非兼容变更
Mar 03 Vue.js
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
中东人咖啡哲学
2021/03/03 咖啡文化
PHP新手上路(十二)
2006/10/09 PHP
php foreach 使用&amp;(与运算符)引用赋值要注意的问题
2010/02/16 PHP
php函数array_merge用法一例(合并同类数组)
2013/02/03 PHP
PHP中返回引用类型的方法
2015/04/03 PHP
Yii2实现log输出到file及database的方法
2016/11/12 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
jQuery实现等比例缩放大图片让大图片自适应页面布局
2013/10/16 Javascript
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
2014/09/26 NodeJs
原生javascript实现隔行换色
2015/01/04 Javascript
JS实现网页上随机产生超链接地址的方法
2015/11/09 Javascript
详解JavaScript设计模式开发中的桥接模式使用
2016/05/18 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
JS实现的自动打字效果示例
2017/03/10 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
webpack打包并将文件加载到指定的位置方法
2018/02/22 Javascript
axios携带cookie配置详解(axios+koa)
2018/12/28 Javascript
Vue 实现分页与输入框关键字筛选功能
2020/01/02 Javascript
three.js 制作动态二维码的示例代码
2020/07/31 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
2020/10/09 Javascript
python迭代器实例简析
2014/09/25 Python
Python列表list数组array用法实例解析
2014/10/28 Python
浅谈Python中的可变对象和不可变对象
2017/07/07 Python
OpenCV+python手势识别框架和实例讲解
2018/08/03 Python
selenium3+python3环境搭建教程图解
2018/12/07 Python
python滑块验证码的破解实现
2019/11/10 Python
Pandas数据离散化原理及实例解析
2019/11/16 Python
Python读取xlsx数据生成图标代码实例
2020/08/12 Python
Python浮点型(float)运算结果不正确的解决方案
2020/09/22 Python
I.T集团香港官方商城:ITeSHOP.com Hong Kong
2019/02/15 全球购物
学校门卫管理制度
2014/01/30 职场文书
生日宴会策划方案
2014/06/03 职场文书
乡镇党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
公司承诺函范文
2015/01/21 职场文书
如何在向量化NumPy数组上进行移动窗口
2021/05/18 Python