今天,在做一个电商小程序的分类页面,要实现三级分类。首先,先上图。
要完成这样一个功能,前端的界面就不说了,具体说说怎么实现的吧,说复杂也挺复杂的,说简单只要会了思路就不难了。其实思路就是先在数据库中设计一个关于分类的数据表,数据表如下,因为本人java学的很烂,所以用的云开发,云数据库。先创建一张category表,如下图
上代码,页面布局:
<view class="container">
<view class="search-header">
<navigator url="/pages/search/search">
<view class="search-input-wrap">
<image src="../../../images/search_icon.png" class="search-icon" mode="scaleToFill"/>
<input type="text" class="input" placeholder="搜索商品" />
</view>
</navigator>
</view>
<view class="cate-box">
<view class="cate-parent">
<block wx:for="{{cate}}">
<view class="cate-parent-item">
{{item.cateName}}
</view>
</block>
</view>
<view class="cate-child">
<view class="cate-child-list" wx:for="{{cate}}">
<view class="cate-child-item" wx:for="{{item.secondCate}}">
<navigator>
<view class="icon">
<image src="{{item.pic}}" />
</view>
<view class="txt">{{item.text}}</view>
</navigator>
</view>
</view>
</view>
</view>
</view>
这个里面先遍历左侧的一级分类,从云数据库里获取,一级分类获取到之后,再获取右边的二级分类,二级分类是一个数组,数组里是object对象。遍历二级分类。这样就可以获取到二级分类了。再来看js文件里怎么获取分类的。
const db = wx.cloud.database()
Page({
/**
* 页面的初始数据
*/
data: {
cate:[],
secondCate:[]
},
getCate(){
db.collection("category")
.get()
.then(res=>{
this.setData({
cate:res.data
})
console.log("获取数据成功");
})
.catch(err=>{
console.log("获取数据失败",err)
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.getCate()
},
/**
这样,一个仿淘宝的二级分类就写完了。后期我会做一个专栏,把我做的这个电商小程序从头到尾的讲解一遍。本人水平有限,望各位大佬轻喷。具体还有很多细节未处理。