十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問題一站解決
Vue 2.0 在發(fā)布之初,就以其優(yōu)秀的運(yùn)行時(shí)性能著稱,你可以通過這個(gè)第三方 benchmark 來(lái)對(duì)比其他框架的性能。Vue 使用了 Virtual DOM 來(lái)進(jìn)行視圖渲染,當(dāng)數(shù)據(jù)變化時(shí),Vue 會(huì)對(duì)比前后兩棵組件樹,只將必要的更新同步到視圖上。
Vue 幫我們做了很多,但對(duì)于一些復(fù)雜場(chǎng)景,特別是大量的數(shù)據(jù)渲染,我們應(yīng)當(dāng)時(shí)刻關(guān)注應(yīng)用的運(yùn)行時(shí)性能。
本文仿照Vue Cookbook 組織形式,對(duì)優(yōu)化 Vue 組件的運(yùn)行時(shí)性能進(jìn)行闡述。
基本的示例
在下面的示例中,我們開發(fā)了一個(gè)樹形控件,支持基本的樹形結(jié)構(gòu)展示以及節(jié)點(diǎn)的展開與折疊。
我們定義 Tree 組件的接口如下。 data
綁定了樹形控件的數(shù)據(jù),是若干顆樹組成的數(shù)組, children
表示子節(jié)點(diǎn)。 expanded-keys
綁定了展開的節(jié)點(diǎn)的 key
屬性,使用 sync
修飾符來(lái)同步組件內(nèi)部觸發(fā)的節(jié)點(diǎn)展開狀態(tài)的更新。