美文网首页小程序
小程序里的自定义组件(六):behaviors:组件间代码复用

小程序里的自定义组件(六):behaviors:组件间代码复用

作者: 程序员三千_ | 来源:发表于2019-02-13 17:14 被阅读10次

    问题:现在我们有三个组件:组件a,组件b,组件c,这三个组件里有一些相同的properties、data、methods甚至生命周期相同的处理,比如在生命周期attached里打印某些日志。

    为了解决组件间的代码复用,小程序给我们提供behaviors。先看下官方文档关于behaviors的定义:

    现在我们新建一个组件test和一个behaviors我们叫做test-beh。

    我们在test-beh里定义了一个content,类型为string,并设置他的默认值为22,并用export导出它。

    behaviors如上图,然后我们在组件的js代码里,引入这个behaviors,这里说明下 为什么behaviors是一个数组,因为我们每个组件可以引用多个 behavior,例如 behaviors: [testBeh,a,b,c......],

    如上图,然后我们在组件的wxml里绑定content这个变量,并且在页面上引用这个组件。

    如上图,我们打印出了content的值是22.

           之前我们讲过,一个组件是可以引用多个behavior,所以存在同名字段覆盖的问题,

    所以我们看下官方给出的字段的覆盖和组合规则:

    组件和它引用的 behavior 中可以包含同名的字段,对这些字段的处理方法如下:

    1、如果有同名的属性或方法,组件本身的属性或方法会覆盖 behavior 中的属性或方法,如果引用了多个 behavior ,在定义段中靠后 behavior中的属性或方法会覆盖靠前的属性或方法;

    2、如果有同名的数据字段,如果数据是对象类型,会进行对象合并,如果是非对象类型则会进行相互覆盖;

    3、生命周期函数不会相互覆盖,而是在对应触发时机被逐个调用。如果同一个 behavior 被一个组件多次引用,它定义的生命周期函数只会被执行一次。

    相关文章

      网友评论

        本文标题:小程序里的自定义组件(六):behaviors:组件间代码复用

        本文链接:https://www.haomeiwen.com/subject/ayvdeqtx.html