Vue性能優(yōu)化的方法
今天來談一談Vue中一些性能優(yōu)化的問題,僅僅是個人使用中的一些小心得,來,今天我一句廢話不多說,直接上內(nèi)容好吧
1.v-if和v-show的使用,
我們都知道這兩個都可以控制顯隱,那我們用哪個呢,個人覺得要從兩個方面入手來確定使用哪個,
1.權(quán)限的問題,只要涉及到權(quán)限相關(guān)的展示用v-if比較好
2.切換地頻率,如果頻繁的切換我們用v-show,不頻繁的切換用v-if
其實(shí)兩者各有優(yōu)缺,就看你是怎么選擇了,用v-if能減少頁面中的DOM總數(shù),加快渲染的速度,而且我們要清楚一個事情
v-if是'真正的'條件渲染,因?yàn)樗鼤_保在切換過程中條件塊內(nèi)的事件監(jiān)聽器和子組件適當(dāng)?shù)乇讳N毀和重建.
v-if也是惰性的,如果在初始渲染時條件為假,那么什么都不做- - 直到條件第一次為真的時候才會開始渲染條件塊,相比之下,v-show
就簡單得多- - 不管初始條件是什么,元素總會被渲染,并且只是簡單的基于css進(jìn)行切換.
2.使用動畫時可以用CSS啟動硬件加速,
CSS animations, transforms 以及 transitions 不會自動開啟GPU加速,而是由瀏覽器的緩慢的軟件渲染引擎來執(zhí)行,那我們怎樣才可以切換到GPU模式呢,很多瀏覽器提供了某些觸發(fā) 的CSS規(guī)則,可以用transform: translateZ(0); 來開啟硬件加速,transform: translate3d(0, 0, 0)也可以。
3.組件懶加載,
這個很有用的,例如,當(dāng)我們在一個很長的頁面時,用戶可能只會去看前一兩屏,那剩下沒被用用戶觀看的組件也會被加載,這樣就會浪費(fèi)我們的資源,我們使用組件懶加載在阻止性能浪費(fèi)
4.為item設(shè)置唯一key值,
方便Vuex的內(nèi)部機(jī)制在循環(huán)時能夠準(zhǔn)確的找到該條列表數(shù)據(jù)
5.減少watch的數(shù)據(jù),在有可能的前提下,減少沒有必要的state數(shù)據(jù)
因?yàn)楫?dāng)watch的數(shù)據(jù)比較大的時候,會大量消耗性能,所以我們可以使用事件中央總線或者Vuex進(jìn)行數(shù)據(jù)的變更操作
為什么要減少沒有必要的state數(shù)據(jù),這和Vue的響應(yīng)式原理有關(guān),Vue會使用 Object.defineProperty 把這些屬性全部轉(zhuǎn)為 getter/setter ,并建立相應(yīng)的Watcher來監(jiān)控,這就造成一個問題,當(dāng)我們的state特別多時,對應(yīng)的Watcher也就會特別多,容易造成卡頓,這也是為什么在大型項(xiàng)目(狀態(tài)特別多)我們會選用React而不用Vue的原因
6.圖片按需加載,這個算是基礎(chǔ)操作了吧
7.SSR(服務(wù)端渲染)
如果項(xiàng)目比較大,首屏無論怎么做優(yōu)化,都出現(xiàn)閃屏或者一陣黑屏的情況。可以考慮使用SSR(服務(wù)端渲染)
8.骨架屏加載
在頁面加載資源較多,可能會出現(xiàn)白屏和閃屏的情況,體驗(yàn)不好,這個時候我們可以使用骨架屏
?。ü羌芷辆褪窃陧撁鎯?nèi)容未加載完成的時候,先使用一些圖形進(jìn)行占位,待內(nèi)容加載完成之后再把它替換掉)
9.打包時的優(yōu)化
有時候我們打完包之后發(fā)現(xiàn)包會很大,那怎么解決這個問題呢,其實(shí)很簡單,在項(xiàng)目中,我們不是引入了諸如axios,vuex,vue-router等的包嗎,那我們將這些包剔除出去,
換用cdn直接引入到我們項(xiàng)目的根目錄的html當(dāng)中,
注意在 webpack 里有個 externals配置,可以忽略不需要打包的庫
目前的總結(jié)的就是這些,如果以后想起來還有別的,我會再回來添加的,在下告辭,不用想我,我去用個早膳,一會就回來好吧
以上就是Vue性能優(yōu)化的方法的詳細(xì)內(nèi)容,更多關(guān)于Vue性能優(yōu)化的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
vue a標(biāo)簽點(diǎn)擊實(shí)現(xiàn)賦值方式
這篇文章主要介紹了vue a標(biāo)簽點(diǎn)擊實(shí)現(xiàn)賦值方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
Vue的Eslint配置文件eslintrc.js說明與規(guī)則介紹
最近在跟著視頻敲項(xiàng)目時,代碼提示出現(xiàn)很多奇奇怪怪的錯誤提示,百度了一下是eslintrc.js文件沒有配置相關(guān)命令,ESlint的語法檢測真的令人抓狂,現(xiàn)在總結(jié)一下這些命令的解釋2020-02-02
Vue利用路由鉤子token過期后跳轉(zhuǎn)到登錄頁的實(shí)例
下面小編就為大家?guī)硪黄猇ue利用路由鉤子token過期后跳轉(zhuǎn)到登錄頁的實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10
使用Webpack提高Vue.js應(yīng)用的方式匯總(四種)
Webpack是開發(fā)Vue.js單頁應(yīng)用程序的重要工具。下面通過四種方式給大家介紹使用Webpack提高Vue.js應(yīng)用,需要的的朋友參考下吧2017-07-07
如何用vue2+element-ui實(shí)現(xiàn)多行行內(nèi)表格編輯
最近開發(fā)項(xiàng)目,關(guān)于表格的數(shù)據(jù)操作比較多,這個地方個人覺得比較難搞,特此記錄一下,這篇文章主要給大家介紹了關(guān)于如何用vue2+element-ui實(shí)現(xiàn)多行行內(nèi)表格編輯的相關(guān)資料,需要的朋友可以參考下2024-08-08
vue實(shí)現(xiàn)圖片下載點(diǎn)擊按鈕彈出本地窗口選擇自定義保存路徑功能
vue前端實(shí)現(xiàn)前端下載,并實(shí)現(xiàn)點(diǎn)擊按鈕彈出本地窗口,選擇自定義保存路徑,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-12-12

