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页面跳转常用的几种方式
Nov 25 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
Apr 08 Javascript
javascript模拟post提交隐藏地址栏的参数
Sep 03 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
Nov 17 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
Nov 25 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
Jul 12 Javascript
深入浅析JavaScript中的RegExp对象
Sep 18 Javascript
VUE element-ui 写个复用Table组件的示例代码
Nov 18 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
Mar 01 Javascript
详解一个基于react+webpack的多页面应用配置
Jan 21 Javascript
Openlayers实现测量功能
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
PHP正确配置mysql(apache环境)
2011/08/28 PHP
php获取301跳转URL简单实例
2013/12/16 PHP
PHP中使用smarty生成静态文件的例子
2014/04/24 PHP
CI框架开发新浪微博登录接口源码完整版
2014/05/28 PHP
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
2014/12/16 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
Yii隐藏URL中index.php的方法
2016/07/12 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
2017/06/06 PHP
php+ajax实现商品对比功能示例
2019/04/13 PHP
如何实现动态删除javascript函数
2007/05/27 Javascript
JavaScript设置FieldSet展开与收缩
2009/05/15 Javascript
JavaScript创建对象的写法
2013/08/29 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
JavaScript获取指定元素位置的方法
2015/04/08 Javascript
jQuery横向擦除焦点图特效代码分享
2015/09/06 Javascript
JavaScript 模块的循环加载实现方法
2015/12/13 Javascript
JS简单实现无缝滚动效果实例
2016/08/24 Javascript
JS 拼凑字符串的简单实例
2016/09/02 Javascript
JavaScript函数表达式详解及实例
2017/05/05 Javascript
jQuery图片查看插件Magnify开发详解
2017/12/25 jQuery
webpack+vue-cli项目中引入外部非模块格式js的方法
2018/09/28 Javascript
微信小程序抽奖组件的使用步骤
2021/01/11 Javascript
Python ORM框架SQLAlchemy学习笔记之关系映射实例
2014/06/10 Python
在Django的URLconf中使用多个视图前缀的方法
2015/07/18 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
2018/07/19 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
浅谈HTML5新增和废弃的标签
2019/04/28 HTML / CSS
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
Viking Direct荷兰:购买办公用品
2019/06/20 全球购物
四年的大学生生活自我评价
2013/12/09 职场文书
教师开学感言
2014/02/14 职场文书
党的群众路线教育实践活动公开承诺书
2014/03/28 职场文书
民主生活会对照检查材料(统计局)
2014/09/21 职场文书
2014年库房工作总结
2014/11/26 职场文书