小程序中的behavior
Behavior
概念:用与小程序中组件间代码共享的特性,类似于一些编程语言的 "mixins", "traits"
作用:
- 每一个behavior 可以包含一些属性,数据,生命周期函数,方法
- 在组件中引用它时,它的属性,数据和方法会被合并到组件中,生命周期函数也会在对应的时机被调用
- 每个组件可以引用多个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 的生命周期
当组件触发生命周期时,生命周期函数执行顺序为:
[my-behavior] created
[my-component] created
[my-behavior] attached
[my-component] attached
[my-behavior] ready
[my-component] ready
生命周期函数不会相互覆盖,而是在对应触发时机被逐个调用:
- 对于不同的生命周期函数之间,遵循组件生命周期函数的执行顺序;
- 对于同种生命周期函数,遵循如下规则:
behavior
优先于组件执行;子 behavior
优先于父 behavior
执行;靠前的 behavior
优先于靠后的 behavior
执行;- 如果同一个
behavior
被一个组件多次引用,它定义的生命周期函数只会被执行一次。
小程序中的behavior相关推荐
- 微信小程序中app.js文件、组件、api
app.js文件: 每个小程序都需要在app.js中调用 App 方法注册小程序实例. App({//App实例化,整个小程序只有一个App实例,全部页面共享onLaunch: function () ...
- 微信小程序中的tabBar设置
我们先来看一份图,这个设置在官方文档中已经写得很清楚了,我只是做一个总结 注:我写注释是为了方便说明,在小程序中的json文件中是不能用注释的 这个tabBar属于全局属性,因此就在全局配置文件app ...
- 六一:如何在Datawhale开源学习小程序中管
我们的组队学习马上就要开营了,本次组队学习与以往不同的是小程序中增加了队伍管理的功能. 为了方便大家组队,Datawhale的 六一同学 为大家准备了在Datawhale开源学习小程序中队伍管理的教程 ...
- 如何在Datawhale开源学习小程序中创建队伍?
我们的组队学习马上就要开营了,本次组队学习与以往不同的是小程序中增加了组队的功能.为了方便大家组队,Datawhale的 六一同学 为大家准备了在Datawhale开源学习小程序中创建队伍的教程. S ...
- 在小程序中实现 Mixins 方案
原文来自我的博客:jrainlau.github.io/#/article?n- 在原生开发小程序的过程中,发现有多个页面都使用了几乎完全一样的逻辑.由于小程序官方并没有提供 Mixins 这种代码复 ...
- 微信小程序setinterval_微信小程序中setInterval的使用方法
微信小程序中setinterval的使用方法 看了下小程序的画布功能,简单的使用了一下,用蹩脚的逻辑做了个 "弹啊弹,弹走鱼尾纹的小球",一起来看下吧.过程不重要主要是画布的使用哦 ...
- 小程序多个echars_微信小程序中使用echarts以及踩坑总结
人在家中坐,锅从天上来. 半个月前本来在家写着一个项目,还没来得及提测,领导突然一个电话,需要立刻去支援另一个项目,一打听,一个烂尾半年的项目,纵使内心不愿意,还是要去啊.因为鲁迅说过,生活就像强*, ...
- 小程序中Cannot read property ‘setData‘ of undefined问题的解决
小程序中Cannot read property 'setData' of undefined问题的解决 参考文章: (1)小程序中Cannot read property 'setData' of ...
- 如何在微信小程序中使用iconfont
开篇废话 开发过小程序的童鞋肯定都会遇到这样的问题,当我们在小程序中使用iconfont官方推荐的方法插入字体时,我们总会得到一个打印机(滑稽).那么如何在小程序中正确的使用iconfont呢? 一. ...
最新文章
- 并查集专题练习:好朋友(未完待续)
- linux 查明文密码,win10系统查看明文密码的操作方法
- windows7 64位环境下安装apache+mysql5.5+php7经验
- loss函数之SoftMarginLoss
- 计算机 软件 什么是算子
- linux 显示目录的大小不一样,linux目录大小显示不实时问题
- 使用Windows service创建一个简单的定时器
- Android JS交互-记录我所遇到的
- android底部蒙版,Android实现蒙版弹出框效果
- echart实现地球外环绕卫星效果
- 基于Go语言Iris+Xorm的OA办公系统
- 用 Python 在股票交易中实现布林带策略
- 2.4g和5g要不要合并_路由器WiFi的2.4g和5g要不要合并?
- 大数据毕设项目 深度学习火焰检测识别 python opencv
- 2017山东单招计算机试题,2017年山东单独招生模拟试题(语文/数学/英语)
- Python深度学习-ch5深度学习用于计算机视觉
- 【代码审计】iCMS_v7.0.7 admincp.app.php页面存在SQL注入漏洞分析
- ORA-16053: DB_UNIQUE_NAME win12cbak is not in the Data Guard Configuration
- oci查询遇到空值 html不显示,oci_connect()
- 命题和一阶逻辑推理(内容+适用条件+证明(见文末参考文献))