Vue-router如何切換不同參數的相同路由?
如題,在用vue-router做單頁的博客時,有如下需求:
文章頁路由為 /blog/:id ,
打開某篇文章後若想實現上一篇,下一篇或類似文章推薦,
即 /blog/aaa 向 /blog/bbb 頁面跳轉,
這種情況無論是用&
還是router.push ,頁面和url都沒有任何反應。 這種需求在幾乎所有網站上都會出現吧,那麼在vue下有什麼好的解決辦法呢?
這個問題我剛遇到過,監聽路由變化就可以實現。如果有問題我下次貼代碼~
更新,貼我的代碼:謝邀
我覺得倒不需要通過 router 來實現這樣的目的。
我的思路是這樣,如果要進入下一篇文章或者上一篇,可以用一個點擊方法,將id傳入,該方法用於 load 數據。這裡的 load() 同時也是頁面掛載時載入數據的方法。
這是我實現的方式:
// js 部分
mounted(){
this.id = this.$route.params.id;
this.load(this.id)
},
methods: {
load(id){
fetchMovieById(id)
.then(data =&>{
this.movie = data;
this.loading = false;
})
}
}
html 部分
// 此處的id是我mock的
&
具體可以看我的項目中的代碼:https://github.com/superman66/vue2.x-douban/blob/test/src/views/movie/movie-detail.vue
通過查詢字元串啊,在組件watch裡面通過$route查詢字元串監視變化,有變化就調用你定義的獲取數據方法
https://segmentfault.com/q/1010000012722318segmentfault.com
在文檔里找到了 Dynamic Route Matching
const User = {
template: "...",
watch: {
"$route" (to, from) {
// react to route changes...
}
}
}
和樓主一樣的問題,求分享解決方法
組件復用了。應該在組件的update還是什麼生命周期的方法裡面去重新載入數據
推薦閱讀:
※vuejs 開發中, 有必要把button, input封裝成組件嘛?
※Vue2.0 中,「漸進式框架」和「自底向上增量開發的設計」這兩個概念是什麼?
TAG:Vuejs | vue-router |