vue 04 -vue路由對象($route)參數簡介以及和router的區別


vue路由對象($route)

在使用了 vue-router 的應用中,路由對象會被注入每個組件中,賦值為 this.$route ,並且當路由切換時,路由對象會被更新。

so , 路由對象暴露了以下屬性:

1.$route.path 
字符串,等於當前路由對象的路徑,會被解析為絕對路徑,如 "/home/news" 。


2.$route.params 
對象,包含路由中的動態片段和全匹配片段的鍵值對。


3.$route.query 
對象,包含路由中查詢參數的鍵值對。例如,對於 /home/news/detail/01?favorite=yes ,會得到$route.query.favorite == ‘yes‘ 。


4.$route.router 
路由規則所屬的路由器(以及其所屬的組件)。


5.$route.matched 
數組,包含當前匹配的路徑中所包含的所有片段所對應的配置參數對象。


6.$route.name 
當前路徑的名字,如果沒有使用具名路徑,則名字為空。
在頁面上添加以下代碼,可以顯示這些路由對象的屬性:
1 <div>
2 <p>當前路徑:{{$route.path}}</p>
3 <p>當前參數:{{$route.params | json}}</p>
4 <p>路由名稱:{{$route.name}}</p>
5 <p>路由查詢參數:{{$route.query | json}}</p>
6 <p>路由匹配項:{{$route.matched | json}}</p>
7 </div>

vue $router和$route的區別

outer為VueRouter的實例,相當於一個全局的路由器對象,里面含有很多屬性和子對象,例如history對象。。。經常用的跳轉鏈接就可以用this.$router.push,和router-link跳轉一樣。。。

this.$router.push會往history棧中添加一個新的記錄。。詳細見vue官方文檔https://router.vuejs.org/zh/guide/essentials/navigation.html

 $route為當前router跳轉對象里面可以獲取name、path、query、params等

$router為VueRouter實例,想要導航到不同URL,則使用$router.push方法

返回上一個history也是使用$router.go方法

route相當於當前正在跳轉的路由對象。。可以從里面獲取name,path,params,query等。

路由傳參的方式

1.可以手寫完整的path:

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

這樣傳遞參數的話,配置路由的時候需要在path上加參數path:user/:userId。

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

2.也可以用params傳遞:

3.也可以用query傳遞:

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

注意這只是跳轉url,跳轉到這個url顯示什么組件,得配置路由。router跳轉和<router-link>標簽跳轉,規則差不多。

![](https://img2018.cnblogs.com/blog/1666447/201906/1666447-20190622101428709-1126537600.png)
注意:如果提供了path,params將會被忽略,但是query不屬於這種情況。。。

如果使用完整路徑和query傳參,刷新頁面時不會造成路由傳參的參數丟失。

這個vue官方文檔講的很詳細。
有時候配置路由時path有時候會加 '/' 有時候不加,例如path:'name'和path:'/name'。

以 / 開頭的會被當做路徑,就不會一直嵌套之前的路徑。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM