原理
- 子层向父层传递数据和绑定点击按钮显示不同的数据
- 这里核心是点击显示数据我们采用了子层向父层:this.triggerEvent('tabclick', data, {})
- 父层接收:bindtabclick="handleTabClick"
设计父层
父层wxml
<w-tab-control titles="{{titles}}" bindtabclick="handleTabClick"class="{{isTabFixed?'fixed':''}}" />
<w-tab-control wx:if="{{isTabFixed}}" />
父层js
const types = ['pop', 'new', 'sell']
Page({
data: {
currentType: 'pop',
},
handleTabClick(event) {
const index = event.detail.index;
console.log(index);
const type = types[index]
this.setData({
currentType: type
})
}
})
设计子层
子层wxml
<view class="tab-control">
<block wx:for="{{titles}}" wx:key="{{index}}">
<view class='tab-item {{currentIndex == index ?"active":" "}}' bindtap="itemClick" data-index="{{index}}">
<text>{{item}}</text>
</view>
</block>
</view>
子层wxss
.tab-control {
display: flex;
height: 88rpx;
line-height: 88rpx;
background: #fff;
padding-bottom: 10rpx;
}
.tab-item {
flex: 1;
text-align: center;
}
.active {
color:#1296db;
}
.active text{
padding: 10rpx 10rpx;
border-bottom: 6rpx solid #1296db;
}
子层js
Component({
properties: {
titles: {
type: Array,
value: []
}
},
data: {
currentIndex: 0
},
methods: {
itemClick(event) {
const index = event.currentTarget.dataset.index;
this.setData({
currentIndex: index
})
const data = {
index: this.data.currentIndex
}
this.triggerEvent('tabclick', data, {})
}
}
})
图片效果

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律