这篇文章主要讲解了“behaviors如何创建和使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“behaviors如何创建和使用”吧!

什么是 behaviors

behaviors 是小程序中用于实现组件代码共享的特性,作用类似 Vue.js 中的 mixins。比如在多个组件中,有一部分代码是完全一样的,我们没有必要每个组件写一遍,为了方便,我们可以把这部分代码封装出来,放在 behaviors 中进行共享,谁用到这部分代码,直接引用就可以生效


behaviors 的工作方式

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

每个组件中可以引用多个 behaviors ,每个 behaviors 之间也可以相互引用


behaviors 的创建

调用 behaviors(Object Object) 方法就可以创建一个共享的 behaviors 实例对象,供所有的组件使用

//使用module.exports将behavior实例对象共享出去module.exports=Behavior({//私有数据节点data:{},//属性节点properties:{},//事件处理methods:{}})


behaviors 的导入与使用

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

//1.使用`require()`导入需要的自定义behaviors模块constmyBehaviors=require("../../behaviors/behaviors")Component({//2.将导入的behaviors实例对象,挂载到behaviors数组的节点中便可以使用behaviors:[myBehaviors],properties:{//...}//其他代码...})


behaviors 中所有可用的节点

比较常用的有 propertiesdatamethodsbehaviors

可用的节点类型是否必填描述propertiesObject Map否同组件的属性dataObject否同组件的数据methodsObject否同自定义组件的方法behaviorsSting Array否引用其它的 behaviorscreatedFunction否生命周期函数attachedFunction否生命周期函数readyFunction否生命周期函数movedFunction否生命周期函数detachedFunction否生命周期函数
同名字段的覆盖和组合规则

组件和它引用的 behaviors 中可以包含同名的字段,此时可以参考以下三种同名的处理规则

同名的数据字段 (data

若同名的数据字段都是对象类型,会进行对象合并

其余情况会进行数据覆盖,覆盖规则: 组件 > 父 behaviors > 子 behaviors 、靠后的 behaviors > 靠前的 behaviors(优先级高的覆盖优先级低的,最大的优先级最高)

同名的属性(properties)或方法(methods)

若组件本身有这个属性或方法,则组件的属性或方法会覆盖 behaviors 中的同名属性或方法

若组件本身无这个属性或方法,则在组件的 behaviors 字段中定义靠后的 behaviors 的属性或方法会覆盖靠前的同名属性或方法

在上一条基础上,若存在嵌套引用 behaviors 的情况,规则是:父 behaviors 覆盖 子 behaviors中同名的属性或方法

同名的生命周期函数

behaviors 优先于组件执行

子 behaviors 优先于父 behaviors执行

靠前的 behaviors 优先于靠后的 behaviors 执行

对于不同生命周期函数之间,遵循组件生命周期函数的顺序

对于同种生命周期函数,遵循如下规则

如果同一个 behaviors 被一个组件多次引用,它会定义生命周期函数只会被执行一次

感谢各位的阅读,以上就是“behaviors如何创建和使用”的内容了,经过本文的学习后,相信大家对behaviors如何创建和使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!