下面介绍下小程序组件间的简单的通信方式:
1.父组件传递给子组件
如果父组件(页面)使用了自定义的子组件,如果想向子组件传递数据,则定义子组件的时候应当在properties中定义,比如:
properties: {
title:{
type:String,
value:'标题'
}
}
在父组件(页面),直接当成组件的属性来使用,比如:
<xxx title='我是标题'></xxx>
<xxx title='{{title}}'></xxx>
2.子组件向父组件传递
如果子组件要向父组件传递数据,可以在定义子组件的时候触发事件传递给父组件,比如:
子组件有一个catchtap事件_cancelEvent,
_cancelEvent(){
let id = 1
this.triggerEvent('cancelEvent',id)
},
在父组件中bind事件
<xxx bind:cancelEvent="_cancelEvent"></xxx>
并在js中处理,获取传递的参数id
_cancelEvent(event){
let id = event.detail.id
},
3.父组件通过 selectComponent 获取组件实例对象
<xxx id='component'></xxx>
使用子组件的id,获取实例对象,然后使用实例对象调取组件的方法
onReady: function () {
this.componet= this.selectComponent('#component')
},
showDialog(){
this.componet.show(); // 子组件中的show()方法
},