2023 Vue直播班筆記 - $route及$router

更新於 發佈於 閱讀時間約 2 分鐘
此筆記僅以個人理解的方式記錄

前言

這次要講的是 $route$router 的區別,看似相似的兩個東西,其實應用時機也大不相同,以下以簡單的幾個例子舉例。


$route

先準備個元件名叫 PageA.vue,路徑為 '/pageA' 時 router-view 會渲染其組件

<template>
<p>pageA</p>
<button @click="getRoute">getRoute</button>
</template>
<script>
export default{
methods:{
getRoute(){
console.log(this.$route);
}
}
}
</script>
<style scoped></style>
raw-image


當我們點擊 getRoute 按紐時,會印出當前路由的資訊。

  • fullpath : 為整路徑
  • params : 路由攜帶參數
  • query : 篩選搜尋參數
  • 等等...
raw-image


如果將路徑調整為 "/pageA/apple?like=mary" ,我們可以看到原本 /pageA 後面多了 apple 以及 ?like=mary 。如果你的路徑有設成 "/pageA/:userId" 的動態路由,這時候也可以利用 this.$route 取得,而 mary 為 query 選擇,如下圖

raw-image


$router

$Router 為路由的 "方法" ,跟上面的 $route 不同,這邊舉例幾個常用的方法來介紹。

- push()

有包含歷史紀錄,假設要去 "/pageA" ,可這樣下 this.$router.push("/pageA") ,如果想使用 name 來導覽的話則 this.$router.push( {name:'名稱'} ) ,路由名稱為路由 JS 內設定,如下圖

raw-image


- replace()

沒有!!!歷史紀錄,跟push不同


- go()

操作歷史紀錄的手段,如果下達 this.$router.go(-1) ,這樣會返回上一頁

想返得知如果下達 this.$router.go(1) ,就為下一頁


- addRoute()

臨時新增路由的方式,使用方式為 this.$router.addRoute( { } ) 這裡面是放物件,我新增了一個名為 "/newpageA" 的路徑,該路徑會對應到 "PageA.vue

" 組件。

raw-image


  • joker
  • 2024/03/08
留言
avatar-img
留言分享你的想法!
avatar-img
Joker Cat
3會員
21內容數
是一隻喜愛前端勇往直前的霹靂酷樂貓
Joker Cat的其他內容
2024/06/04
平常我們在 html 上常看到的例如 v-for、v-model 等等... 也是VUE已經幫我們定義好的指令,而這次我們可以依這自己的需求來建立。 此功能屬於較進階的功能,因此實戰中會比較少見,市面上還是有不少完善的套件能達到同樣效果,建議可以先往這方面察找
Thumbnail
2024/06/04
平常我們在 html 上常看到的例如 v-for、v-model 等等... 也是VUE已經幫我們定義好的指令,而這次我們可以依這自己的需求來建立。 此功能屬於較進階的功能,因此實戰中會比較少見,市面上還是有不少完善的套件能達到同樣效果,建議可以先往這方面察找
Thumbnail
2024/06/03
我們在實作中,難免會遇到在不同組件中,卻有需求相同的資料格式,因此 mixins 可以達到我們的需求,除了 data 以外也包含了 methods 可以共用,舉例來說,學生資料可能會在,班級跟社團內被使用,當我們要撰寫元件時,就可以省略多餘的 data 定義。
Thumbnail
2024/06/03
我們在實作中,難免會遇到在不同組件中,卻有需求相同的資料格式,因此 mixins 可以達到我們的需求,除了 data 以外也包含了 methods 可以共用,舉例來說,學生資料可能會在,班級跟社團內被使用,當我們要撰寫元件時,就可以省略多餘的 data 定義。
Thumbnail
2024/05/30
VUE為單向資料流的框架,在鄰近層級之間我們可以依靠 props 由父層向子層來傳遞需要的資料,然而遇到跨層級的架構時,雖然也是可以一層層傳進去,只是這會造成多餘的處理及凌亂的程式碼,因此才有了 "provide" 來解決我們跨層級的需求。 層級展示圖
Thumbnail
2024/05/30
VUE為單向資料流的框架,在鄰近層級之間我們可以依靠 props 由父層向子層來傳遞需要的資料,然而遇到跨層級的架構時,雖然也是可以一層層傳進去,只是這會造成多餘的處理及凌亂的程式碼,因此才有了 "provide" 來解決我們跨層級的需求。 層級展示圖
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
如果前面看不太懂的朋友就跳到後面虛線部分: #如果看不懂我沒辦法解釋⋯ 昨天和今天沒有在公開場合出現(聽到)的對話: (包星星參加XX聽證會) 請問包星星: 你沒有表示甚麼時候要降, 那請告訴我們有甚麼原則和數據你在觀察的? 包星星: 就是~通膨和就業數據 那告訴我們大概這些數據多少
Thumbnail
如果前面看不太懂的朋友就跳到後面虛線部分: #如果看不懂我沒辦法解釋⋯ 昨天和今天沒有在公開場合出現(聽到)的對話: (包星星參加XX聽證會) 請問包星星: 你沒有表示甚麼時候要降, 那請告訴我們有甚麼原則和數據你在觀察的? 包星星: 就是~通膨和就業數據 那告訴我們大概這些數據多少
Thumbnail
※ 什麼是路由? 當我們說「路由」時,可能是在談論路由器(實體設備),也可能是在談論路由(選擇路徑的過程),或者是在談論路徑(資料封包的傳輸路徑)。 路由器 (Router):這是一種實體設備,負責將資料封包 (Packet) 從一個網路傳送到另一個網路。它的工作方式類似於交通指揮,確保資料封包
Thumbnail
※ 什麼是路由? 當我們說「路由」時,可能是在談論路由器(實體設備),也可能是在談論路由(選擇路徑的過程),或者是在談論路徑(資料封包的傳輸路徑)。 路由器 (Router):這是一種實體設備,負責將資料封包 (Packet) 從一個網路傳送到另一個網路。它的工作方式類似於交通指揮,確保資料封包
Thumbnail
跟團 / D2 / 瑞穗牧場 - 富里花海景觀區 - 北迴歸線標誌公園 - 鐵花村
Thumbnail
跟團 / D2 / 瑞穗牧場 - 富里花海景觀區 - 北迴歸線標誌公園 - 鐵花村
Thumbnail
跟團 / D0~D1 / 見晴懷古步道 - 太平山莊 - 多望吊橋 - 湯圍溝
Thumbnail
跟團 / D0~D1 / 見晴懷古步道 - 太平山莊 - 多望吊橋 - 湯圍溝
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News