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 相关文章推荐
js 绑定带参数的事件以及手动触发事件
Apr 27 Javascript
JS.GetAllChild(element,deep,condition)使用介绍
Sep 21 Javascript
javascript/jquery获取地址栏url参数的方法
Mar 05 Javascript
php常见的页面跳转方法汇总
Apr 15 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
Nov 25 Javascript
JavaScript中判断数据类型的方法总结
May 24 Javascript
js实现可键盘控制的简单抽奖程序
Jul 13 Javascript
浅谈angular.copy() 深拷贝
Sep 14 Javascript
浅谈Webpack自动化构建实践指南
Dec 18 Javascript
JS返回页面时自动回滚到历史浏览位置
Sep 26 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
Jan 08 Javascript
layer 关闭指定弹出层的例子
Sep 25 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
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
Mysql中limit的用法方法详解与注意事项
2008/04/19 PHP
php获取mysql数据库中的所有表名的代码
2011/04/23 PHP
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
2013/06/05 PHP
PHP中isset()和unset()函数的用法小结
2014/03/11 PHP
php简单实现发送带附件的邮件
2015/06/10 PHP
php实现微信支付之企业付款
2018/05/30 PHP
JavaScript ECMA-262-3 深入解析.第三章.this
2011/09/28 Javascript
别了 JavaScript中的isXX系列
2012/08/01 Javascript
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
AngularJS入门教程(一):静态模板
2014/12/06 Javascript
jQuery获取样式中颜色值的方法
2015/01/29 Javascript
JS实现n秒后自动跳转的两种方法
2020/11/30 Javascript
Bootstrap整体框架之CSS12栅格系统
2016/12/15 Javascript
JavaScript省市级联下拉菜单实例
2017/02/14 Javascript
运用jQuery写的验证表单(实例讲解)
2017/07/06 jQuery
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
详解vue.js之props传递参数
2017/12/12 Javascript
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
Python使用Django实现博客系统完整版
2020/09/29 Python
解决python matplotlib imshow无法显示的问题
2018/05/24 Python
python把转列表为集合的方法
2019/06/28 Python
关于django 1.10 CSRF验证失败的解决方法
2019/08/31 Python
django使用xadmin的全局配置详解
2019/11/15 Python
Python解压 rar、zip、tar文件的方法
2019/11/19 Python
使用python实现回文数的四种方法小结
2019/11/24 Python
如何使用python实现模拟鼠标点击
2020/01/06 Python
Python-jenkins模块获取jobs的执行状态操作
2020/05/12 Python
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
简历自我评价模版
2014/01/31 职场文书
战马观后感
2015/06/08 职场文书
Sql Server之数据类型详解
2022/02/28 SQL Server
MySQL RC事务隔离的实现
2022/03/31 MySQL
vue判断按钮是否可以点击
2022/04/09 Vue.js