## vue路由傳參的三種基本方式
現有如下場景,點擊父組件的li元素跳轉到子組件中,并攜帶參數,便于子組件獲取數據。
父組件中:
~~~
<li v-for="article in articles" @click="getDescribe(article.id)">
~~~
方案1:
~~~
this.$router.push({
path: `/describe/${id}`,
})
~~~
方案一,需要對應路由配置如下:
~~~
{
path: '/describe/:id',
name: 'Describe',
component: Describe
}
~~~
很顯然,需要在path中添加/:id來對應 $router.push 中path攜帶的參數。在子組件中可以使用來獲取傳遞的參數值。
~~~
$route.params.id
~~~
方案2:
父組件中:通過路由屬性中的name來確定匹配的路由,通過params來傳遞參數。
~~~
this.$router.push({
name: 'Describe',
params: {
id: id
}
})
~~~
對應路由配置: 注意這里不能使用:/id來傳遞參數了,因為父組件中,已經使用params來攜帶參數了。
~~~
{
path: '/describe',
name: 'Describe',
component: Describe
}
~~~
子組件中: 這樣來獲取參數
~~~
$route.params.id
~~~
方案三:
父組件:使用path來匹配路由,然后通過query來傳遞參數,這種情況下 query傳遞的參數會顯示在url后面?id=?
~~~
this.$router.push({
path: '/describe',
query: {
id: id
}
})
~~~
對應路由配置:
~~~
{
path: '/describe',
name: 'Describe',
component: Describe
}
~~~
對應子組件: 這樣來獲取參數
~~~
$route.query.id
~~~
~~~
這里要特別注意 在子組件中 獲取參數的時候是$route.params 而不是$router 這很重要~~~
~~~
- web 前端知識
- 什么是Vue,
- vue-axios的使用及其中get與post網絡請求
- Ajax實現步驟和原理
- 什么是AJAX?
- AJAX的工作原理
- 那如何使用Ajax技術?
- css 新特性
- 什么是深拷貝和淺拷貝
- Vue
- axios封裝和使用
- axios基本用法
- Vue-cli 安裝
- 布局的時候什么時候用xs,sm,md,lg?
- js.的點擊事件
- vue路由傳參的三種基本方式
- Vue路由傳參與取值的兩種方法
- HTML
- html5的新特性
- Html5新增的標簽有哪些?
- CSS
- CSS偽類選擇器 奇偶匹配nth-child(even)
- 房銀-項目
- 服務器網址
- 項目網址
- VS -Code
- Vue 單頁應用 的 首屏優化
- 什么是DTO
- JavaScript
- element-ui 表單校驗
- JavaScript-2
- JavaScript - Number.isInteger() 方法用來判斷給定的參數是否為整數
- JS回調函數--簡單易懂有實例
- bootstrap 概念 和使用方法
- react框架- 知識
- react中class xx extends component{}和React.createClass({})的區別?