vue組件和組件間使用router跳轉(zhuǎn)的時候耸棒,除了首次實(shí)例化會加載數(shù)據(jù)惰帽,第二次進(jìn)組件的時候,是不會再次實(shí)例化組件的召噩,也就是調(diào)用的緩存母赵,不能實(shí)時刷新組件。
涉及知識點(diǎn):
created():在創(chuàng)建vue對象時具滴,當(dāng)html渲染之前就觸發(fā)凹嘲;但是注意,全局vue.js不強(qiáng)制刷新或者重啟時只創(chuàng)建一次构韵,也就是說周蹭,created()只會觸發(fā)一次;
activated():在vue對象存活的情況下疲恢,進(jìn)入當(dāng)前存在activated()函數(shù)的頁面時凶朗,一進(jìn)入頁面就觸發(fā);可用于初始化頁面數(shù)據(jù)等显拳;
beforeRouteEnter(to, from, next):進(jìn)入路由之前執(zhí)行的函數(shù),寫在組件里可根據(jù)路由進(jìn)行頁面判斷或傳值棚愤。
<template>
</template>
<script>
export default {
data() {
return {}
},
activated(){
if (this.$route.meta.isFresh) {
init();
}else{}
this.$route.meta.isFresh = false;//記得這里一定要設(shè)置一下false。
},
methods:{
init(){},
},
beforeRouteEnter(to, from, next) {
if (from.name == 'Index') {
to.meta.isFresh = true;
}
next();
}
}
</script>
<style>
</style>
也就是說杂数,每次進(jìn)入組件都會進(jìn)入beforeRouteEnter()和activated()宛畦,在這兩個鉤子函數(shù)定義初始化init()邏輯。