哦屋~如此优化能使你项目的速度到达一个逼格!

栏目: C · 发布时间: 5年前

内容简介:优化前:优化后:vue打包后会把所有的js封包在vendor.js中,这时候这个文件就会变得很臃肿,以及app.js也挺大的。那么可以把这两个js包进行拆分,用懒加载方式重新打包。还有引用了vue,vue-router,vuex,element等等全局组件都会导致项目在渲染的时候需要等待加载导致速度变缓慢。可以用cdn引用全局库来处理(对了,能用cdn尽量用cdn,至于为什么,用了你就知道)。

优化前:

哦屋~如此优化能使你项目的速度到达一个逼格!

优化后:

哦屋~如此优化能使你项目的速度到达一个逼格!

思路:

vue打包后会把所有的js封包在vendor.js中,这时候这个文件就会变得很臃肿,以及app.js也挺大的。那么可以把这两个js包进行拆分,用懒加载方式重新打包。还有引用了vue,vue-router,vuex,element等等全局组件都会导致项目在渲染的时候需要等待加载导致速度变缓慢。可以用cdn引用全局库来处理(对了,能用cdn尽量用cdn,至于为什么,用了你就知道)。

步骤一

/src/router/index.js

// 修改前
import Article from './article'

export default new Router({
  routes: [
    {
      path: '/',
      name: 'Article',
      component: Article
    },
  ]
})
复制代码

修改后

export default new Router({
  routes: [
    {
      path: '/',
      name: 'Article',
      component: () => import('../views/article/index.vue')
    },
  ]
})
复制代码

步骤二

/build/webpack.base.conf.js

externals: {
    vue: 'Vue',
    'vue-router': 'VueRouter',
    vuex: 'Vuex',
    'element-ui': 'ELEMENT'
}
复制代码

对应的引用库注释掉 /src/main.js

// import ElementUI from 'element-ui'
// import { Button, Input, Form, FormItem, Message } from 'element-ui'
// import 'element-ui/lib/theme-chalk/index.css'
// Vue.use(ElementUI)
复制代码

项目首页引入cdn,并对cdn失效做处理

/index.html

<link rel="stylesheet" href="https://unpkg.com/element-ui@2.7.2/lib/theme-chalk/index.css">

<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<!--<script src="https://cdn.bootcss.com/vue/2.5.17/vue.js"></script>-->

<!-- 生产环境版本,优化了尺寸和速度 -->
<script src="https://cdn.bootcss.com/vue/2.5.17/vue.min.js"></script>
<script>!window.Vue && document.write(unescape('%3Cscript src="/static/cdn/vue.min.js"%3E%3C/script%3E'))</script>

<script src="https://cdn.bootcss.com/axios/0.18.0/axios.min.js"></script>
<script>!window.axios && document.write(unescape('%3Cscript src="/static/cdn/axios.min.js"%3E%3C/script%3E'))</script>
<script src="https://cdn.bootcss.com/vue-router/3.0.1/vue-router.min.js"></script>
<script>!window.VueRouter && document.write(unescape('%3Cscript src="/static/cdn/vue-router.min.js"%3E%3C/script%3E'))</script>
<script src="https://cdn.bootcss.com/vuex/3.0.1/vuex.min.js"></script>
<script>!window.Vuex && document.write(unescape('%3Cscript src="/static/cdn/vuex.min.js"%3E%3C/script%3E'))</script>
<script src="https://cdn.bootcss.com/vue-i18n/7.6.0/vue-i18n.min.js"></script>
<script>!window.Vue && document.write(unescape('%3Cscript src="/static/cdn/vue-i18n.min.js"%3E%3C/script%3E'))</script>
<script src="https://unpkg.com/element-ui@2.7.2/lib/index.js"></script>
<script>!window.ELEMENT && document.write(unescape('%3Cscript src="/static/cdn/element.min.js"%3E%3C/script%3E'))</script>
<script src="https://unpkg.com/element-ui/lib/umd/locale/zh-CN.js"></script>
<script>!window.ELEMENT && document.write(unescape('%3Cscript src="/static/cdn/element-zh.min.js"%3E%3C/script%3E'))</script>
<script>
  ELEMENT.locale(ELEMENT.lang.zhCN)
</script>
复制代码

两步优化:就这样优化就够了吗?确实只有这两步骤速度就有了质的变化了,接着就是细节的处理了,比如基础的js压缩,css有压缩,雪碧图,减少http请求等等,这边我想再说的一点就是首屏优化策略,对于首屏加载可以使用预渲染机制 prerender-spa-plugin ,但是我测试过,速度并没有提升,反而我觉得慢了。简单的首屏可以使用这个预渲染机制,还有就是项目部分ssr服务端渲染,只加载用户看得到的部分等等。优化的道路任重而道远,只有不断求最优解,才能不断有新大陆发现。


以上所述就是小编给大家介绍的《哦屋~如此优化能使你项目的速度到达一个逼格!》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Flash MX 2004游戏制作完全攻略

Flash MX 2004游戏制作完全攻略

郭亮 / 中国电力出版社 / 2005-5 / 36.0

这是一本讲述Flash游戏编程的优秀教材。精美是数学图解,让您边读边看,兴致盎然;完整的游戏实例,让您边学边玩,趣味无穷;合理的章节规划,让您边学边练,轻松进阶……一起来看看 《Flash MX 2004游戏制作完全攻略》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具