详解微信小程序中组件通讯
这篇主要讲组件通讯
(1)父组件向子组件传值:
通过title='{{title}}'传向子组件向子组件传递参数
子组件接收参数:
Component({
properties:{
title:{//属性名type:Number,//类型(必填)
type:String,//目前接受的类型包括:String,Number,Boolean,Object,Array,null(表示任意类型)
},
fn:{
type:Function,
},
},
data:{
},
methods:{
//子组件调用父组件方法
childFn(){
console.log(this.data.title)
this.triggerEvent("fn");
//triggerEvent函数接受三个值:事件名称、数据、选项值
}
}
})
methods使用title时this.data.title直接就可以获取到
通过bind:fn='fn'传向子组件向子组件传递方法
方法同样也要在properties接收,methods里定义一个新方法,this.triggerEvent("fn")接收父组件传递过来的方法
(2)父组件调用子组件数据及方法:
首先在父组件jsonReady生命周期中获取到组件
onReady:function(){
//获得popup组件
this.header=this.selectComponent("#header");
},
比如要调用子组件的一个function方法
//调用子组件方法
fn(){
this.header.fn()//子组件的方法
},
调用子组件数据的话直接this.header.msg就可以拿到子组件的数据