vue性能优化

一:编码阶段

  1. 尽量减少data中的数据,data中的数据都会增加getter和setter,会收集对应的watcher。
  2. v-if和v-for不能连用
  3. 如果需要使用v-for给每项元素绑定事件时使用事件代理
  4. SPA 页面采用keep-alive缓存组件
  5. 在更多的情况下,使用v-if替代v-show
  6. key保证唯一
  7. 使用路由懒加载、异步组件
  8. 防抖、节流
  9. 第三方模块按需导入
  10. 长列表滚动到可视区域动态加载
  11. 图片懒加载

二: SEO优化

  1. 预渲染
  2. 服务端渲染SSR

三: 打包优化

  1. 压缩代码
  2. Tree Shaking/Scope Hoisting(production的优化)
    Tree Shaking:通常用于打包时移除JavaScript中未引用的代码
    开发时引入一个模块,只用到其中的一个功能,那么打包的时候只会打包用到的功能。
    Scope Hoisting:把你的打散的代码整个在一起(只引用一次 的代码)
  3. 使用cdn加载第三方模块
  4. 多线程打包happypack
  5. sourceMap优化
  6. splitChunks抽离公共文件
splitChunks抽离公共文件
webpack 4.x
optimization与output同级

 optimization: {
    runtimeChunk: {
      name: 'manifest'
    },
    splitChunks: {
      chunks: 'async',
      minChunks: 2,
      maxAsyncRequests: 5,
      maxInitialRequests: 3,
      name: false,
      cacheGroups: {
        vendor: {
          name: 'vendor',
          // chunks 有三个可选值,”initial”, “async” 和 “all”. 分别对应优化时只选择初始的chunks,所需要的chunks 还是所有chunk
          chunks: 'initial',
          priority: -10,
          reuseExistingChunk: false,
          test: /[\\/]node_modules[\\/]/
        }
      }
    }
  },

四:用户体验

  1. 骨架屏
  2. PWA
    还可以使用缓存(客户端缓存、服务端缓存)优化、服务端开启gzip压缩等。

五:解决vue打包wendor过大的问题

https://www.jianshu.com/p/b2fe6aebe691

你可能感兴趣的:(vue性能优化)