首頁 >web前端 >js教程 >vue中$router和$route的簡單介紹(附範例)

vue中$router和$route的簡單介紹(附範例)

不言
不言轉載
2018-10-12 16:01:532967瀏覽

這篇文章帶給大家的內容是關於vue中$router和$route的簡單介紹(附範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

路由基本概念

route,它是一條路由。

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

routes,是一組路由。

const routes = [
  { path: '/home', component: Home },
  { path: '/about', component: About }
]

router可以理解為一個容器,或者說一種機制,它管理了一組route。簡單來說,route只是進行了URL和函數的映射,而當接收到一個URL之後,去路由映射表中查找對應的函數,這個過程是由router來處理的。

    const router = new VueRouter({
          routes // routes: routes 的简写
    })

VUE中

$route為目前router跳轉物件裡面可以取得name、path、query、params等。

$router為VueRouter實例,想要導覽至不同URL,則使用$router.push方法,返回上一個history使用$router.go方法。跟上面說的一樣,這裡的$router就管理路由的跳轉,英文裡er結尾的都表示一種人,這裡你可以把這個想像中一個管理者,他來控制路由去哪裡(push、go) ,這樣就比較容易記。

路由跳轉

1  可以手寫完整的path:

this.$router.push({path:`/user/${userId}`})

這種方式需要在路由中作如下設定

{
     path: '/user/:userId',
     name: '***',
     component: ***
   }

這種接收參數的方式是this.$route.params.userId。

2 也可以用params傳遞:

this.$router.push({name:'Login',params:{id:'leelei'}})
//不带参数 变成 ip/login

3 也可以用query傳遞:

this.$router.push({path:'/login',query:{id:'leelei'})
//带查询参数变成 ip/login?id=leelei
//带斜杠/代表从根目录出发,不会嵌套之前的路径

query傳參是針對path的,params傳參是針對name的。 。接收參數的方式都差不多。 。 this.$route.query.和this.$route.params.

注意這只是跳到url,跳到這個url顯示什麼元件,要設定路由。 router跳轉和標籤跳轉,規則差不多。

一些需要注意的事

使用query傳參的話,會在瀏覽器的url欄看到傳的參數類似get請求,使用params傳參的話則不會,類似post請求。

如果提供了path,params將會被忽略(即如果要使用params傳參,則一定要使用name),但是query不屬於這種情況。如果使用完整路徑和query傳參,刷新頁面時不會造成路由傳參的參數遺失。

router.push和router.replace的差異不會向 history 新增記錄,而是替換掉目前的 history 記錄,即使用replace跳到的網頁『後退』按鈕不能點選。

#

以上是vue中$router和$route的簡單介紹(附範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除