1、vue3內(nèi)部使用了 Tree-shaking 技術(shù),沒(méi)有使用到的api,在打包時(shí)不會(huì)進(jìn)行打包,直接進(jìn)行移除了。
2、可以在vue.config.js中進(jìn)行配置,一些consoel.log等打印輸出的,vue的警告等在生產(chǎn)的時(shí)候,盡量不要展示,還有sourcemap等
3、使用異步組件進(jìn)行異步加載const Foo = defineAsyncComponent(() => import('./Foo.vue'))
4、props父組件傳參的穩(wěn)定性
- 當(dāng)傳遞的props值進(jìn)行更新的時(shí)候,子組件就會(huì)進(jìn)行更新
<ListItem
v-for="item in list"
:id="item.id"
:active-id="activeId" />
- 當(dāng)每次activeId每次更新的時(shí)候,子組件都會(huì)全部進(jìn)行更新,此時(shí)我們應(yīng)該加一個(gè)判斷
<ListItem
v-for="item in list"
:id="item.id"
:active="item.id === activeId" />
- 只有當(dāng)activeId等于item.id的時(shí)候,在進(jìn)行更新
5、也可以使用v-once,v-memo具體的場(chǎng)景使用,進(jìn)行優(yōu)化
6、當(dāng)我們渲染大型的列表的時(shí)候,可以使用虛擬列表進(jìn)行優(yōu)化
7、當(dāng)我們使用響應(yīng)式的api進(jìn)行聲明變量
- 如果不是頁(yè)面上需要進(jìn)行視圖更新的,我們可以不用reactive,ref更進(jìn)行聲明,可以使用
shallowRef() 和 shallowReactive() 淺層式響應(yīng)進(jìn)行聲明(淺層式頂部是響應(yīng)的,底部都不是響應(yīng)數(shù)據(jù))
8、有的頁(yè)面我們可以使用緩存(可以是keep-alive,也可以使用本地),減少請(qǐng)求數(shù)據(jù)
9、使用ui框架進(jìn)行按需引入
10、打包時(shí)開(kāi)啟gzip進(jìn)行壓縮,公共的樣式,js文件等放到src下的assets會(huì)進(jìn)行壓縮
11、圖片的優(yōu)化,一般圖標(biāo)盡可能的使用iconfont中的圖標(biāo),不要使用圖片,也可以使用雪碧圖(這個(gè)要看你的項(xiàng)目適不適合,雪碧圖也是有缺點(diǎn)的),太大的圖片進(jìn)行壓縮,可以把圖片放到cdn上托管,減少使用本地圖片(不過(guò)這個(gè)取決于網(wǎng)絡(luò),沒(méi)有本地圖片加載的快)或者使用圖片懶加載(vue-lazyload)
有的插件可以使用cdn進(jìn)行引入(不過(guò)這個(gè)也是有風(fēng)險(xiǎn)的,有時(shí)候插件進(jìn)行更新,你就需要替換版本,否則會(huì)導(dǎo)致項(xiàng)目有問(wèn)題)
12、在我們使用vue框架開(kāi)發(fā)的時(shí)候,一些指令的合理使用
- v-for跟v-if的使用,現(xiàn)在v3中v-if的優(yōu)先級(jí)大于v-for
- v-show和v-if的使用
- v-for需要搭配key的使用,在diff算法更新的時(shí)候,可以更快速的只更新需要更新的數(shù)據(jù),而不是無(wú)腦的全部進(jìn)行更新
- computed和watch的合理運(yùn)用
- 使用監(jiān)聽(tīng)/定時(shí)器的時(shí)候,在頁(yè)面卸載的時(shí)候進(jìn)行移除監(jiān)聽(tīng)/取消定時(shí)器
- 將公共的樣式,js等進(jìn)行提取
- 合理的使用組件(組件的渲染要比dom渲染消耗的性能要大一點(diǎn))
10、路由使用懶加載component:()=>import('../views/home.vue')
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。