项目优化的几种方案:
第一类:从书写习惯来说:
1、不要把所有数据都写在data中,只把需要响应的数据写在里面:
原因:在获取数据时需要调用getter方法,设置数据时需要调用setter方法,如果把所有数据都写在里面,每次都需要调用很多getter和setter,降低性能
2、SPA(single page application)单页
尽可能不使用单页渲染,SEO不高,可以用SSR(服务端渲染) 利用keep-alive把组件中的解构和数据缓存起来
3、尽可能的把组件划分最小 减小颗粒度
原因:提高利用性,增加代码可维护性,减少不必要的渲染
4、合理使用 v-if & v-show
v-if:直接控制DOM树的渲染与否
v-show:都渲染,只是通过display来控制显示与否
如果频繁的让一个组件显示与否,可以使用v-show,否则可以使用v-if 5、在v-for的使用上必须绑定key值
一般情况下,不要使用index来绑定key,尽可能使用id来绑定,减少不必要渲染
原因:当数据顺序改变时,如果使用index绑定key值,改变顺序的都需要重新渲染,而使用id绑定的只需要调换一下顺序,不需要再渲染
6、Object.freeze:可以数据劫持,对于不经常使用的数据,可以冻结。
7、路由懒加载:
import xx from xx components{}
components:()=>import()
8、动态导入组件:按需导入
第二类:懒加载(按需加载)
图片懒加载:
第三方模块 webpack
第三类:提升用户体验:
骨架屏 在vue.config.js中配置
pwa:先缓存 在弱网下适用
shell
第四类:SEO
预渲染:先用死数据,新数据得到后再替换,避免网差情况下出现白屏,适用一些官网,不经常变化的
第五类:从后端
缓存、压缩