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

微信小程序-day4

小程序中的组件

局部注册

在页面的.json中使用usingComponents来注册使用组件

  "usingComponents": {"text1": "/components/text/text"}

全局注册

在app.json中使用usingComponents

组件和页面的区别

从表面来看,组件和页面都是由 .js.json.wxml .wxss 这四个文件组成的。但是,组件和页面的 .js .json 文件有明显的不同:

1.组件的 .json 文件中需要声明 "component": true 属性

2.组件的 .js 文件中调用的是 Component() 函数

3.组件的事件处理函数需要定义到 methods 节点中

组件的样式

默认情况下,自定义组件的样式只对当前组件生效,不会影响到组件之外的 UI 结构,小程序页面的样式也不会影响组件的样式

组件样式隔离的注意点

app.wxss 中的全局样式对组件无效

但只有 class 选择器会有样式隔离效果(会无效),id 选择器、属性选择器、标签选择器不受样式隔离的影响

建议:在组件引用组件的页面中建议使用 class 选择器,不要使用 id、属性、标签选择器

styleIsolation 的可选值

methods

在小程序组件中,事件处理函数自定义方法需要定义到 methods 节点

properties

类比props

与vue不同,在小程序的组件中,properties 属性和 data 数据的用法相同,它们都是可读可写

data 更倾向于存储组件的私有数据

properties 更倾向于存储外界传递到组件中的数据

this.data === this.properties 的结果是true,两者指向同一个对象

数据监听器

监听的基础用法

监听对象属性变化

纯数据字段

概念:纯数据字段指的是那些不用于界面渲染的 data 字段

应用场景:例如有些情况下,某些 data 中的字段既不会展示在界面上也不会传递给其他组件,仅仅在当前组件内部使用。带有这种特性的 data 字段适合被设置为纯数据字段。

好处:纯数据字段有助于提升页面更新的性能

自定义组件的生命周期

在小程序组件中,最重要的生命周期函数有 3 个,分别是 createdattacheddetached。它们各自的特点如下:

组件实例刚被创建好的时候,created 生命周期函数会被触发

此时还不能调用 setData

通常在这个生命周期函数中,只应该用于给组件的 this 添加一些自定义的属性字段

在组件完全初始化完毕、进入页面节点树后attached 生命周期函数会被触发

此时, this.data 已被初始化完毕

这个生命周期很有用,绝大多数初始化的工作可以在这个时机进行(例如发请求获取初始数据)(类似vue2中的created)

在组件离开页面节点树后detached 生命周期函数会被触发

退出一个页面时,会触发页面内每个自定义组件的 detached 生命周期函数

此时适合做一些清理性质的工作

lifetimes节点

生命周期方法可以直接定义在 Component 构造器的第一级参数中。

自小程序基础库版本 2.2.3 起,组件的的生命周期也可以在 lifetimes 字段内进行声明(这是推荐的方式,其优先级最高)。

Component({lifetimes: {attached: function() {// 在组件实例进入页面节点树时执行},detached: function() {// 在组件实例被从页面节点树移除时执行},},// 以下是旧式的定义方式,可以保持对 <2.2.3 版本基础库的兼容attached: function() {// 在组件实例进入页面节点树时执行},detached: function() {// 在组件实例被从页面节点树移除时执行},// ...
})

组件所在页面的生命周期

有时,自定义组件的行为依赖于页面状态的变化,此时就需要用到组件所在页面的生命周期

例如:每当触发页面的 show 生命周期函数的时候,我们希望能够重新生成一个随机的 RGB 颜色值。

pageLifetimes 节点

Slot插槽

和vue中类似

单个插槽基本一样

使用多个插槽时首先需要在js中启用

在.wxml中定义多个插槽,以name来区分(类似vue中的具名插槽)

在使用时需要用slot="name"来确定使用的插槽

组件通信

父传子

父组件传属性给子组件

子组件通过properties接收

子传父

事件绑定(就是监听事件$emit)

父组件监听事件

子组件使用this.triggerEvent(自定义事件名称’, { /* 参数对象 */ })来向父组件提交

父组件通过e.detail来获取子组件传过来的值

获取组件实例

类似ref

可在父组件里调用 this.selectComponent("idclass选择器") ,获取子组件的实例对象,从而直接访问子组件的任意数据和方法。调用时需要传入一个选择器,例如 this.selectComponent(".my-component")

behaviors

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

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

每个组件可以引用多个 behaviorbehavior 也可以引用其它 behavior

创建 behavior

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

导入并使用 behavior

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

behavior 中所有可用的节点


文章转载自:

http://RPhGySmj.gcqdp.cn
http://qV6nfkaw.gcqdp.cn
http://EbLyJCKt.gcqdp.cn
http://Q5DAo8Kr.gcqdp.cn
http://LYEY4X1n.gcqdp.cn
http://iFugKICF.gcqdp.cn
http://8fDpvxQ3.gcqdp.cn
http://eDaRID4u.gcqdp.cn
http://jVVglwIY.gcqdp.cn
http://Ou61Tne8.gcqdp.cn
http://zj0CIpds.gcqdp.cn
http://Sj7H9bbi.gcqdp.cn
http://qGnN0JEh.gcqdp.cn
http://v3zKL694.gcqdp.cn
http://MIg0hDrt.gcqdp.cn
http://rqmhaaTr.gcqdp.cn
http://ilONZV7F.gcqdp.cn
http://OTXjC1Pv.gcqdp.cn
http://Yyh3gEuq.gcqdp.cn
http://4SrU6CbP.gcqdp.cn
http://andjYnq9.gcqdp.cn
http://zmDo0DgV.gcqdp.cn
http://5MpnNLaW.gcqdp.cn
http://MySeReAr.gcqdp.cn
http://nwiBkw1c.gcqdp.cn
http://6JGTMJia.gcqdp.cn
http://ilMwH4oe.gcqdp.cn
http://XkljC8wO.gcqdp.cn
http://KH1hFnw9.gcqdp.cn
http://rJcCkvSt.gcqdp.cn
http://www.dtcms.com/a/366585.html

相关文章:

  • AI安全必修课:模型偏见检测与缓解实战
  • STL重点
  • 云手机的稳定性会受到哪些因素的影响?
  • 《嵌入式硬件(二):中断》
  • 多Agent协作案例:用AutoGen实现“写代码+测Bug”的自动开发流程
  • 【mysql】SQL自连接实战:查询温度升高的日期
  • 一键成文,标准随行——文思助手智能写作助力政务提效
  • PostgreSQL18-FDW连接的 SCRAM 直通身份验证
  • 金贝 KA Box 1.18T:一款高效能矿机的深度解析
  • 解锁桐果云零代码数据平台能力矩阵——赋能零售行业数字化转型新动能
  • 分布式电源接入电网进行潮流计算
  • 【C++详解】异常概念、抛出捕获与处理机制全解析
  • 当数据库宕机时,PostgreSQL 高可用在背后做了什么?
  • SQLynx 3.7 发布:数据库管理工具的性能与交互双重进化
  • 【系统架构设计(15)】软件架构设计一:软件架构概念与基于架构的软件开发
  • 安装与配置Jenkins(小白的”升级打怪“成长之路)
  • 整理3维4点结构加法
  • 处理省市区excel数据加工成SQL
  • AI+ 行动意见解读:音视频直播SDK如何加速行业智能化
  • 2025 全国大学生数学建模竞赛题目-B 题 碳化硅外延层厚度的确定 问题二完整思路
  • 51单片机------中断系统
  • iOS 抓包工具怎么选?开发者的实战经验与选择指南
  • 缓存雪崩、穿透、击穿解决方案
  • 【数据可视化-107】2025年1-7月全国出口总额Top 10省市数据分析:用Python和Pyecharts打造炫酷可视化大屏
  • NV 工具metrics分析(ncu, nsys/torch profiler)
  • 水下管道巡检机器人结构设cad+三维图+设计说明书
  • 阿里云轻量应用服务器部署WordPress与配置SSL 证书
  • 【mmcv自己理解】
  • 解密llama.cpp:从Prompt到Response的完整技术流程剖析
  • Python基础(①⑤heapq模块)