Vue Router_兩個生命週期鉤子、路由守衛
阿新 • • 發佈:2022-04-14
1.兩個新的生命週期鉤子
作用:路由元件所獨有的兩個鉤子,用於捕獲路由元件的啟用狀態。
具體名字:
-
activated
路由元件被啟用時觸發。 -
deactivated
路由元件失活時觸發。
如,在一個路由裡的某個資料,在切換到另一個路由對應的元件後,裡面的資料還保留,也就是不銷燬原來的元件,但是需要關閉裡面的定時器,所以用元件的beforeDestroy鉤子無法實現關閉掉定時器,因為原元件通過<keep-alive>
標籤所包含著的。這時候就可以用deactivated
鉤子來關閉定時器。注意:元件失活不等於組被銷燬。
src\pages\News.vue
<template> <ul> <li :style="{opacity}">歡迎學習vue</li> <li>news001 <input type="text"></li> <li>news002 <input type="text"></li> <li>news003 <input type="text"></li> </ul> </template> <script> export default { name:"News", data(){ return{ opacity:1 } }, activated(){ console.log("News元件激活了"); this.timer=setInterval(() => { console.log("定時器在工作 "); this.opacity-=0.01; if(this.opacity<=0){ this.opacity=1;; } }, 16); }, deactivated(){ console.log("News元件失活了"); //關閉定時器 clearInterval(this.timer); } } </script>