最近剛看開發(fā)了個(gè)mobx項(xiàng)目队寇,看上去很好的mobx實(shí)際測試的性能并不理想咨跌,在查閱了一些資料后開始了優(yōu)化偷俭。
具體性能問題表現(xiàn)為
- 操作延時(shí)
- 渲染次數(shù)過多
- 內(nèi)存爆表
具體優(yōu)化如下:
不在view層直接寫store操作
又碌,而是調(diào)用action方法。view層寫store不會(huì)直接執(zhí)行
,而是在渲染完再執(zhí)行,官網(wǎng)給的實(shí)例是在view中寫store因?yàn)榇a結(jié)構(gòu)簡單砌创,而且沒有網(wǎng)絡(luò)延時(shí)姆打,所以并沒有多少延時(shí)。復(fù)雜的二維數(shù)組不要observer
讥脐。在寫數(shù)組時(shí)遭居,mobx會(huì)逐條寫數(shù)組,導(dǎo)致view層重復(fù)渲染旬渠。最后解決方案是view層不observer
,直接用react的生命周期進(jìn)行優(yōu)化俱萍。obeserver的組件直接shouldComponentUpdate return false
,偵聽過的組件不會(huì)出發(fā)這個(gè)生命周期,是否雙向綁定也不受這個(gè)影響告丢,可以直接return false枪蘑。