vue3 之 商城项目—二级分类

二级分类功能描述

在这里插入图片描述

配置二级路由

在这里插入图片描述
准备组件模版

<script setup>


</script>

<template>
  <div class="container ">
    <!-- 面包屑 -->
    <div class="bread-container">
      <el-breadcrumb separator=">">
        <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
        <el-breadcrumb-item :to="{ path: '/' }">居家
        </el-breadcrumb-item>
        <el-breadcrumb-item>居家生活用品</el-breadcrumb-item>
      </el-breadcrumb>
    </div>
    <div class="sub-container">
      <el-tabs>
        <el-tab-pane label="最新商品" name="publishTime"></el-tab-pane>
        <el-tab-pane label="最高人气" name="orderNum"></el-tab-pane>
        <el-tab-pane label="评论最多" name="evaluateNum"></el-tab-pane>
      </el-tabs>
      <div class="body">
         <!-- 商品列表-->
      </div>
    </div>
  </div>

</template>



<style lang="scss" scoped>
.bread-container {
   
   
  padding: 25px 0;
  color: #666;
}

.sub-container {
   
   
  padding: 20px 10px;
  background-color: #fff;

  .body {
   
   
    display: flex;
    flex-wrap: wrap;
    padding: 0 10px;
  }

  .goods-item {
   
   
    display: block;
    width: 220px;
    margin-right: 20px;
    padding: 20px 30px;
    text-align: center;

    img {
   
   
      width: 160px;
      height: 160px;
    }

    p {
   
   
      padding-top: 10px;
    }

    .name {
   
   
      font-size: 16px;
    }

    .desc {
   
   
      color: #999;
      height: 29px;
    }

    .price {
   
   
      color: $priceColor;
      font-size: 20px;
    }
  }

  .pagination-container {
   
   
    margin-top: 20px;
    display: flex;
    justify-content: center;
  }


}
</style>

配置路由关系

import {
   
    createRouter, createWebHashHistory } from 'vue-router'
import Layout from '@/views/Layout/index.vue'
import Home from '@/views/Home/index.vue'
import Category from '@/views/Category/index.vue'
import SubCategory from '@/views/SubCategory/index.vue'
const router = createRouter({
   
   
  history: createWebHashHistory(import.meta.env.BASE_URL),
  routes: [
    {
   
   
      path: '/',
      name: 'layout',
      component: Layout,
      children
### 黑马程序员小兔鲜项目中的Vue3实现二级分类 在黑马程序员的小兔鲜项目中,Vue3用于构建动态且响应式的用户界面。为了实现商品的二级分类功能,通常采用`v-for`指令来遍历数据并渲染DOM结构[^3]。 #### 数据准备 首先,在组件的数据选项中定义好一级和二级分类的数据: ```javascript data() { return { categories: [ { id: &#39;001&#39;, name: &#39;电子产品&#39;, subcategories: [{id:&#39;001-1&#39;,name:&#39;手机&#39;},{id:&#39;001-2&#39;,name:&#39;电脑&#39;}] }, { id: &#39;002&#39;, name: &#39;服装服饰&#39;, subcategories: [{id:&#39;002-1&#39;,name:&#39;男装&#39;},{id:&#39;002-2&#39;,name:&#39;女装&#39;}] } ] }; } ``` #### 模板编写 接着利用模板语法配合`v-for`循环展示这些类别信息: ```html <div v-for="(category, index) in categories" :key="index"> <h3>{{ category.name }}</h3> <!-- 渲染子项 --> <ul> <li v-for="(subcat,idx) in category.subcategories" :key="idx">{{ subcat.name }}</li> </ul> </div> ``` 上述代码片段展示了如何通过嵌套的方式创建一个父级元素下的多个子元素列表,从而形成清晰的商品分类层次关系。 #### 组件交互逻辑 对于更复杂的场景下可能还需要考虑当点击某个一级菜单时展开对应的二级菜单等功能,则可以通过监听用户的操作事件(如click),并通过改变状态控制显示隐藏等效果;这涉及到使用`v-on`指令绑定事件处理器以及条件渲染语句像`v-if`或`v-show`。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jiojio冲冲冲

能帮助你是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值