這個問題是在工作中遇到了
前端用的是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的話,直接跳轉到指定頁面就好了。