vue中$router.back()和$router.go()的用法
$router.back()和$router.go()
返回上一頁,有兩種方法:
1. $router.back()
2. $router.go()
使用$router.back()和$router.go(-1)作用相同,都是返回原頁面,但如果原頁面路由攜帶參數(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點擊按鈕跳轉(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)之前的那一頁
驗證:首先打開一個新的vue項目,把鼠標(biāo)指針放在瀏覽器左上角的回退按鈕并按住左鍵,能夠看到目前瀏覽器歷史記錄除了默認(rèn)新開打的一個頁面沒有任何其他vue路由信息

使用 this.$router.replace(path)這個方法跳轉(zhuǎn)后,再次點擊,可以看到路由跳轉(zhuǎn)后,歷史紀(jì)錄里面跟新打開的項目一樣。
說明使用router.replace不會往瀏覽器歷史記錄里添加信息。并且點擊返回按鈕也是返回到空頁面,并不會返回到vue的首頁

然后使用this.$router.push(path)方法,點擊跳轉(zhuǎn)后能夠看到歷史記錄里面多了一條記錄

點擊返回后,也能夠返回到首頁。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue3+X6流程圖實現(xiàn)數(shù)據(jù)雙向綁定詳解
這篇文章主要為大家詳細(xì)介紹了Vue3如何結(jié)合X6流程圖實現(xiàn)數(shù)據(jù)雙向綁定,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03
VUE學(xué)習(xí)寶典之el-dialog使用示例
在我工作過程中使用el-dialog的需求挺多的,也積累了一下使用技巧,這篇文章主要給大家介紹了關(guān)于VUE學(xué)習(xí)寶典之el-dialog使用的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03
vue3響應(yīng)式轉(zhuǎn)換常用API操作示例代碼
在Vue 3中,響應(yīng)式系統(tǒng)得到了顯著改善,包括使用Composition API時更加靈活的狀態(tài)管理,這篇文章主要介紹了vue3響應(yīng)式轉(zhuǎn)換常用API操作示例代碼,需要的朋友可以參考下2024-08-08
關(guān)于Element-ui中el-table出現(xiàn)的表格錯位問題解決
使用ElementUI的el-table后,偶然發(fā)現(xiàn)出現(xiàn)行列錯位、對不齊問題,下面這篇文章主要給大家介紹了關(guān)于Element-ui中el-table出現(xiàn)的表格錯位問題解決的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07
LRU算法在Vue內(nèi)置組件keep-alive中的使用
LRU算法全稱為least recently use 最近最少使用,核心思路是最近被訪問的以后被訪問的概率會變高,那么可以把之前沒被訪問的進(jìn)行刪除,維持一個穩(wěn)定的最大容量值,從而不會導(dǎo)致內(nèi)存溢出。2021-05-05

