京东NutUI商品分类组件:3分钟搞定电商分类页面

京东NutUI商品分类组件:3分钟搞定电商分类页面

【免费下载链接】nutui 京东风格的移动端 Vue2、Vue3 组件库 、支持多端小程序(A Vue.js UI Toolkit for Mobile Web) 【免费下载链接】nutui 项目地址: https://gitcode.com/gh_mirrors/nu/nutui

还在为电商App的商品分类页面发愁?京东NutUI的分类组件Category与CategoryPane让你轻松构建专业的分类导航界面,完美复刻京东购物体验!

通过本文你将掌握:

  • Category组件的基础用法与核心配置
  • CategoryPane的详细商品展示技巧
  • 两大组件联动的最佳实践
  • 移动端适配与性能优化方案

分类组件架构图

Category组件:分类导航骨架

Category组件是分类页面的左侧导航栏,负责展示一级分类目录:

<template>
  <nut-category 
    :category="categoryList" 
    @change="handleCategoryChange"
  />
</template>

<script>
export default {
  data() {
    return {
      categoryList: [
        { id: 1, name: '手机数码' },
        { id: 2, name: '电脑办公' },
        { id: 3, name: '家用电器' }
      ]
    }
  },
  methods: {
    handleCategoryChange(item) {
      console.log('选中分类:', item)
    }
  }
}
</script>

核心属性配置:

  • category: 分类数据数组,支持树形结构
  • v-model: 双向绑定的选中项
  • @change: 分类切换事件回调

CategoryPane组件:商品展示区

CategoryPane用于展示右侧的商品列表,支持多种布局方式:

<template>
  <nut-category-pane 
    :pane="currentProducts"
    :custom="true"
  >
    <template #default="{ item }">
      <div class="product-item">
        <img :src="item.image" />
        <p>{{ item.name }}</p>
        <span class="price">¥{{ item.price }}</span>
      </div>
    </template>
  </nut-category-pane>
</template>

编译流程展示

组件联动实战

实现Category与CategoryPane的完美联动:

<template>
  <div class="category-page">
    <nut-category 
      v-model="activeCategory" 
      :category="categories"
      @change="loadProducts"
    />
    
    <nut-category-pane 
      :pane="products"
      :loading="loading"
    />
  </div>
</template>

<script>
export default {
  data() {
    return {
      activeCategory: null,
      categories: [],
      products: [],
      loading: false
    }
  },
  async mounted() {
    await this.loadCategories()
  },
  methods: {
    async loadCategories() {
      // 加载分类数据
      this.categories = await api.getCategories()
      this.activeCategory = this.categories[0]?.id
      this.loadProducts(this.activeCategory)
    },
    async loadProducts(categoryId) {
      this.loading = true
      this.products = await api.getProducts(categoryId)
      this.loading = false
    }
  }
}
</script>

样式定制与主题适配

NutUI提供丰富的主题变量,轻松定制分类样式:

.nut-category {
  --category-item-height: 48px;
  --category-item-color: #333;
  --category-item-active-color: #e93b3b;
}

.nut-category-pane {
  --pane-padding: 12px;
  --pane-bg-color: #f5f5f5;
}

分类页面背景

多端适配技巧

针对不同端优化分类体验:

H5端优化:

<nut-category 
  :scrollable="true"
  :offset-top="50"
/>

小程序端适配:

<nut-category 
  :custom-style="{ height: '100vh' }"
  :safe-area-inset-bottom="true"
/>

性能优化建议

  1. 数据分页加载:分类商品数量多时采用分页
  2. 图片懒加载:使用NutUI的LazyLoad组件
  3. 缓存策略:本地缓存已加载的分类数据
  4. 虚拟滚动:超长列表使用虚拟滚动优化
<nut-category-pane 
  :pane="products"
  :infinite-loading="true"
  @loadmore="loadMoreProducts"
/>

最佳实践总结

  • 使用v-model管理选中状态,避免直接操作DOM
  • 合理使用插槽自定义商品展示样式
  • 大数据量时启用分页和虚拟滚动
  • 移动端注意触摸事件和滚动体验
  • 遵循京东设计规范,保持视觉统一

通过NutUI的Category和CategoryPane组件,你可以快速构建出专业级的电商分类页面,提升用户购物体验!

官方文档:src/packages/__VUE/category/doc.md 组件演示:src/packages/__VUE/category/demo.vue

立即尝试NutUI分类组件,让你的电商应用拥有京东级别的分类体验!

【免费下载链接】nutui 京东风格的移动端 Vue2、Vue3 组件库 、支持多端小程序(A Vue.js UI Toolkit for Mobile Web) 【免费下载链接】nutui 项目地址: https://gitcode.com/gh_mirrors/nu/nutui

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

抵扣说明:

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

余额充值