梗概
- 自定义组件的扩展其实就是提供了修改自定义组件定义段的能力,如修改了自定义组件中的 data 定义段里的内容。
定义组件拓展
- [behaviors|Behavior] 构造器提供了新的定义段 definitionFilter ,用于支持自定义组件扩展。
- definitionFilter 是一个函数,在被调用时会注入两个参数,第一个参数是使用该 behavior 的 component/behavior 的定义对象,第二个参数是该 behavior 所使用的 behavior 的 definitionFilter 函数列表。
示例
为了更好的理解扩展后的效果,先举一个例子:
// behavior.js
module.exports = Behavior({
definitionFilter(defFields) {
defFields.data.from = 'behavior'
},
})
// component.js
Component({
data: {
from: 'component'
},
behaviors: [require('behavior.js')],
ready() {
console.log(this.data.from) // 此处会发现输出 behavior 而不是 component
}
})