首頁 > web前端 > js教程 > 主體

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

不言
發布: 2018-10-12 16:01:53
轉載
2948 人瀏覽過

這篇文章帶給大家的內容是關於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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板