小程序中的behavior

Behavior

概念:用与小程序中组件间代码共享的特性,类似于一些编程语言的 "mixins", "traits"

作用:

  1. 每一个behavior 可以包含一些属性,数据,生命周期函数,方法
  2. 在组件中引用它时,它的属性,数据和方法会被合并到组件中,生命周期函数也会在对应的时机被调用
  3. 每个组件可以引用多个behavior,behavior也可以引用其它的behavior

定义一个behavior:  (就是一个js文件,按照需求,要求,合理编辑)

   首先看下behavior  的常规结构

// my-behavior.js

// 在behavior 中使用 behavior  导入

var mySecondBehavior = require('my-second-behavior')

var mySecondBehavior = require('my-second-behavior')

//导出

module.exports = Behavior({
    
    //注册导入的behavior
    behaviors: [myThirdBehavior, mySecondBehavior],

    properties:{
        
     myBehaviorProperty: {

      type: String

      }

    },

    data:{},

    //生命周期

    created: function () {},
   
    attached: function () {},
   
    ready: function () {},
        

    //方法
    methods: {    }
  
    
})

在组件中使用behavior  

// my-component.js

//导入要使用的behavior  (文件名 大写的使用-替换)

var myBehavior = require('my-behavior')
var mySecondBehavior = require('my-second-behavior')

Component({
  // 在注册behavior  注册的behavior中的方法名如果相同,那么后面的会覆盖
  behaviors: [myBehavior, mySecondBehavior],
   
  properties: {
    myProperty: {
      type: String
    }
  },
   // 同理 data 也会覆盖  合并
   data:{}

})

以上就是behavior 的基本使用 然后在page中正常引用组件就可以

   页面中向behavior 传旨方法同页面向组件传值

<!-- 引用组件的页面模版 -->
<view>
  <my-component my-behavior-property="behavior-property【my-behavitor.js】" my-property="my-property">
  </my-component>
</view>

更多可以结合开发者文档中的实例了解  微信开发者工具behavior

behavior 的生命周期

当组件触发生命周期时,生命周期函数执行顺序为:

  1. [my-behavior] created
  2. [my-component] created
  3. [my-behavior] attached
  4. [my-component] attached
  5. [my-behavior] ready
  6. [my-component] ready

生命周期函数不会相互覆盖,而是在对应触发时机被逐个调用:

  • 对于不同的生命周期函数之间,遵循组件生命周期函数的执行顺序;
  • 对于同种生命周期函数,遵循如下规则:
    • behavior 优先于组件执行;
    • 子 behavior 优先于 父 behavior 执行;
    • 靠前的 behavior 优先于 靠后的 behavior 执行;
  • 如果同一个 behavior 被一个组件多次引用,它定义的生命周期函数只会被执行一次。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值