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实现Table排序的方法
May 15 Javascript
JavaScript编程的单例设计模讲解
Nov 10 Javascript
Bootstrap轮播加上css3动画,炫酷到底!
Dec 22 Javascript
jQuery中hover与mouseover和mouseout的区别分析
Dec 24 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
Sep 06 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
Aug 14 Javascript
Async/Await替代Promise的6个理由
Jun 15 Javascript
JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例
Sep 11 Javascript
关于layui toolbar和template的结合使用方法
Sep 19 Javascript
转换layUI的数据表格中的日期格式方法
Sep 19 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
Jun 22 Javascript
Vue通过Blob对象实现导出Excel功能示例代码
Jul 31 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
第十四节 命名空间 [14]
2006/10/09 PHP
基于PHP5魔术常量与魔术方法的详解
2013/06/13 PHP
PHP中feof()函数实例测试
2014/08/23 PHP
php邮件发送的两种方式
2020/04/28 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
2017/02/07 PHP
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
jquery改变disabled的boolean状态的三种方法
2013/12/13 Javascript
禁止拷贝网页内容的js代码
2014/01/22 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
2014/04/20 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
2015/06/05 Javascript
javascript跨域总结之window.name实现的跨域数据传输
2015/11/01 Javascript
使用vue编写一个点击数字计时小游戏
2016/08/31 Javascript
Web前端框架bootstrap实战【第一次接触使用】
2016/12/28 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
2017/09/26 jQuery
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
2018/10/26 Javascript
浅谈Vue数据响应思路之数组
2018/11/06 Javascript
解决layer.confirm选择完之后消息框不消失的问题
2019/09/16 Javascript
微信小程序实现时间进度条功能
2020/11/17 Javascript
微信小程序开发中var that =this的用法详解
2020/01/18 Javascript
详解Python list 与 NumPy.ndarry 切片之间的对比
2017/07/24 Python
Python 中 Virtualenv 和 pip 的简单用法详解
2017/08/18 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
2018/07/09 Python
python实现给微信指定好友定时发送消息
2019/04/29 Python
Django配置MySQL数据库的完整步骤
2019/09/07 Python
opencv-python的RGB与BGR互转方式
2020/06/02 Python
使用pytorch实现论文中的unet网络
2020/06/24 Python
详解python with 上下文管理器
2020/09/02 Python
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
个人查摆剖析材料
2014/02/04 职场文书
党员先进事迹材料
2014/12/19 职场文书
教师节倡议书2015
2015/04/27 职场文书
力克胡哲观后感
2015/06/10 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书
Vue h函数的使用详解
2022/02/18 Vue.js