javascript - 請(qǐng)問(wèn)一下組件的生命周期beforeDestory是在什么情況下面觸發(fā)的呢?
問(wèn)題描述
進(jìn)行路由跳轉(zhuǎn)的時(shí)候能觸發(fā)嗎?我發(fā)現(xiàn)我進(jìn)行路由跳轉(zhuǎn)的時(shí)候沒(méi)有觸發(fā)beforeDestory里面的函數(shù),但是有段代碼需要在組件銷(xiāo)毀之前執(zhí)行,請(qǐng)問(wèn)我應(yīng)該怎么做呢?https://jsfiddle.net/44w37p34/ 剛剛有個(gè)朋友給我發(fā)了一個(gè)demo,我發(fā)現(xiàn)他的beforeDestory在路由跳轉(zhuǎn)的時(shí)候觸發(fā)了,但是我的一直都不行,請(qǐng)問(wèn)是什么原因呢
問(wèn)題解答
回答1:找到原因了,之前給router-view加了個(gè)keep-alive導(dǎo)致組件緩存了,所以不會(huì)觸發(fā)beforeDestory和destoryed
回答2:我試了一下,切換路由的時(shí)候能觸發(fā)執(zhí)行beforeDestroy方法,示例如下。
const Home = {template: ` <p> <p class='section'>Some section foo</p> <p class='section'>Some section foo</p> <p class='section'>Some section foo</p> <p class='section'>Some section foo</p> </p> `,mounted() { console.log('Home mounted');},beforeDestroy() { console.log('Home destroy');} }; const Test = {template: ` <p> <p class='section'>Some section test</p> <p class='section'>Some section test</p> <p class='section'>Some section test</p> <p class='section'>Some section test</p> </p> `,mounted() { console.log('Test mounted');},beforeDestroy() { console.log('Test destroy');} };
相關(guān)文章:
1. nignx - docker內(nèi)nginx 80端口被占用2. docker網(wǎng)絡(luò)端口映射,沒(méi)有方便點(diǎn)的操作方法么?3. docker - 各位電腦上有多少個(gè)容器啊?容器一多,自己都搞混了,咋辦呢?4. docker不顯示端口映射呢?5. php - mysql 模糊搜索問(wèn)題6. docker綁定了nginx端口 外部訪問(wèn)不到7. angular.js - angular內(nèi)容過(guò)長(zhǎng)展開(kāi)收起效果8. fragment - android webView 返回后怎么禁止重新渲染?9. thinkphp5.1學(xué)習(xí)時(shí)遇到session問(wèn)題10. java - 為什么此私有靜態(tài)變量能被訪問(wèn)呢?
