關於keep-alive的文章已經很多了,簡單來說就是為了減少頁面切換間頻繁的重新加載問題。
在實際開發過程中,我們需要部分頁面能夠按照我們的需求進行刷新,通過選擇設置keep-alive等,這些方案也很多。
但是個人感覺非常麻煩,而且,一般情況下通過路由傳遞參數進行刷新頁面,因此,我個人認為完全可以全部使用keep-alive(按照官方文檔而言,這個並沒有在父級dom下進行渲染,應該不會有性能問題,可能不全面,希望有同學指正)
疑問點:網上大家都使用判斷組件是否緩存的方式來做,vuejs官方給出的案例中,也提供了判斷是否緩存組件匹配函數,因此,無法確定,每個組件都“主要用於保留組件狀態或避免重新渲染。”這個做法是否好。

在vue中提供了鈎子進行使用,對於keep-alive組件,激活時activated會被觸發,除了第一次進入created被觸發,后面都不會被觸發,
因此,我們可以使用activated中進行參數獲取來進行頁面刷新。
例如:
export default {
name: 'Buy',
data () {
return {
parPrice:0,
price:0
}
},
created(){
//this.getParams()
},
activated(){
this.getParams()
},
components:{
'v-header':IHeader
},
methods:{
getParams(){
let {parPrice,price} = this.$route.params
if(typeof parPrice !== 'number')
return
this.parPrice = parPrice
this.price = price
}
}
}
