VUE的兩種跳轉(zhuǎn)push和replace對比區(qū)別

router.push(location)

在vue.js中想要跳轉(zhuǎn)到不同的 URL嗓蘑,需要使用 router.push 方法。

這個方法會向 history 棧添加一個新的記錄匿乃,當(dāng)用戶點擊瀏覽器后退按鈕時桩皿,則回到之前的 URL。

當(dāng)你點擊

<router-link>

時幢炸,這個方法會在內(nèi)部調(diào)用泄隔,所以說,點擊

<router-link :to="...">

等同于調(diào)用

router.push(...)

聲明式

<router-link :to="...">

編程式:router.push(...)//該方法的參數(shù)可以是一個字符串路徑阳懂,或者一個描述地址的對象梅尤。

// 字符串
router.push('home')
// 對象
this.$router.push({path: '/login?url=' + this.$route.path});
// 帶查詢參數(shù)柜思,變成/backend/order?selected=2
this.$router.push({path: '/backend/order', query: {selected: "2"}});
// 命名的路由
router.push({ name: 'user', params: { userId: 123 }})

router.replace(location)

設(shè)置 replace 屬性(默認(rèn)值: false)的話岩调,當(dāng)點擊時,會調(diào)用 router.replace() 而不是 router.push()赡盘,于是導(dǎo)航后不會留下 history 記錄号枕。即使點擊返回按鈕也不會回到這個頁面。

加上replace: true后陨享,它不會向 history 添加新記錄葱淳,而是跟它的方法名一樣 —— 替換掉當(dāng)前的 history 記錄钝腺。

//聲明式:
<router-link :to="..." replace></router-link>
// 編程式:
router.replace(...)
//push方法也可以傳replace
this.$router.push({path: '/home', replace: true})

傳參兩種方式

使用query:

this.$router.push({
  path: '/home',
  query: {
    site: [],
    bu: []
}
})

使用params:

this.$router.push({
  name: 'Home',  // 路由的名稱
  params: {
    site: [],
    bu: []
}
})

params:/router1/:id ,/router1/123赞厕,/router1/789 ,這里的id叫做params

query:/router1?id=123 ,/router1?id=456 ,這里的id叫做query艳狐。

兩者都可以傳遞參數(shù),區(qū)別是什么皿桑?

  1. query 傳參配置的是path毫目,而params傳參配置的是name,在params中配置path無效
  2. query在路由配置不需要設(shè)置參數(shù)诲侮,而params必須設(shè)置
  3. query傳遞的參數(shù)會顯示在地址欄中
  4. params傳參刷新會無效镀虐,但是query會保存?zhèn)鬟f過來的值,刷新不變 ;

5.路由配置:

query 的寫法

{
path: '/home',
name: Home,
component: Home
}

params寫法:

{
path: '/home/:site/:bu',
name: Home,
component: Home
}

如果路由上面不寫參數(shù)沟绪,也是可以傳過去的刮便,但不會在url上面顯示出你的參數(shù),并且當(dāng)你跳到別的頁面或者刷新頁面的時候參數(shù)會丟失绽慈,那依賴這個參數(shù)的http請求或者其他操作就會失敗

6,獲取路由參數(shù)

在接收的跳轉(zhuǎn)的頁面

created () {
let self = this
self.getParams()
},
watch () {
'$route': 'getParams'
},
methods: {
  getParams () {
  let site = this.$route.query.site
  let bu = this.$route.query.bu
  // 如果是params 傳參恨旱,那就是this.$route.params.site
  上面就可以獲取到傳遞的參數(shù)了
 }
}

注意:獲取路由上面的參數(shù),用的是$route久信,后面沒有r

params是路由的一部分,必須要有窖杀。query是拼接在url后面的參數(shù),沒有也沒關(guān)系裙士。

params一旦設(shè)置在路由入客,params就是路由的一部分,如果這個路由有params傳參腿椎,但是在跳轉(zhuǎn)的時候沒有傳這個參數(shù)桌硫,會導(dǎo)致跳轉(zhuǎn)失敗或者頁面會沒有內(nèi)容。

params啃炸、query不設(shè)置也可以傳參铆隘,但是params不設(shè)置的時候,刷新頁面或者返回參數(shù)會丟失南用,query并不會出現(xiàn)這種情況膀钠,這一點的在上面說過了

最后總結(jié):

路由傳遞參數(shù)和傳統(tǒng)傳遞參數(shù)是一樣的,命名路由類似表單提交而查詢就是url傳遞裹虫,在vue項目中基本上掌握了這兩種傳遞參數(shù)就能應(yīng)付大部分應(yīng)用了肿嘲,最后總結(jié)為以下:

1.命名路由搭配params,刷新頁面參數(shù)會丟失

2.查詢參數(shù)搭配query筑公,刷新頁面數(shù)據(jù)不會丟失

3.接受參數(shù)使用this.$router后面就是搭配路由的名稱就能獲取到參數(shù)的值

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末雳窟,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子匣屡,更是在濱河造成了極大的恐慌封救,老刑警劉巖拇涤,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異誉结,居然都是意外死亡鹅士,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門惩坑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來如绸,“玉大人,你說我怎么就攤上這事旭贬≌樱” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵稀轨,是天一觀的道長扼脐。 經(jīng)常有香客問我,道長奋刽,這世上最難降的妖魔是什么瓦侮? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮佣谐,結(jié)果婚禮上肚吏,老公的妹妹穿的比我還像新娘。我一直安慰自己狭魂,他們只是感情好罚攀,可當(dāng)我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著雌澄,像睡著了一般斋泄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上镐牺,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天炫掐,我揣著相機與錄音,去河邊找鬼睬涧。 笑死募胃,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的畦浓。 我是一名探鬼主播痹束,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼宅粥!你這毒婦竟也來了参袱?” 一聲冷哼從身側(cè)響起电谣,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤秽梅,失蹤者是張志新(化名)和其女友劉穎抹蚀,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體企垦,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡环壤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了钞诡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片郑现。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖荧降,靈堂內(nèi)的尸體忽然破棺而出接箫,到底是詐尸還是另有隱情,我是刑警寧澤朵诫,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布辛友,位于F島的核電站,受9級特大地震影響剪返,放射性物質(zhì)發(fā)生泄漏废累。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一脱盲、第九天 我趴在偏房一處隱蔽的房頂上張望邑滨。 院中可真熱鬧,春花似錦钱反、人聲如沸掖看。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乙各。三九已至,卻和暖如春幢竹,著一層夾襖步出監(jiān)牢的瞬間耳峦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工焕毫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蹲坷,地道東北人。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓邑飒,卻偏偏與公主長得像循签,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子疙咸,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容