当前位置: 首页 > news >正文

【微信小程序】-- 自定义组件 - behaviors(三十九)

请添加图片描述

  • 💌 所属专栏:【微信小程序开发教程】

  • 😀 作  者:我是夜阑的狗🐶

  • 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询!

  • 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘

文章目录

  • 前言
  • 一、behaviors
      • 1、什么是 behaviors
      • 2、behaviors 的工作方式
      • 3、创建 behavior
      • 4、导入并使用 behavior
      • 5、behavior 中所有可用的节点
      • 6、同名字段的覆盖和组合规则
  • 总结


前言

  大家好,又见面了,我是夜阑的狗🐶,本文是专栏【微信小程序开发教程】专栏的第39篇文章;
  今天开始学习微信小程序的第22天💖💖💖,开启新的征程,记录最美好的时刻🎉,每天进步一点点。
  专栏地址:【微信小程序开发教程】, 此专栏是我是夜阑的狗微信小程序开发过程的总结,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。
  如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。


一、behaviors

  前面已经介绍了自定义组件 - 父子组件之间的通信,通过栗子学习了父组件如何给子组件传递以及父子组件之间传值进行同步。接下来就来讲解一下另外一个自定义组件 - behaviors。话不多说,让我们原文再续,书接上回吧。

请添加图片描述

1、什么是 behaviors

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

请添加图片描述

2、behaviors 的工作方式

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

3、创建 behavior

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

在这里插入图片描述

my-behavior.js

   使用 module.exports 将 behaviors 实例对象共享出去。

module.exports = Behavior({// 属性节点data:{username: '我是夜阑的狗'},// 私有数据节点properties: {},// 事件处理函数和自定义方法节点methods:{},
})

4、导入并使用 behavior

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

test5.js

const myBehavior = require('../../behaviors/my-behavior');Component({behaviors: [myBehavior],
})

test5.wxml

<text>子组件中, count当前值为:{{count}}</text>
<button bindtap="addCount">count+1</button>
<view>behaviors中的用户名是:{{username}}</view>

   可以来看一下运行效果:

在这里插入图片描述

5、behavior 中所有可用的节点

   接下来看一下 behavior 都有哪些节点可以用,如下表所示:

可用的节点类型是否必填描述最低版本
propertiesObject Map组件的对外属性,是属性名到属性设置的映射表
dataObject组件的内部数据,和 properties 一同用于组件的模板渲染
observersObject否 组件数据字段监听器,用于监听 properties 和 data 的变化,参见 数据监听器2.6.1
methodsObject组件的方法,包括事件响应函数和任意的自定义方法,关于事件响应函数的使用,参见 组件间通信与事件
behaviorsString Array类似于mixins和traits的组件间代码复用机制,参见 behaviors
createdFunction组件生命周期函数-在组件实例刚刚被创建时执行,注意此时不能调用 setData )
attachedFunction组件生命周期函数-在组件实例进入页面节点树时执行)
readyFunction组件生命周期函数-在组件布局完成后执行)
movedFunction组件生命周期函数-在组件实例被移动到节点树另一个位置时执行)
detachedFunction组件生命周期函数-在组件实例被从页面节点树移除时执行)
relationsObject组件间关系定义,参见 组件间关系
lifetimesObject组件生命周期声明对象,参见 组件生命周期2.2.3
pageLifetimesObject组件所在页面的生命周期声明对象,参见 组件生命周期2.2.3
definitionFilterFunction定义段过滤器,用于自定义组件扩展,参见 自定义组件扩展2.2.3

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

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

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

   关于详细的覆盖和组合规则,大家可以参考微信小程序 官方文档 给出的说明。

  这里以同名的属性为例来学习一下,具体代码如下:

my-behavior.js

module.exports = Behavior({// 属性节点data:{username: '我是夜阑的狗'},// 私有数据节点properties: {},// 事件处理函数和自定义方法节点methods:{},
})

test5.js

Component({/*** 组件的初始数据*/data: {username: 'CSH'},
})

   此时,组件与引用的 behaviors 中属性名相同了,这里组件的同名属性就会覆盖 behaviors 中属性,可以来看一下运行效果:

在这里插入图片描述


总结

  感谢观看,这里就是自定义组件 - behaviors 的介绍使用,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹 🌹 🌹

在这里插入图片描述

  也欢迎你,关注我。👍 👍 👍

  原创不易,还希望各位大佬支持一下,你们的点赞、收藏和留言对我真的很重要!!!💕 💕 💕 最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!下期再见。🎉

更多专栏订阅:

  • 😀 【LeetCode题解(持续更新中)】
  • 🚝 【Java Web项目构建过程】
  • 💛 【微信小程序开发教程】
  • 【JavaScript随手笔记】
  • 🤩 【大数据学习笔记(华为云)】
  • 🦄 【程序错误解决方法(建议收藏)】
  • 🚀 【软件安装教程】



订阅更多,你们将会看到更多的优质内容!!

相关文章:

【微信小程序】-- 自定义组件 - behaviors(三十九)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…...

【微信小程序】-- 自定义组件 - 父子组件之间的通信(三十八)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…...

Java Web 实战 11 - 多线程进阶之常见的锁策略

常见的锁策略常见的锁策略1. 乐观锁 VS 悲观锁2. 普通的互斥锁 VS 读写锁3. 重量级锁 VS 轻量级锁4. 自旋锁 VS 挂起等待锁5. 公平锁 VS 非公平锁6. 可重入锁 vs 不可重入锁7. 常见面试题大家好 , 这篇文章给大家带来的是多线程中常见的锁策略 , 我们会给大家讲解 6 种类别的锁…...

(20)目标检测算法之YOLOv5计算预选框、详解anchor计算

目标检测算法之YOLOv5计算预选框、详解anchor计算 单节段目标检测算法中&#xff1a;预选框的设定直接影响最终的检测精度众所周知&#xff0c;yolov5中采用自适应调整预选框anchor的大小&#xff0c;但万事开头难&#xff0c;配置文件config中的预设还是很重要yolo算法作为on…...

3-1 SpringCloud快速开发入门: Ribbon 是什么

接上一章节Eureka 服务注册中心自我保护机制&#xff0c;这里讲讲Ribbon 是什么 Ribbon 是什么 通常说的负载均衡是指将一个请求均匀地分摊到不同的节点单元上执行&#xff0c;负载均和分为硬件负载均衡和软件负载均衡&#xff1a; **硬件负载均衡&#xff1a;**比如 F5、深信…...

Java【lambda表达式】语法及使用方式介绍

相关文章目录 第一篇&#xff1a; Java【EE初阶】进程相关知识 进程管理 内存管理 文章目录相关文章目录前言一、lambda表达式 是什么&#xff1f;1, lambda表达式 的背景2, 什么是 函数式接口3, lambda表达式 的语法二、lambda表达式 的使用方式1, 无参无返回值2, 有一个参…...

【AcWing】蓝桥杯备赛-深度优先搜索-dfs(2)

目录 写在前面&#xff1a; 题目&#xff1a;94. 递归实现排列型枚举 - AcWing题库 读题&#xff1a; 输入格式&#xff1a; 输出格式&#xff1a; 数据范围&#xff1a; 输入样例&#xff1a; 输出样例&#xff1a; 解题思路&#xff1a; 代码&#xff1a; AC &…...

‘conda‘不是内部或外部命令,也不是可运行的程序或批处理文件。

Anaconda环境搭建常见问题 conda不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 解决方案&#xff1a;配置环境变量 1.找到Anaconda Nvaigator单机右键 2.更多 3.打开文件所在位置 4.继续Anaconda Nvaigator单机右键&#xff0c;更多&#xff0c;选择文件…...

HTTP 3.0来了,UDP取代TCP成为基础协议,TCP究竟输在哪里?

TCP 是 Internet 上使用和部署最广泛的协议之一&#xff0c;多年来一直被视为网络基石&#xff0c;随着HTTP/3正式被标准化&#xff0c;QUIC协议成功“上位”&#xff0c;UDP“取代”TCP成为基础协议&#xff0c;TCP究竟“输”在哪里&#xff1f; HTTP/3 采用了谷歌多年探索的基…...

《JavaCV从入门到实战教程合集》介绍和目录

前言 《JavaCV从入门到实战教程合集》是2016年《JavaCV开发实战教程》和2018年《JavaCV入门教程》2022年《JavaCV音视频实战宝典》三合一汇总合集&#xff0c;完整包含JavaCV入门教程》、《JavaCV开发实战教程》系列和《JavaCV音视频实战宝典》系列所有付费内容。 《JavaCV入…...

Form Generator扩展 文本 组件

一、form-generator是什么?✨ ⭐️ 🌟 form-generator的作者是这样介绍的:Element UI表单设计及代码生成器,可将生成的代码直接运行在基于Element的vue项目中;也可导出JSON表单,使用配套的解析器将JSON解析成真实的表单。 但目前它提供的组件并不能满足我们在项目中的…...

【C/C++】必知必会知识点大总结

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 &#x1f4da;专栏地址&#xff1a;C/C知识点 &#x1f4e3;专栏定位&#xff1a;整理一下 C 相关的知识点&#xff0c;供大家学习参考~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;…...

【JavaScript 逆向】百度旋转验证码逆向分析

声明本文章中所有内容仅供学习交流&#xff0c;相关链接做了脱敏处理&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01;案例目标爱企查百度安全验证百度搜索&#xff1a;aHR0cHM6Ly93YXBwYXNzLmJhaWR1LmNvbS9zdGF0aWMvY2FwdGNoYS8以上均做了脱敏处理&#xff0c;B…...

PCL 点云投影到直线(C++详细过程版)

目录 一、算法原理二、代码实现三、结果展示1、原始点云2、投影结果一、算法原理 直线方程有三种表示法:一般式、点向式、参数式。PCL中统一采用的是点向式,直线的点向式方程为: x − x 0 m = y −...

中缀表达式转后缀表示式,及后缀表达式的运算规则

后缀表达式又称为逆波兰表达式 一&#xff0c;中缀表达式如何转后缀表达式 假定给出以下中缀表达式 132*2-1&#xff1b; 要将该表达式转为后缀表达式&#xff0c;我们要按照一定的规则去走&#xff0c;并且用到栈。 先来看规则中缀转后缀的规则&#xff1a; 前提&#x…...

【C++】STL简介

文章目录什么是STLSTL版本 原始版本(HP版本) P.J.版本 RW版本 SGI版本STL六大组件 容器 算法 仿函数 空间配置器 迭代器 配接器STL缺陷什么是STL STL&#xff08;standard template libaray-标准模板库&#xff09;&#xff1a;是C标准库的重要组成部分&#xff0c;不…...

(小甲鱼python)文件永久存储(上)总结 python文件永久存储(创建打开文件、文件对象的各种方法及含义)

一、文件永久存储 如何将数据永久的存放在硬盘上&#xff0c;具体如下。 1.打开文件 定义&#xff1a;往大了讲计算机系统中由操作系统管理的具有名称的存储区域&#xff0c;往小了讲是生活中的PPT、Excel、word三剑客、视频文件、音频文件等。 创建打开文件&#xff1a; open…...

甲酸溶液除钠离子,丙酸溶液除钾离子,医药液体除钾

水是医药行业中用量大、使用 泛的一种原料&#xff0c;它在生产过程中和药剂药品的制备中发挥着极其重要的作用。制药用水的原水通常为自来水或深井水&#xff0c;原水不能直接用作制剂用水或实验用水。因为原水中含有各类盐类和化合物&#xff0c;溶有CO2&#xff0c;还存在大…...

操作系统(2.2)--进程的描述与控制

目录 二、进程的描述 1.进程的定义和特征 1.1进程的定义 1.2进程的特征 2.进程的基本状态及转换 2.1进程的三种基本状态 2.2 三种基本状态的转换 2.3创建状态和中止状态 3.挂起操作和进程状态的转换 3.1 挂起状态的引入 3.2 引入挂起操作后三个进程状态的转换 …...

Python连接es笔记四之创建和删除操作

这一篇笔记介绍一下索引和数据的创建和删除。 其实对于索引来说&#xff0c;如果可以接触到 kibana 的话&#xff0c;可以很方便的在界面进行操作&#xff0c;这里简单介绍一下如何使用代码来操作索引的创建和删除。 索引的创建和删除操作 使用的还是 es 的连接&#xff1a;…...

字符串填充到指定长度

一、需求 在传输一个文件的时候&#xff0c;传输的是二进制数据&#xff0c;整个数据文件的结构为&#xff1a; 文件名称 文件本身 其中文件名称固定占30个byte&#xff0c;存在的情况就是&#xff0c;有的文件名比较长&#xff0c;有的文件名比较短&#xff0c;所有要补足30…...

macOS虚拟机安装全过程(VMware)

作为一名忠实果粉&#xff0c;我最大的愿望就是能够拥有一台Macbook&#xff0c;体验macOS&#xff0c;但是作为学生党&#xff0c;这价钱&#xff0c;贵到离谱啊~~~ 不过&#xff0c;VMware这个神器&#xff0c;可以解决一切问题&#xff1a;既然macOS可以在Macbook上运行&…...

第十三届蓝桥杯A组:选数异或——三种解法(线段树、DP、ST表)

[蓝桥杯 2022 省 A] 选数异或 题目描述 给定一个长度为 nnn 的数列 A1,A2,⋯,AnA_{1}, A_{2}, \cdots, A_{n}A1​,A2​,⋯,An​ 和一个非负整数 xxx, 给定 mmm 次查询, 每次询问能否从某个区间 [l,r][l, r][l,r] 中选择两个数使得他们的异或等于 xxx 。 输入格式 输入的第一…...

【CTF】CTF竞赛介绍以及刷题网址

CTF&#xff08;Capture The Flag&#xff09;中文一般译作夺旗赛&#xff0c;在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会&#xff0c;以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今&…...

Springboot怎么优雅实现大文件的上传

前言在软件工程里&#xff0c;在处理“大”的时候一直是一个难点和难点&#xff0c;如并发大、数据量大、文件大&#xff0c;对硬件进行升级可以解决一些问题&#xff0c;但这并不最聪明的办法&#xff0c;而对于老板来说&#xff0c;这也不是成本最小的办法。作为开发人员来说…...

2月编程语言排行榜新鲜出炉,谁又摘得桂冠?

近日&#xff0c;TIOBE公布了2023年2月编程语言排行榜&#xff0c;本月各个语言表现如何&#xff1f;谁又摘得桂冠&#xff1f;一起来看看吧&#xff01; TIOBE 2月Top15编程语言&#xff1a; 详细榜单查看TIOBE官网 https://www.tiobe.com/tiobe-index/ 关注IT行业的小伙伴…...

机器学习中的数学原理——模型评估与交叉验证

惭愧惭愧&#xff01;机器学习中的数学原理这个专栏已经很久没有更新了&#xff01;前段时间一直在学习深度学习&#xff0c;paddlepaddle&#xff0c;刷题专栏跟新了&#xff0c;这个专栏就被打入冷宫了。这个专栏名为白话机器学习中数学学习笔记&#xff0c;主要是用来分享一…...

JAVA开发(JSP的9大内置对象和4大作用域)

背景&#xff1a; 在springboot横行的javaweb开发中&#xff0c;现在的后端开发工程师基本不需要写前端JSP页面。但是作为web开发工程师&#xff0c;不懂JSP的原理和作用&#xff0c;几乎是不行的。 JSP技术介绍&#xff1a; JSP&#xff08;全称Java Server Pages&#xff…...

(4)EKF失控保护

文章目录 前言 4.1 什么时候会触发? 4.2 当失控保护触发时,会发生什么?...

数论----质数的求解(C/C++)

CSDN的uu&#xff0c;你们好呀&#xff0c;今天我们要学习的内容是数论哦&#xff01;这也是算法题中的一类题目吧。记好安全带&#xff0c;准备发车咯&#xff01;&#x1f680;学习数论的意义&#x1f4e2;算法导论说&#xff1a;“数论曾经被视为一种虽然优美但却没什么用处…...

网站建设与管理课程视频/网络推广销售是做什么的

此HTML标签<input id"Radio1" type"radio"/>可完全取代以上2个服务器控件。RadioButtonList及RadioButton依赖于form窗体&#xff0c;产生很多垃圾代码&#xff0c;有时候只是用来显示此方法可取代。aspx:<input type"radio" name"…...

淄博市人民政府门户网站建设工作调研报告/建网站的流程

目录 - - - - -- - - - -- - - - -- - - - -- - - - -- - - - -- - - - -- - - - -- - - - -- - - - -- - - - - 1. 基础类业务 2. 融资融券业务 3. 投资银行业务 4. 投资管理业务 5. 资产管理业务 6. 券商与商业银行的合作业务 7. 券商与信托公司的合作业务 8. 多金融…...

宁波网站建设哪个公司好/搜索引擎优化的例子

曲线C绕y轴旋转所成的旋转曲面的方程为曲面之柱面、旋转面、椭球面 欧阳顺湘 北京师范大学 Recall 曲面方程(Equations for a Surface)&#xff1a; 更多曲面 柱 面 旋转面 椭球面 旋转面 以一条平面曲线绕其平面上的一条直线旋转一周所成的曲面叫做旋转曲面。这条直线叫做旋转…...

网站广告推送怎么做/官方正版清理优化工具

一、八大排序 排序也称排序算法(Sort Algorithm)&#xff0c;排序是将一组数据&#xff0c;依指定的顺序进行排列的过程。 排序分类 总体对比 1 冒泡排序 基本思想 冒泡排序&#xff08;Bubble Sorting&#xff09;的基本思想是&#xff1a;通过对待排序序列从前向后&…...

怎么做一个网站推广/个人发布信息的免费平台

1 stackFromBottom 你做好的列表就会显示你列表的最下面 值为true false2 android:transcriptMode"alwaysScroll" 通过设置的控件transcriptMode属性可以将Android平台的控件&#xff08;支持ScrollBar&#xff09;自动滑动到最底部。3 cacheColorHint 如…...

网站建设基础及流程/朋友圈推广文案

2019独角兽企业重金招聘Python工程师标准>>> 最近项目的一个模块&#xff0c;需要调用另一个项目的接口&#xff0c; 找到以前写的java调用http接口的&#xff0c;发现太粗略了&#xff0c;就扒了扒网上诸大神的笔记&#xff0c;整理了一份进阶版的代码&#xff0c;…...