写这个是为了接下来的小程序代码里我自己不用查阅文档了,把最需要的给总结出来了。
因为是给自己看的,所以有一些细节就省略了
第一种,父向子传值
主要是用properties字段来传值
子组件JS代码
Component({
properties: {
// 这里定义了innerText属性,属性值可以在组件使用时指定
innerText: {
type: String,
value: 'default value',
},
test1:{
type:Number,
value:0
}
},
data: {
// 这里是一些组件内部数据
someData: {}
},
methods: {
// 这里是一个自定义方法
customMethod: function(){},
},
options: {
multipleSlots: true, // 在组件定义时的选项中启用多slot支持
},
})
父组件(页面)WXML代码
可以看到父组件的test1属性和子组件的test1是对应的,inner-text和innerText是对应的
<s-test inner-text="Some text" test1="{{test}}"> </s-test>
第二种,子向父传值
子组件JS代码
// components/order/index.js
Component({
properties: {
// 这里定义了innerText属性,属性值可以在组件使用时指定
},
data: {
// 这里是一些组件内部数据
someData: {}
},
methods: {
// 这里是一个自定义方法
customMethod: function(){},
onTap: function(){
var myEventDetail = {
key1:"1",
arr1:[],
key2:123
} // detail对象,提供给事件监听函数
var myEventOption = {} // 触发事件的选项
this.triggerEvent('myevent', myEventDetail, myEventOption)
}
},
options: {
multipleSlots: true, // 在组件定义时的选项中启用多slot支持
},
})
子组件WXML代码
<button bindtap="onTap">点击这个按钮将触发“myevent”事件</button>
父组件WXML代码
<s-test bindmyevent="onMyEvent"></s-test>
父组件JS代码
onMyEvent: function(e){
console.log("e==",e)自定义组件触发事件时提供的e对象
},