vue2.0中的$router 和 $route的区别
vue2.0中的$router 和 $route的區別
最近在學習vue的單頁面應用開發,需要vue全家桶,其中用到了VueRouter,在路由的設置和跳轉中遇到了兩個對象$router 和 $route ,有些傻傻分不清,后來自己結合網上的博客和自己本地的Vue devtools結構了解了他們的區別
1.router是VueRouter的一個對象,通過Vue.use(VueRouter)和VueRouter構造函數得到一個router的實例對象,這個對象中是一個全局的對象,他包含了所有的路由包含了許多關鍵的對象和屬性。
舉例:history對象
$router.push({path:'home'});本質是向history棧中添加一個路由,在我們看來是 切換路由,但本質是在添加一個history記錄
方法:
$router.replace({path:'home'});//替換路由,沒有歷史記錄
2.route是一個跳轉的路由對象,每一個路由都會有一個route對象,是一個局部的對象,可以獲取對應的name,path,params,query等
我們可以從vue devtools中看到每個路由對象的不同
這兩個不同的結構可以看出兩者的區別,他們的一些屬性是不同的。
- $route.path?
字符串,等于當前路由對象的路徑,會被解析為絕對路徑,如?"/home/news"?。 - $route.params?
對象,包含路由中的動態片段和全匹配片段的鍵值對 - $route.query?
對象,包含路由中查詢參數的鍵值對。例如,對于?/home/news/detail/01?favorite=yes?,會得到$route.query.favorite == 'yes'?。 - $route.router?
路由規則所屬的路由器(以及其所屬的組件)。 - $route.matched?
數組,包含當前匹配的路徑中所包含的所有片段所對應的配置參數對象。 - $route.name?
當前路徑的名字,如果沒有使用具名路徑,則名字為空。
- $route.path?
$route.path, $route.params, $route.name, $route.query這幾個屬性很容易理解,看示例就能知道它們代表的含義?
總結
以上是生活随笔為你收集整理的vue2.0中的$router 和 $route的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win11笔记本开机过一会才有wifi图
- 下一篇: 在vue组件中使用vuex的state状