1. 程式人生 > >vue中路由傳參

vue中路由傳參

路由:
vue路由傳參方式有: query、params+動態路由傳參
1. query通過path切換路由, params通過name切換路由
// query通過path切換路由
<router-link :to="{path: 'Detail', query: { id: 1 }}">跳轉頁面</router-link>
// params通過name切換路由
<router-link :to="{name: 'Detail', params: { id: 1 }}">跳轉頁面</router-link>

2.接收引數
// query通過this.$route.query接收引數
created () {
    const id = this.$route.query.id;
}

// params通過this.$route.params來接收引數
created () {
    const id = this.$route.params.id;
}

3. query傳參的url展現方式:/detail?id=1&user=zhang

     params+動態路由的url方式:/detail/123

 4.params動態路由傳參,一定要在路由中定義引數,然後在路由跳轉的時候必須要加上引數,否則就是空白頁面:
	 {      
	    path: '/detail/:id',      
	    name: 'Detail',      
	    component: Detail    
	},

// 定義的路由中,只定義一個id引數
{
    path: 'detail/:id',
    name: 'Detail',
    components: Detail
}

注意,params傳參時,如果沒有在路由中定義引數,也是可以傳過去的,同時也能接收到,但是一旦重新整理頁面,這個引數就不存在了。這對於需要依賴引數進行某些操作的行為是行不通的,因為你總不可能要求使用者不能重新整理頁面吧.
5. template中的路由傳參,
// 傳了一個id引數和一個token引數
// id是在路由中已經定義的引數,而token沒有定義
<router-link :to="{name: 'Detail', params: { id: 1, token: '123456' }}">前往Detail頁面</router-link>

// 在詳情頁接收
created () {
    // 以下都可以正常獲取到
    // 但是頁面重新整理後,id依然可以獲取,而token此時就不存在了
    const id = this.$route.params.id;
    const token = this.$route.params.token;
}