微信小程序学习笔记-behaviors

31 阅读2分钟

一、什么是behaviors

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

stateDiagram-v2
behviors(代码共享) --> 组件A引用
behviors(代码共享) --> 组件B引用

二、behaviors的工作方式

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

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

三、创建behaviord

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

//调用Behavior()方法,创建实例对象
//并使用module.exports将behavior实例对象共享出去
module.exports = Behavior({
    //属性节点
    properties:{},
    //私有数据节点
    data:{ username: 'zs'},
    //事件处理函数和自定义方法节点
    methods:{},
    //其他节点...
})

四、导入并使用behavior

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

//1. 使用require()导入需要的自定义的behavior模块
const myBehavior = require("../../behaviors/my-behavior")

Component({
    //2. 传入的behavior实例对象,挂载到behaviors数组节点中,即可生效
    behaviors:[myBehavior],
    //其他节点
})

五、behavior中所有可用的节点

可用的节点类型是否必填描述
propertiesObject Map同组件的属性
dataObject同组件的数据
methodsObject同自定义组件的方法
behaviorsString Array引入其他的behavior
createdFunction生命周期函数
attachedFunction生命周期函数
readyFunction生命周期函数
movedFunction生命周期函数
detachedFunction生命周期函数

六、同名字段的覆盖和组合规则*

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

  1. 同名数据字段(data)
  2. 同名的属性(properties)或方法(methods)
  3. 同名的生命周期函数

具体规则查看官方文档