vue刷新路由,不刷新頁面


1.路由介紹

vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,適合用於構建單頁面應用。vue的單頁面應用是基於路由和組件的,路由用於設定訪問路徑,並將路徑和組件映射起來。傳統的頁面應用,是用一些超鏈接來實現頁面切換和跳轉的。在vue-router單頁面應用中,則是路徑之間的切換,也就是組件的切換。

2.刷新路由

對於路由,不同的路由跳轉,vue會幫我們刷新路由,但是我今天要說的是,同一路由刷新我們的解決方法。

1.在使用Vue-router做項目時,會遇到如/serviceId/:id這樣只改變id號的場景。由於router-view是復用的,單純的改變id號並不會刷新router-view,而這並不是我們所期望的結果。

2.我們可以在點擊事件上加上router.go(0),強制刷新整個頁面。當然這種體驗效果太差,我認為不可取。

3.使用watch的方法,具體的可以看一下官方文檔

 

 
        
watch: {  '$route': function (to, from) { this.$store.dispatch('updateActiveTemplateId', this.$route.params.templateId) // 通過更新Vuex中的store的數據,讓數據發生變化 this.getTemplateById() } }

4.通過改變router-view中的key來達到刷新組件的目的,我現在用的就是這種方法(因為我使用的按需加載,所以加載組件也不會加載所有界面)

 

<router-view :key="activeDate"></router-view>

我用了一個簡單粗暴的方式來改變key,時間戳(捂臉)

this.activeDate = new Date()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM