Vue-router的傳參方式和router使用技巧

vue傳參方法一

1,路由配置vue

   {
     path: '/describe/:id',
     name: 'Describe',
     component: Describe
   }

2,使用方法this

//   直接調用$router.push 實現攜帶參數的跳轉
 this.$router.push({
//  這個id是一個變量,隨即是什麼值均可以
    path: /describe/${id}`,
 })

 3,獲取方法(在describe頁面)url

$route.params.id

使用以上方法能夠拿到上個頁面傳過來的id值code

vue傳參方法二

 1,路由配置component

  {
     path: '/describe',
     name: 'Describe',
     component: Describe
   }

(這個地方默認配置就能夠了,不用作任何的處理)router

2,使用方法對象

    this.$router.push({
       name: 'Describe',
       params: {
         id: id
      }
   })

父組件中:經過路由屬性中的name來肯定匹配的路由,經過params來傳遞參數。blog

 3,獲取方法(在describe頁面)路由

$route.params.id

也用params獲取就能夠了;字符串

vue傳參方法三

 1,路由配置

 {
     path: '/describe',
     name: 'Describe',
     component: Describe
 }

(默認配置)

2,使用方法

   this.$router.push({
     path: '/describe',
     query: {
       id: id
     }
   })

(params換成了query)

 3,獲取方法(在describe頁面)

$route.query.id

(這個地方用query還獲取id,和前面用的params獲取的區別在於,用query獲取的id值會在url中有顯示,能夠看到你傳過來的值)

props傳值方法

父組件

(table-data這個地方能夠隨便取名字,不是特定的值)

<div class="content">
//這個是一個普通組件,其中tabelData能夠是變量,也能夠是常量,和pageInfo同樣樣,這裏打算傳遞兩個值過去,其實也能夠用對象的方式傳過去都是能夠的。
    <my-table :table-data="tableData" :page-info="pageInfo" id="myTable"></my-table>
</div>

子組件

props: ['tableData', 'pageInfo'],
data() {
    return {
        tData: this.tableData,
        page: this.pageInfo
    }
}

prop是單向綁定的,不該該在子組件內部改變prop。不過這裏的props傳過來的值會隨之父組件的值的改變而改變,是動態改變的。

$route使用小技巧

1,$route.path

  • 類型: string

    字符串,對應當前路由的路徑,老是解析爲絕對路徑,如 "/foo/bar"

2,$route.params

  • 類型: Object

  一個 key/value 對象,包含了動態片斷和全匹配片斷,若是沒有路由參數,就是一個空對象。

3,$route.query

  • 類型: Object

    一個 key/value 對象,表示 URL 查詢參數。例如,對於路徑 /foo?user=1,則有 $route.query.user == 1,若是沒有查詢參數,則是個空對象。

4,$route.hash

  • 類型: string

    當前路由的 hash 值 (帶 #) ,若是沒有 hash 值,則爲空字符串。

5,$route.fullPath

  • 類型: string

    完成解析後的 URL,包含查詢參數和 hash 的完整路徑。

相關文章
相關標籤/搜索