梗概

  • 自定义组件的扩展其实就是提供了修改自定义组件定义段的能力,如修改了自定义组件中的 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
  }
})