用到动态路由,使用路由器对象的push方法进行路由的跳转,使用param传参。在组件中,需使用计算属性,通过id参数的变化,得到商品信息,把对应商品属性绑定到组件模板中
时间: 2024-03-19 15:43:44 浏览: 89
好的,你的第一个问题是关于动态路由和传参的。在Vue中,我们可以使用路由器对象的push方法进行路由跳转,并且可以使用param参数来传递参数。在接收参数的组件中,可以使用计算属性来监听参数的变化,并根据参数的变化获取对应的商品信息,然后把商品属性绑定到组件模板中。
具体实现可以参考以下代码:
在路由配置中定义动态路由:
```javascript
{
path: '/goods/:id',
name: 'GoodsDetail',
component: GoodsDetail
}
```
在组件中获取参数并监听参数变化:
```javascript
<template>
<div>
<h1>{{ goods.name }}</h1>
<p>{{ goods.price }}</p>
</div>
</template>
<script>
export default {
name: 'GoodsDetail',
data() {
return {
goods: {}
}
},
computed: {
// 监听参数变化
goodsInfo() {
return this.$route.params.id
}
},
methods: {
// 获取商品信息
getGoodsInfo(id) {
// 发送请求获取商品信息
// ...
this.goods = goodsData
}
},
mounted() {
this.getGoodsInfo(this.goodsInfo)
}
}
</script>
```
在组件中把商品属性绑定到模板中。
这样就可以实现动态路由和传参了。
阅读全文