電商小程序店鋪詳情頁:頭部無限分類與篩選功能實現
- 一、場景需求與技術選型
- 二、頭部無限分類導航
- 三、篩選功能實現:Picker多列選擇組件
一、場景需求與技術選型
????在電商小程序生態中,店鋪詳情頁作為用戶瀏覽商品的核心流量入口,其交互效率與功能完整性直接影響商品轉化率。傳統店鋪頁常面臨兩大痛點:一方面,分類導航擴展性不足:固定分類欄無法適應動態更新的商品類目,用戶需頻繁切換頁面;另一方面,篩選功能維度單一:僅支持單條件篩選,難以滿足價格、銷量、地域等多維度組合查詢需求。這里聚焦頭部無限分類導航欄與右側多列篩選 Picker 組件的聯動開發,基于uniapp跨端框架,實現以下核心能力:
- 動態分類加載:支持后臺類目實時更新,自動生成 “全部” 分類前置顯示
- 多維度篩選:集成排序規則(價格 / 銷量)、地域范圍等組合篩選條件
- 跨端適配:一次開發兼容微信小程序、H5、APP 等多端環境
二、頭部無限分類導航
(1)布局結構與動態渲染
????通過scroll-view
實現橫向滾動的分類欄,動態加載后臺返回的分類數據,并支持“全部”分類的前置顯示。
<!-- 分類導航欄 -->
<scroll-view class="nav" scroll-x :style="{ width: (windowWidth - 30) + 'px' }"><view class='item line1' :class='item.categoryId == currentCategoryId ? "font-color" : ""'v-for="(item, index) in categoryList" :key="item.categoryId"@click='changeCategory(item.categoryName, item.categoryId)'>{{ item.categoryName }}</view>
</scroll-view>
????通過getStoreCategoryList
接口獲取分類列表,并在data
中拼接“全部”分類:
getStoreInfo() {getStoreCategoryList({ storeId: this.storeId }).then(data => {// 前置“全部”分類const categories = [{ categoryId: "", categoryName: "全部" }].concat(data.categories);this.$set(this, 'categoryList', categories);});
}