vue中$router.back()和$router.go()的用法
$router.back()和$router.go()
返回上一頁,有兩種方法:
1. $router.back()
2. $router.go()
使用$router.back()和$router.go(-1)作用相同,都是返回原頁面,但如果原頁面路由攜帶參數(shù),使用以上兩個(gè)方式返回的原頁面路由參數(shù)消失,此時(shí)使用$router.back(-1)返回原頁面路由,參數(shù)仍存在。
go(-1)
:原頁面表單中的內(nèi)容會丟失;this.$router.go(-1)
:后退+刷新;this.$router.go(0)
:刷新;this.$router.go(1)
:前進(jìn);history.go(-1)
:后退+刷新;history.go(1)
:前進(jìn);back()
:原頁表表單中的內(nèi)容會保留;this.$router.back()
:后退this.$router.back(0)
刷新this.$router.back(1)
前進(jìn)history.back()
后退history.back(0)
刷新history.back(1)
前進(jìn)
vue點(diǎn)擊按鈕跳轉(zhuǎn)頁面總結(jié) router.push router.replace router.go
總結(jié)一下在Vue里面跳轉(zhuǎn)頁面的方法
首先是vue提供的router-link,使用后再頁面里會轉(zhuǎn)換為a標(biāo)簽
<router-link to="/test">go home</router-link>
使用函數(shù)進(jìn)行任意頁面跳轉(zhuǎn)
普通跳轉(zhuǎn)
<button @click="jump('/test')">Click Me</button> ? ?// 這里進(jìn)行設(shè)置要跳轉(zhuǎn)的路由 methods: { ? ? ? ? jump (path) { ? ? ? ? ? ? this.$router.replace(path) ? ? ? ? } ? ? ? ?? ?? ??? ?// 或者 ?? ??? ?jump (path) { ? ? ? ? ? ? this.$router.push({path: path}) ? ? ? ? } ? ? }
帶參數(shù)跳轉(zhuǎn)
<button @click="jump('/test')">Click Me</button> ? ?// 這里進(jìn)行設(shè)置要跳轉(zhuǎn)的路由 methods: { ?? ??? ?jump (path) { ? ? ? ? ? ? this.$router.push({path: `${path}?a=1`}) ? ? ? ? } ? ? ? ?? ? ? ? ? // 或者 ? ? ? ? jump (path) { ? ? ? ? ? ? this.$router.push({path: path, query:{a:123}}) ? ? ? ? } ? ? }
前進(jìn)
@click="$router.go(1)"
后退
@click="$router.back()" ?? ?// 或者 @click="$router.go(-1)"
刷新當(dāng)前頁面
@click="$router.go(0)" ?? ?// 或者 window.location.reload() ?? ?// 或者 history.go(0)
解析router.push 和 router.replace的區(qū)別
先說結(jié)論:router.push會在瀏覽器歷史紀(jì)錄里面添加一條記錄,router.replace不會在瀏覽器的歷史記錄里面添加信息。也就是通過router.push跳轉(zhuǎn)的頁面能夠返回上一頁。這里的上一頁指的是跳轉(zhuǎn)之前的那一頁
驗(yàn)證:首先打開一個(gè)新的vue項(xiàng)目,把鼠標(biāo)指針放在瀏覽器左上角的回退按鈕并按住左鍵,能夠看到目前瀏覽器歷史記錄除了默認(rèn)新開打的一個(gè)頁面沒有任何其他vue路由信息
使用 this.$router.replace(path)這個(gè)方法跳轉(zhuǎn)后,再次點(diǎn)擊,可以看到路由跳轉(zhuǎn)后,歷史紀(jì)錄里面跟新打開的項(xiàng)目一樣。
說明使用router.replace不會往瀏覽器歷史記錄里添加信息。并且點(diǎn)擊返回按鈕也是返回到空頁面,并不會返回到vue的首頁
然后使用this.$router.push(path)方法,點(diǎn)擊跳轉(zhuǎn)后能夠看到歷史記錄里面多了一條記錄
點(diǎn)擊返回后,也能夠返回到首頁。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Vue路由跳轉(zhuǎn)傳參或打開新頁面跳轉(zhuǎn)的方法總結(jié)
- vue3路由跳轉(zhuǎn)params傳參接收不到的解決辦法
- Vue3之路由跳轉(zhuǎn)與參數(shù)獲取方式
- Vue路由跳轉(zhuǎn)傳參或者打開新頁面跳轉(zhuǎn)問題
- vue3.0?router路由跳轉(zhuǎn)傳參問題(router.push)
- vue如何動態(tài)修改$router參數(shù)
- vue項(xiàng)目如何使用$router.go(-1)返回時(shí)刷新原來的界面
- vue中路由跳轉(zhuǎn)的多種方式(和$router下路由跳轉(zhuǎn)的那幾個(gè)方法的區(qū)別)
相關(guān)文章
vue?el-table實(shí)現(xiàn)動態(tài)添加行和列具體代碼
最近遇到一個(gè)動態(tài)增加行和列的需求,所以這里給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于vue?el-table實(shí)現(xiàn)動態(tài)添加行和列的相關(guān)資料,需要的朋友可以參考下2023-09-09Vue.js動態(tài)添加、刪除選題的實(shí)例代碼
這篇文章主要介紹了Vue.js動態(tài)添加、刪除選題的實(shí)例代碼,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09vue+echarts實(shí)現(xiàn)可拖動節(jié)點(diǎn)的折線圖(支持拖動方向和上下限的設(shè)置)
制作一個(gè)折線圖用于顯示當(dāng)前24小時(shí)的數(shù)據(jù),并且可以通過拖動折現(xiàn)圖設(shè)置數(shù)據(jù),接下來通過本文給大家分享vue+echarts實(shí)現(xiàn)可拖動節(jié)點(diǎn)的折線圖(支持拖動方向和上下限的設(shè)置),感興趣的朋友跟隨一起學(xué)習(xí)吧2019-04-04vue+SSM實(shí)現(xiàn)驗(yàn)證碼功能
這篇文章主要介紹了vue+SSM實(shí)現(xiàn)驗(yàn)證碼功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-12-12vue 路由視圖 router-view嵌套跳轉(zhuǎn)的實(shí)現(xiàn)
這篇文章主要介紹了vue 路由視圖 router-view嵌套跳轉(zhuǎn),主要實(shí)現(xiàn)的內(nèi)容有制作一個(gè)登錄頁面,跳轉(zhuǎn)到首頁,首頁包含菜單欄、頂部導(dǎo)航欄、主體,標(biāo)準(zhǔn)的后臺網(wǎng)頁格式,菜單點(diǎn)擊顯示不同的頁面,感興趣的小伙伴請參考下面文章內(nèi)容2021-09-09Vue源碼學(xué)習(xí)之響應(yīng)式是如何實(shí)現(xiàn)的
最近接觸了vue.js,一度非常好奇vue.js是如何監(jiān)測數(shù)據(jù)更新并且重新渲染頁面,這篇文章主要給大家介紹了關(guān)于Vue源碼學(xué)習(xí)之響應(yīng)式是如何實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2021-10-10