vue router 後退時跳過某頁面

這個問題是在工作中遇到了

前端用的是vue,路由是uniapp中的插件與vue-router基本一樣,系統集成到企業微信了,導航欄只能用自帶的。我想在返回的時候不返回某一頁面,各種方法都試了。

就開始看路由插件中的代碼,發現這個插件判斷history.length如果大於1,就會走back()。那我直接不讓history中出現我不想在返回時經過的頁面不就好了。還做了好多if判斷白費了。

我剛開始用的是router.push({name:‘index’,params:{title:“index”}})  (參數不會拼接在路由後面,地址欄上看不到參數) 
就算使用router.push({path:’/pages/index/index’,query:{title:‘index’}})  (傳遞參數會拼接在路由後面,出現在地址欄,path需要完整路徑)也是一樣

因爲push這種方式,是會在history有記錄的
百度搜索的時候發現了replace(),看了一下網頁中的解釋是relace是替換當前頁面,也就相當於跳轉,會在history中替換一條歷史記錄 (即 即將要跳轉的頁面替換掉現在的)。但是在返回是會出現從a跳轉到a的情況,因爲replace用要跳轉的頁面替換了自己,在路由中判斷一下如果to和from都是a的話,直接跳轉到指定頁面就好了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章