- 新建组件:在component下新建一个tabBar
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200721111502409.png)
- 在组件的index.wxml中写如下代码:
<cover-view class="tab-bar">
<cover-view class="tab-bar-border"></cover-view>
<cover-view wx:for="{{list}}" wx:key="index" class="tab-bar-item" data-path="{{item.pagePath}}" data-index="{{index}}" bindtap="tabChange">
<cover-image src="{{tabbarIndex === index ? item.selectedIconPath : item.iconPath}}"></cover-image>
<cover-view style="color: {{tabbarIndex === index ? selectedColor : color}}">{{item.text}}</cover-view>
</cover-view>
</cover-view>
- 在组件的index.js中写如下代码:
Component({
properties: {
list: {
type: Array,
value: []
},
selectedColor:{
type: String,
value:''
},
color:{
type: String,
value:''
},
},
data: {
tabbarIndex: 0//默认显示第一个tab元素
},
methods: {
//组件的点击事件
tabChange(e) {
//获取到底部栏元素的下标
let index = e.currentTarget.dataset.index;
this.setData({
tabbarIndex:index,
})
//triggerEvent获取组件的事件
//onMyEvent 页面传过来的点击事件名称
this.triggerEvent('onMyEvent',{
tabbarIndex:index,
})
},
}
})
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200721112030118.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2d5dWVo,size_16,color_FFFFFF,t_70)
- 在页面pages/index/index.json中加入
{
"navigationBarTitleText": "测试",
"usingComponents": {
"mp-tabbar": "../components/tabBar/index"
}
}
- 在页面pages/index/index.wxml中加入
<view wx:if="{{tabbarIndex == 0}}">111111</view>
<view wx:if="{{tabbarIndex == 1}}">222222</view>
<view wx:if="{{tabbarIndex == 2}}">333333</view>
<mp-tabbar list="{{list}}" id='tabComponent' bind:onMyEvent="switchTab"></mp-tabbar>
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200721112850105.png)
- 在页面pages/index/index.js中加入
//获取组件传递出来的数据
switchTab:function(e){
let index = e.detail.tabbarIndex;
this.setData({
tabbarIndex:index
})
console.log(e.detail.tabbarIndex)
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200721113115203.png)
- 运行
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200721113238447.png)