0%

组件通信

父组件向子组件传递数据

1 父组件中:

1
2
3
<view>
<Tab tabs="{{tabs}}" binditemChange="handleItemChange"></Tab>
</view>

2.子组件:

1
2
3
4
5
6
7
properties: {
tabs:{
type:Array,
value:[]
}

},

子组件向父组件传递数据:

1 子组件:用this.triggerEvent(“事件名”,传递的参数)

1
2
3
4
5
6
7
8
9
methods:{
handle(e){
const {index}=e.currentTarget.dataset;
this.triggerEvent("itemChange",{index});


}

}

2 父组件:用”bind+事件名”触发自定义方法

1
2
3
<view>
<Tab tabs="{{tabs}}" binditemChange="handleItemChange"></Tab>
</view>
1
2
3
4
5
6
7
8
9
10
handleItemChange(e){
//console.log(e)
const {index}=e.detail;
let {tabs}=this.data;
tabs.forEach((v,i)=>i===index?v.isActive=true:v.isActive=false);
this.setData({
tabs
})

}