欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue中的deactivated

吉茹定2年前14瀏覽0評論

在Vue中,除了常見的生命周期函數(shù)created、mounted、updated和destroyed之外,還有一個(gè)不太常用的生命周期函數(shù)deactivated。

deactivated生命周期函數(shù)在組件被切換離開時(shí)被調(diào)用,它和activated生命周期函數(shù)是一對,activated被調(diào)用時(shí)組件被激活,deactivated被調(diào)用時(shí)組件被停用。這里的激活和停用指的是組件的可見性,例如組件被包含在v-if或者是router-view組件內(nèi)部,當(dāng)它被切換出去時(shí)就會被停用。

使用deactivated和activated生命周期函數(shù)可以實(shí)現(xiàn)一些特殊的功能,例如當(dāng)組件被切換離開時(shí)保存組件的狀態(tài),在組件被切換回來時(shí)恢復(fù)組件狀態(tài),達(dá)到類似瀏覽器中的前進(jìn)后退功能。

export default {
data() {
return {
cache: {}
};
},
deactivated() {
let key = this.$route.path;
this.cache[key] = this.$data;
},
activated() {
let key = this.$route.path;
if (this.cache[key]) {
Object.assign(this.$data, this.cache[key]);
}
}
};

上面的代碼實(shí)現(xiàn)了一個(gè)簡單的緩存組件數(shù)據(jù)的功能,當(dāng)組件被切換離開時(shí)保存組件的數(shù)據(jù),當(dāng)組件被停用時(shí)恢復(fù)組件狀態(tài)。

除了保存組件數(shù)據(jù)外,deactivated和activated生命周期函數(shù)還可以實(shí)現(xiàn)其他的功能,例如在組件被切換出去時(shí)取消組件的定時(shí)器等。

export default {
data() {
return {
timer: null
};
},
methods: {
startTimer() {
this.timer = setInterval(() =>{
console.log("timer");
}, 1000);
},
stopTimer() {
clearInterval(this.timer);
}
},
activated() {
this.startTimer();
},
deactivated() {
this.stopTimer();
}
};

上面的代碼實(shí)現(xiàn)了一個(gè)簡單的定時(shí)器組件,當(dāng)組件被切換激活時(shí)啟動(dòng)定時(shí)器,當(dāng)組件被切換離開時(shí)停止定時(shí)器。這樣可以避免浪費(fèi)資源,當(dāng)組件不可見時(shí)停止定時(shí)器可以達(dá)到節(jié)省資源的目的。

總之,deactivated生命周期函數(shù)在Vue中雖然不太常用,但是它可以實(shí)現(xiàn)一些特殊的功能,例如保存組件的狀態(tài)和停止組件的定時(shí)器,可以在特殊的場景下使用。