小編給大家分享一下如何解決Vue相同路由參數(shù)不同不會刷新的問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡營銷推廣、網(wǎng)站重做改版、徽州網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、成都h5網(wǎng)站建設、成都做商城網(wǎng)站、集團公司官網(wǎng)建設、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為徽州等各大城市提供網(wǎng)站開發(fā)制作服務。
通常情況下我們喜歡設置keepAlive 包裹 router-view
同時在created 中觸發(fā)請求,在路由參數(shù)不同的情況下并不會執(zhí)行對應的操作。
解決方法:
1、給 router-view 設置 key 屬性為路由的完整路徑
這種方法我覺得應該是一勞永逸的方法,可能對性能造成一定損耗。不適用于一個tab切換路由并加載列表的組件,會造成頁面白屏,dev模式不會自動刷新,是個坑
2、官方給出的方法是通過 watch 監(jiān)聽路由變化,做判斷路由路徑然后調(diào)用響應的方法
watch: { '$route' () { if (this.$route.path === 'test') { this.test(); } } }
watch: { 'id': { handler: 'test', //調(diào)用方法 immediate: true, //進入立即執(zhí)行一次 } },
這兩種方法推薦第一種,第二種需要先對參數(shù)id進行賦值
3、通過組件導航守衛(wèi)來設置對應的meta 屬性
beforeRouteEnter: (to, from, next) = > { // 寫在當前組件 to.meta.keepAlive = false next() }, beforeRouteLeave: (to, from, next) = > { //寫在前一個組件 to.meta.keepAlive = false next() },
以上是“如何解決Vue相同路由參數(shù)不同不會刷新的問題”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!