1. vue中项目优化:
路过的朋友,可以点个赞,关注一下~~~
1.1 书写习惯
- 不需要做响应式的数据,不要放在data中
不要把所有的数据都放到data中,只把你需要做响应式的数据放到data中。如果一个数据放到了data中,vue会给这个数据添加一个getter和setter,当你获取数据调用getter,当你设置数据调用setter,性能不高。
- SPA(Single Page Application)
单一页面,不利于SEO的搜索,主页可以使用服务器渲染。
- 能拆分的组件尽可能拆分 颗粒度尽可能小
提高利用性,增加代码的可维护性; 减小不必要渲染
- v-if v-show
- v-show 控制的是display v-show还是会渲染
- v-if 根据就不会渲染
- 能使用v-if的就使用v-if
- 如果说频繁让一个组件显示隐藏,用v-show
- 如果不频繁让一个组件显示隐藏,用v-if
5,使用v-for时,必须加上key
尽可能使用id作为key 减少不必渲染 一般情况下,不要使用index作为key (例如,当进行排序的时候,数据的key值发生了改变,而vue机制会将其判断为数据的改变,而进行重新渲染。)
- Object.freeze
也会实现数据劫持,将数据进行冻结 一个被冻结的对象再也不能被修改;冻结了一个对象则不能向这个对象添加新的属性,不能删除已有属性,不能修改该对象已有属性的可枚举性、可配置性、可写性,以及不能修改已有属性的值。此外,冻结一个对象后该对象的原型也不能被修改。
- 路由懒加载
在使用该路由的时候,再进行导入该路由。
- 组件懒加载
在一开始的时候不需要进行导入组件,当匹配到路由时,需要加载组件的时候,再将组件进行载入 components:{ yyy: () => import(yyy) }
1.2第二类:加载
- 图片赖加载,需要的时候再进行请求加载。
- 第三方模块按需导入,在使用第三方插件的时候,并不是使用里面的所有的方法,我们可以按需导入,使用到那个便将那个进行导入
1.3 第三类:提升用户体验
-
使用骨架屏,当用户的网络不好的时候,发送请求时,页面上显示大致的应用的框架,增加用户的体验感。
-
pwa 缓存
当使用弱网,2G,3G网的时候,可以将内容进行缓存
1.3 第四类: SEO
可以使用服务器端渲染主页面,方便seo进行数据的爬取
如果网络环境非常不好,可能出来白屏 预渲染成 死数据
<div id="app">heelo</div>通过插件来实现 SSR
1.4 第五类:从后端角度来优化
- 缓存
- 压缩