日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

解决$router.go(-1)返回上一层页面不刷新页面问题

發布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解决$router.go(-1)返回上一层页面不刷新页面问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原因:頁面沒有跳轉過去,但網址已經跳轉過去了,這個原因是因為他沒有進行緩存,所以頁面沒有進行及時的渲染。

方案一

//先在router/index.js中添加路由元信息,設置需要緩存的頁面 routes: [{path: '/',name: 'index',component: index,meta: {keepAlive: false, //此組件不需要被緩存}},{path: '/page1',name: 'page1',component: page1,meta: {keepAlive: true, //此組件需要被緩存}},{path: '/page2',name: 'page2',component: page2,meta: {keepAlive: true, // 此組件需要被緩存}},{path: '/page3',name: 'page3',component: page3,meta: {keepAlive: false, // 此組件不需要被緩存}} ]

?

然后在vue中改寫<router-view> 加一個路由參數判斷

<keep-alive><router-view v-if="$route.meta.keepAlive"><!-- 這里是會被緩存的視圖組件,比如 page1,page2 --></router-view> </keep-alive> <router-view v-if="!$route.meta.keepAlive"><!-- 這里是不被緩存的視圖組件,比如 page3 --> </router-view>

?

方案二

可以在點擊跳轉頁面之前,獲取當前的路由,記錄下來,然后指定跳轉

1、store里怎么寫和怎么取就不贅述了,beforenter...等方法看自己使用需求了,下面用的beforeEach

beforeEach router.beforeEach((to,from,next) => {if(to.meta.gorouter){ //判斷該路由是否需要權限Store.commit("setFromRouter", from) //路由跳轉前記錄上一級路由next()}else{next({path:'/login',query:{redirect:to.fullPath} //將該路由path傳入login頁面,登陸成功后跳轉到該頁面})}}else{Store.commit("setFromRouter", from) //路由跳轉前記錄上一級路由next()} })

?

在vue中需要返回的方法里這樣調用就行

this.$router.push(this.FromRouter).then(r => {})

this.FromRouter來源與所在組件的computed計算屬性

computed: { FromRouter: function(){ return this.$store.getters.getFromRouter} },

總結

以上是生活随笔為你收集整理的解决$router.go(-1)返回上一层页面不刷新页面问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。