微信小程序的父子通信怎么实现
前言
一、微信小程序父子通信怎么实现?
- 属性绑定
用于父组件向子组件的指定属性设置数据,仅能设置 JSON 兼容的数据(只能传递数据,不能传递方法) - 事件绑定
用于子组件向父组件传递数据,可以传递任意数据(包括数据和方法) - 获取组件实例
父组件还可以通过this.selectComponent() 获取子组件实例对象 这样就可以直接访问子组件的任意数据和方法
二、具体步骤
1.父子通信
// 父模板中的子组件
<mycomp2 count="{{count}}">
</mycomp2>
<view>
父组件中的count值为{{count}}
</view>
data: {
count:0
},
// js中
properties: {
count:Number
},
// wxml中
<view>
<text>子组件中,count的值为:{{count}}</text>
</view>
2.子父通信
<!-- 父子通信 -->
<mycomp2 count="{{count}}" bind:update="updateCount">
</mycomp2>
<view>
父组件中的count值为{{count}}
</view>
updateCount(e){
this.setData({
count:e.detail.value
})
},
<button bindtap="addCount">+1</button>
<view>
<text>子组件中,count的值为:{{count}}</text>
</view>
methods: {
addCount(){
this.setData({
count:this.data.count+1
})
this.triggerEvent("update",{value:this.properties.count})
}
}
3.获取组件实例
<mycomp2 count="{{count}}" bind:update="updateCount" class="current" id="CURRENT">
</mycomp2>
<view>
父组件中的count值为{{count}}
</view>
<button bindtap="getCount">getCount</button>
getCount(){
const child =this.selectComponent('.current')
child.setData({
count:this.data.count+1
})
child.addCount()
},
总结
本文仅仅简单介绍了微信小程序父子通信的使用