第二次進入頁面,頁面路由參數已經改變,可是頁面內容不會刷新。vue
問題緣由:在組件mounted鉤子中調用的刷新頁面內容,但測試發現這個鉤子沒有被調用。後來發現App.vue中使用了<keep-alive>:api
<template>
<div id="app">
<keep-alive>
<router-view></router-view>
</keep-alive>
</div>
</template>
keep-alive是Vue的內置組件,能在組件切換過程當中將狀態保留在內存中,防止重複渲染DOM。這就是問題所在了。app
解決辦法:測試
使用Vue組件切換過程鉤子activated(keep-alive組件激活時調用),而不是掛載鉤子mounted:this
<script>
export default {
// ...
activated: function() {
this.getCase()
}
}
</script>
關於keep-alive組件的鉤子:https://cn.vuejs.org/v2/api/#activated.net
---------------------
做者:木馬啊
來源:CSDN
原文:https://blog.csdn.net/u010419337/article/details/79443360
版權聲明:本文爲博主原創文章,轉載請附上博文連接!router