## 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({})的区别?