完成嵌套路由功能的实现,如上图所示,点击商品详情会出现多个商品的链接,点击商品的链接会出现对应的商品详情信息(结合v-for指令实现任意数量商品的渲染,以100个为测试案例)。
时间: 2023-06-14 08:04:11 浏览: 165
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
实现嵌套路由的过程如下:
1. 在路由配置文件中定义嵌套路由,在本例中就是在`routes.js`文件中定义一个名为`ProductDetail`的子路由。
```javascript
import ProductDetail from './components/ProductDetail.vue'
const routes = [
{
path: '/',
component: Home
},
{
path: '/products',
component: Products,
children: [
{
path: ':id',
component: ProductDetail
}
]
}
]
```
2. 在`Products`组件中,使用`<router-link>`标签来生成商品链接。这里使用了`v-for`指令来渲染100个商品的链接。
```html
<template>
<div>
<h1>Products</h1>
<ul>
<li v-for="product in products" :key="product.id">
<router-link :to="'/products/' + product.id">{{ product.name }}</router-link>
</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
products: []
}
},
mounted() {
// 在这里获取商品数据,省略代码
this.products = getProducts()
}
}
</script>
```
3. 在`ProductDetail`组件中,使用`$route.params`来获取当前商品的id,并根据id来渲染对应的商品详情信息。
```html
<template>
<div>
<h1>Product Detail</h1>
<p>Product ID: {{ $route.params.id }}</p>
<!-- 渲染商品详情信息,省略代码 -->
</div>
</template>
```
完成以上三步后,就可以实现嵌套路由的功能了。当用户点击商品链接时,会跳转到对应的商品详情页面,并显示该商品的详情信息。
阅读全文