小程序 – 自定义组件 – behaviors 代码共享

简介

behaviors 是小程序中,用于实现组件间代码共享的特性,类似于 Vue.js 中的 “mixins”。

 

工作方式

每个 behavior 可以包含一组属性、数据、生命周期函数和方法。组件引用它时,它的属性、数据和方法会被合并到组件中。

每个组件可以引用多个 behavior,behavior 也可以引用其它 behavior。

 

创建 behavior

调用 Behavior(Object object) 方法即可创建一个共享的 behavior 实例对象,供所有的组件使用

 

导入使用 Behavior

在组件中,使用 require() 方法导入需要的 behavior,挂载后即可访问 behavior 中的数据或方法

 

Behavior 中可用节点

可用的节点 类型 是否必填 描述
properties Object Map 同组件的属性
data Object 同组件的数据
methods Object 同自定义组件的方法
behaviors String Array 引入其它的 behavior
created Function 生命周期函数
attached Function 生命周期函数
ready Function 生命周期函数
moved Function 生命周期函数
detached Function 生命周期函数

 

同字段覆盖规则

 

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

一. 如果有同名的属性 (properties) 或方法 (methods):
1.若组件本身有这个属性或方法,则组件的属性或方法会覆盖 behavior 中的同名属性或方法;
2.若组件本身无这个属性或方法,则在组件的 behaviors 字段中定义靠后的 behavior 的属性或  方法会覆盖靠前的同名属性或方法;
3.在 2 的基础上,若存在嵌套引用 behavior 的情况,则规则为:引用者 behavior 覆盖 被引用的 behavior 中的同名属性或方法。

二. 如果有同名的数据字段 (data):
1.若同名的数据字段都是对象类型,会进行对象合并;
2.其余情况会进行数据覆盖,覆盖规则为: 引用者 behavior > 被引用的 behavior 、 靠后的 behavior > 靠前的 behavior。(优先级高的覆盖优先级低的,最大的为优先级最高)

三. 生命周期函数和 observers 不会相互覆盖,而是在对应触发时机被逐个调用:
1.对于不同的生命周期函数之间,遵循组件生命周期函数的执行顺序;
2.对于同种生命周期函数和同字段 observers ,遵循如下规则:
behavior 优先于组件执行;
被引用的 behavior 优先于 引用者 behavior 执行;
靠前的 behavior 优先于 靠后的 behavior 执行;
3.如果同一个 behavior 被一个组件多次引用,它定义的生命周期函数和 observers 不会重复执行。

 

如果您喜欢本站,点击这儿不花一分钱捐赠本站

这些信息可能会帮助到你: 下载帮助 | 报毒说明 | 进站必看

修改版本安卓软件,加群提示为修改者自留,非本站信息,注意鉴别

THE END
分享
二维码
打赏
海报
小程序 – 自定义组件 – behaviors 代码共享
简介 behaviors 是小程序中,用于实现组件间代码共享的特性,类似于 Vue.js 中的 “mixins”。   工作方式 每个 behavior 可以包含一组属性、数据、生命周期函数和方法。组件引用它时,它……
<<上一篇
下一篇>>