黑马程序员技术交流社区

标题: 【成都校区】vue性能优化 [打印本页]

作者: 小刀葛小伦    时间: 2020-1-9 18:36
标题: 【成都校区】vue性能优化
一、template1、单独模块的样式要加上<style scoped> ,目的就是害怕其他开发人员对文件的样式有冲突导致样式混乱的问题。
2、尽量少用浮动和定位,能用flex的解决就用flex解决
三、script3.减少watch的数据。当组件某个数据变更后需要对应的state进行变更,就需要对另外的组件进行state进行变更。可以使用watch监听相应的数据变更并绑定事件。当watch的数据比较小,性能消耗不明显。当数据变大,系统会出现卡顿,所以减少watch的数据。其它不同的组件的state双向绑定,可以采用事件中央总线或者vuex进行数据的变更操作。
四、组件优化在项目开发过程之中,如果把所有的组件的布局写在一个组件中,当数据变更时,由于组件代码比较庞大,vue 的数据驱动视图更新会比较慢,造成渲染过慢,也会造成比较差的体验效果。所以要把组件细分,比如一个组件,可以把整个组件细分成轮播组件、列表组件、分页组件等。
五、组件的异步加载(按需加载组件)在平时的demo中,可能不会遇见这个需求。当页面很多,组件很多的时候,SPA页面在首次加载的时候,就会变的很慢。这是因为vue首次加载的时候把可能一开始看不见的组件也一次加载了,这个时候就需要对页面进行优化,就需要异步组件了。

[JavaScript] 纯文本查看 复制代码
{
    path: '/home',
    name: 'home',
    component:require('@views/home').default
}
{
    path: '/home',
    name: 'home',
    component:() => import('@views/home')
}

六、打包优化
解决方法很简单,打包 vender 时不打包 vue、vuex、vue-router、axios 等,换用国内的bootcdn直接引入到根目录的 index.html 中。
例如:
[JavaScript] 纯文本查看 复制代码
<script src="//cdn.bootcss.com/vue/2.2.5/vue.min.js"></script>
<script src="//cdn.bootcss.com/vue-router/2.3.0/vue-router.min.js"></script>
<script src="//cdn.bootcss.com/vuex/2.2.1/vuex.min.js"></script>
<script src="//cdn.bootcss.com/axios/0.15.3/axios.min.js"></script>
在 webpack 里有个 externals,可以忽略不需要打包的库
[JavaScript] 纯文本查看 复制代码
externals: {
  'vue': 'Vue',
  'vue-router': 'VueRouter',
  'vuex': 'Vuex',
  'axios': 'axios'
}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2