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({//注册导入的behaviorbehaviors: [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 被一个组件多次引用,它定义的生命周期函数只会被执行一次。

小程序中的behavior相关推荐

  1. 微信小程序中app.js文件、组件、api

    app.js文件: 每个小程序都需要在app.js中调用 App 方法注册小程序实例. App({//App实例化,整个小程序只有一个App实例,全部页面共享onLaunch: function () ...

  2. 微信小程序中的tabBar设置

    我们先来看一份图,这个设置在官方文档中已经写得很清楚了,我只是做一个总结 注:我写注释是为了方便说明,在小程序中的json文件中是不能用注释的 这个tabBar属于全局属性,因此就在全局配置文件app ...

  3. 六一:如何在Datawhale开源学习小程序中管

    我们的组队学习马上就要开营了,本次组队学习与以往不同的是小程序中增加了队伍管理的功能. 为了方便大家组队,Datawhale的 六一同学 为大家准备了在Datawhale开源学习小程序中队伍管理的教程 ...

  4. 如何在Datawhale开源学习小程序中创建队伍?

    我们的组队学习马上就要开营了,本次组队学习与以往不同的是小程序中增加了组队的功能.为了方便大家组队,Datawhale的 六一同学 为大家准备了在Datawhale开源学习小程序中创建队伍的教程. S ...

  5. 在小程序中实现 Mixins 方案

    原文来自我的博客:jrainlau.github.io/#/article?n- 在原生开发小程序的过程中,发现有多个页面都使用了几乎完全一样的逻辑.由于小程序官方并没有提供 Mixins 这种代码复 ...

  6. 微信小程序setinterval_微信小程序中setInterval的使用方法

    微信小程序中setinterval的使用方法 看了下小程序的画布功能,简单的使用了一下,用蹩脚的逻辑做了个 "弹啊弹,弹走鱼尾纹的小球",一起来看下吧.过程不重要主要是画布的使用哦 ...

  7. 小程序多个echars_微信小程序中使用echarts以及踩坑总结

    人在家中坐,锅从天上来. 半个月前本来在家写着一个项目,还没来得及提测,领导突然一个电话,需要立刻去支援另一个项目,一打听,一个烂尾半年的项目,纵使内心不愿意,还是要去啊.因为鲁迅说过,生活就像强*, ...

  8. 小程序中Cannot read property ‘setData‘ of undefined问题的解决

    小程序中Cannot read property 'setData' of undefined问题的解决 参考文章: (1)小程序中Cannot read property 'setData' of ...

  9. 如何在微信小程序中使用iconfont

    开篇废话 开发过小程序的童鞋肯定都会遇到这样的问题,当我们在小程序中使用iconfont官方推荐的方法插入字体时,我们总会得到一个打印机(滑稽).那么如何在小程序中正确的使用iconfont呢? 一. ...

最新文章

  1. 并查集专题练习:好朋友(未完待续)
  2. linux 查明文密码,win10系统查看明文密码的操作方法
  3. windows7 64位环境下安装apache+mysql5.5+php7经验
  4. loss函数之SoftMarginLoss
  5. 计算机 软件 什么是算子
  6. linux 显示目录的大小不一样,linux目录大小显示不实时问题
  7. 使用Windows service创建一个简单的定时器
  8. Android JS交互-记录我所遇到的
  9. android底部蒙版,Android实现蒙版弹出框效果
  10. echart实现地球外环绕卫星效果
  11. 基于Go语言Iris+Xorm的OA办公系统
  12. 用 Python 在股票交易中实现布林带策略
  13. 2.4g和5g要不要合并_路由器WiFi的2.4g和5g要不要合并?
  14. 大数据毕设项目 深度学习火焰检测识别 python opencv
  15. 2017山东单招计算机试题,2017年山东单独招生模拟试题(语文/数学/英语)
  16. Python深度学习-ch5深度学习用于计算机视觉
  17. 【代码审计】iCMS_v7.0.7 admincp.app.php页面存在SQL注入漏洞分析
  18. ORA-16053: DB_UNIQUE_NAME win12cbak is not in the Data Guard Configuration
  19. oci查询遇到空值 html不显示,oci_connect()
  20. 命题和一阶逻辑推理(内容+适用条件+证明(见文末参考文献))

热门文章

  1. 2008年软考初级程序员试题(下午题)
  2. docker的安装及配置加速器
  3. 【解决方案】微信网页链接分享自定义
  4. Android学习笔记 75. 单元测试
  5. VC调试--输出调试字符串(含示例代码)
  6. C语言数据结构上机题:高铁网络
  7. c语言二级程序编写bug,c语言—常见BUG
  8. Pygame 官方文档 - pygame.scrap
  9. 左手坐标系右手坐标系
  10. Mybatis实现insert获取自增id