微信小程序
子组件事件中 触发父组件 监听
this.triggerEvent('myevent1', {}, {})
behavior
需要使用 Behavior()
构造器定义。
behaviors
是用于组件间代码共享的特性,类似于一些编程语言中的“mixins”或“traits”。
每个 behavior
可以包含一组属性、数据、生命周期函数和方法,组件引用它时,它的属性、数据和方法会被合并到组件中,生命周期函数也会在对应时机被调用。每个组件可以引用多个 behavior
。 behavior
也可以引用其他 behavior
。
代码示例:
// my-behavior.js
module.exports = Behavior({
behaviors: [],
properties: {
myBehaviorProperty: {
type: String
}
},
data: {
myBehaviorData: {}
},
attached: function(){},
methods: {
myBehaviorMethod: function(){}
}
})
properties定义数据以驼峰命名
组件传递
properties数据的时候 可以直接用properties变量名,加-的 必须要小写 大写显示 Null
<my-component demo-test="demoTest" my-behavior-property="behavior-property1" my-property="my-property" bindmyevent1="myEventListener">
</my-component>
// my-behavior.js
module.exports = Behavior({
behaviors: [],
properties: {
myBehaviorProperty: {
type: String
},
demoTest: {
type:String
}
},
data: {
myBehaviorData: "myBehaviorData"
},
attached: function () { },
methods: {
myBehaviorMethod: function () {
console.log('log from my-behavior.js');
var myEventDetail = {} // detail对象,提供给事件监听函数
var myEventOption = {} // 触发事件的选项
this.triggerEvent('myevent1', {}, {})
}
}
})
// components/component-tag-name.js
var myBehavior = require('my-behavior')
Component({
behaviors: [myBehavior],
properties: {
myProperty: {
type: String
}
},
data: {
myData: {}
},
attached: function () { },
methods: {
myMethod: function () { },
}
})
事件分为冒泡事件和非冒泡事件
事件分为冒泡事件和非冒泡事件:
- 冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递。
- 非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递。