
文档说绝大多数初始化工作都在 attached 生命周期进行,但是小程序组件数据分为组件的内部数据 data: {} 和从页面传递过来的 properties: {} 。但是有个问题是在组件的 attached 中无法拿到使用组件的页面中setData的值。
给组件传递myString
组件接受myString
所以可以看出在组件里 mySrting 在 created 取的是组件的默认值, attached 取的是页面里 data 的初始数据, ready 取的才是页面 setData 之后的值。具体原理应该要研究下组件的生命周期函数的源码了,可能是在组件 attached 之后页面才 onLoad 。反正直接在组件里使用 mySrting 就不会有这些问题,但如果想用页面 setData 后的 myString 来对组件的数据初始化,就只能放在组件的 ready 里而不能放在 attached 里、
father.json
注意:要使子组件可以在父组件展示需在父组件的json中引入并定义。
father.wxml
注意:fatherTOson属性写在son标签上,fatherTOson不是固定的,可以修改其值。
son.js
注意:即在son.js的properties中定义父组件要传过来的参数类型
son.wxml
总结: 父组件向子组件传参,实际上就是在父组件中引入子组件的时候,带上一个属性fatherTOson,并且给其赋值,然后子组件通过这个属性名称fatherTOson,获取其值。
son.wxml
son.js
注意:bindtap='change'定义了一个方法在son.js的methods完成向父组件传值。this.triggerEvent固定不变,myevent是在父组件中定义的方法。sonTOfather是传给父组件的变量名。
father.wxml
注意:myevent是在父组件中定义的方法;sonTOfather是声明的变量接收子组件的值
father.js
注意:在father.js中声明变量sonTOfather,用来接收子组件穿来的参数。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)