1. 程式人生 > 其它 >Vue Router_兩個生命週期鉤子、路由守衛

Vue Router_兩個生命週期鉤子、路由守衛

1.兩個新的生命週期鉤子

作用:路由元件所獨有的兩個鉤子,用於捕獲路由元件的啟用狀態。

具體名字:

  1. activated路由元件被啟用時觸發。
  2. 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>