vue里面怎么清除緩存 vue切換頁(yè)面,組件沒(méi)有銷(xiāo)毀(destroyed無(wú)效)?
vue切換頁(yè)面,組件沒(méi)有銷(xiāo)毀(destroyed無(wú)效)?進(jìn)入頁(yè)面時(shí):點(diǎn)擊跳轉(zhuǎn)路由后:表示如果路由跳轉(zhuǎn),默認(rèn)情況下會(huì)銷(xiāo)毀上一個(gè)組件,路由器.push,去換都不見(jiàn)了。如果要保留原始零部件數(shù)據(jù),可以添加&l
vue切換頁(yè)面,組件沒(méi)有銷(xiāo)毀(destroyed無(wú)效)?
進(jìn)入頁(yè)面時(shí):點(diǎn)擊跳轉(zhuǎn)路由后:表示如果路由跳轉(zhuǎn),默認(rèn)情況下會(huì)銷(xiāo)毀上一個(gè)組件,路由器.push,去換都不見(jiàn)了。如果要保留原始零部件數(shù)據(jù),可以添加<keep alive><keep alive>。打包動(dòng)態(tài)組件時(shí),將緩存非活動(dòng)組件實(shí)例,而不是銷(xiāo)毀它們。與<transition>一樣,<keep alive>是一個(gè)抽象組件:它不呈現(xiàn)DOM元素本身,也不出現(xiàn)在父組件鏈中。API-虛擬用戶(hù).js
vue項(xiàng)目在ie瀏覽器內(nèi)存泄漏,不斷切換路由,發(fā)現(xiàn)內(nèi)存不能釋放,該如何解決?
如果DOM/BOM對(duì)象中的事件綁定到已裝載/創(chuàng)建的掛鉤中,則應(yīng)在beforedostroy中完成相應(yīng)的解除綁定。如果在掛載/創(chuàng)建的鉤子中使用了第三方庫(kù)初始化,則應(yīng)該在beforedostroy中進(jìn)行相應(yīng)的銷(xiāo)毀。如果組件中使用了計(jì)時(shí)器,則應(yīng)在銷(xiāo)毀前進(jìn)行相應(yīng)的銷(xiāo)毀。不要使用模板表達(dá)式中的表達(dá)式綁定到特定的處理函數(shù)。這個(gè)邏輯應(yīng)該放在處理函數(shù)中嗎?如果在掛載/創(chuàng)建的鉤子中使用了$on,則需要在beforedostroy($off)中執(zhí)行相應(yīng)的解除綁定。在模板中使用事件綁定時(shí),某些組件可能會(huì)泄漏。使用$on替換模板中的綁定
~]。
前端開(kāi)發(fā)也是如此。實(shí)際上,我們都使用jQuery。它簡(jiǎn)單而粗糙,并且很容易直接操作界面。如果你想實(shí)現(xiàn)任何功能,你會(huì)成功的。但是在項(xiàng)目變得越來(lái)越復(fù)雜之后,這種開(kāi)發(fā)方式會(huì)出現(xiàn)一個(gè)問(wèn)題:代碼組織很低,項(xiàng)目的可維護(hù)性很差,特別是當(dāng)項(xiàng)目中的很多頁(yè)面都有層次關(guān)系時(shí),很容易混淆自己。
“.現(xiàn)在我們不應(yīng)該把一個(gè)網(wǎng)頁(yè)看作一個(gè)網(wǎng)頁(yè),而是一個(gè)以網(wǎng)頁(yè)的形式呈現(xiàn)的應(yīng)用程序。分離數(shù)據(jù)和行為之后,前端開(kāi)發(fā)變得更加清晰,這也是前端開(kāi)發(fā)的一個(gè)重要標(biāo)志。
雖然這些框架使用了虛擬DOM等技術(shù),但由于抽象合理,開(kāi)發(fā)效率遠(yuǎn)高于傳統(tǒng)前端,比直接操作DOM要慢。試想一下,用這兩種方法開(kāi)發(fā)的項(xiàng)目效率比傳統(tǒng)開(kāi)發(fā)低0.5%,但是傳統(tǒng)開(kāi)發(fā)需要的bug是傳統(tǒng)開(kāi)發(fā)的兩倍。如果你是,你會(huì)選哪一個(gè)?
使用Vue等框架的首要原因是為了開(kāi)發(fā)效率,還是減少DOM操作的性能損失?
我不知道你指的是Vue中的keep alive標(biāo)簽嗎?
如下所示,我記錄了keep-alive組件的緩存功能:
post和input是兩個(gè)不相關(guān)的組件,但主組件通過(guò)動(dòng)態(tài)組件標(biāo)記引用這兩個(gè)子組件:
如果在切換輸入組件時(shí)要在post中保留先前選擇的選項(xiàng),可以使用keep-alive組件標(biāo)記。這是官方文檔推薦的使用方法,以便可以緩存組件。
我想知道您是否可以刪除“保持活力”標(biāo)簽?
也許你的業(yè)務(wù)很復(fù)雜,但是如果你真的想達(dá)到破壞效果,你能使用V-if模式嗎?從父組件傳入固定的業(yè)務(wù)ID,然后在子組件中根據(jù)該ID判斷是否重新呈現(xiàn)。
您可以關(guān)注[前端雨爸爸]。最近我在寫(xiě)一篇關(guān)于[Vue basic series]的文章。您可以借此機(jī)會(huì)回顧一下Vue最常用的知識(shí)點(diǎn)。