關於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 } } }