微信小程序开发【从0到1~入门篇4】

news2024/9/25 3:22:34

如果您没有看我上一篇文章,建议返回阅读:
微信小程序开发【从0到1~入门篇3】

这篇文章进入基础增强阶段,通过对这篇文章的学习,你将学会以下内容
① 能够创建并引用组件
⚫ 全局引用、局部引用、usingComponents
② 能够知道如何修改组件的样式隔离选项
⚫ options -> styleIsolation( isolated, apply-shared, shared)
③ 能够知道如何定义和使用数据监听器
⚫ observers
④ 能够知道如何定义和使用纯数据字段
⚫ options -> pureDataPattern
⑤ 能够知道实现组件父子通信有哪3种方式
⚫ 属性绑定、事件绑定、this.selectComponent(’ id或class选择器’)
⑥ 能够知道如何定义和使用behaviors
⚫ 调用 Behavior() 构造器方法

1组件的创建与引用

创建组件

1

① 在项目的根目录中,鼠标右键,创建 components -> test 文件夹

② 在新建的 components -> test 文件夹上,鼠标右键,点击“新建 Component”

③ 键入组件的名称之后回车,会自动生成组件对应的 4 个文件,后缀名分别为 .js,.json, .wxml 和 .wxss

注意:为了保证目录结构的清晰,建议把不同的组件,存放到单独目录中,例如
在这里插入图片描述
引用组件

1
组件的引用方式分为“局部引用”和“全局引用”,顾名思义:
⚫ 局部引用:组件只能在当前被引用的页面内使用
⚫ 全局引用:组件可以在每个小程序页面中使用

局部引用组件

在页面的 .json 配置文件中引用组件的方式,叫做“局部引用”。示例代码如下:
在这里插入图片描述
全局引用组件

在 app.json 全局配置文件中引用组件的方式,叫做“全局引用”。示例代码如下:
在这里插入图片描述
全局引用组件VS 局部引用

根据组件的使用频率和范围,来选择合适的引用方式:
⚫ 如果某组件在多个页面中经常被用到,建议进行“全局引用”
⚫ 如果某组件只在特定的页面中被用到,建议进行“局部引用”

组件和页面的区别

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

⚫ 组件的 .json 文件中需要声明 “component”: true 属性
⚫ 组件的 .js 文件中调用的是 Component() 函数
⚫ 组件的事件处理函数需要定义到 methods 节点中

2.样式

组件样式隔离

默认情况下,自定义组件的样式只对当前组件生效,不会影响到组件之外的UI 结构,如图所示:

⚫ 组件 A 的样式不会影响组件 C 的样式
⚫ 组件 A 的样式不会影响小程序页面的样式
⚫ 小程序页面的样式不会影响组件 A 和 C 的样式
在这里插入图片描述
组件样式隔离的注意点

  • app.wxss 中的全局样式对组件无效
  • 只有 class 选择器会有样式隔离效果,id 选择器、属性选择器、标签选择器不受样式隔离的影响

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

在这里插入图片描述
在这里插入图片描述

3.数据、方法和属性

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.数据监听器

数据监听器

数据监听器用于监听和响应任何属性和数据字段的变化,从而执行特定的操作。它的作用类似于 vue 中的watch 侦听器。在小程序组件中,数据监听器的基本语法格式如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.纯数据字段

纯数据字段

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

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

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

在 Component 构造器的 options 节点中,指定 pureDataPattern 为一个正则表达式,字段名符合这个正则
表达式的字段将成为纯数据字段,示例代码如下:

在这里插入图片描述
使用纯数据字段改造数据监听器案例
在这里插入图片描述

6.组件的生命周期

组件的生命周期
在这里插入图片描述

微信小程序组件的生命周期函数分为全局生命周期函数和组件生命周期函数。全局生命周期函数适用于所有页面,而组件生命周期函数适用于小程序页面中的组件。以下是微信小程序中组件的生命周期函数列表:

组件生命周期函数
created:组件实例刚刚被创建时执行。
attached:组件实例进入页面节点树时执行。
ready:组件在视图层布局完成后执行,仅执行一次。
moved:组件实例被移动到节点树另一个位置时执行。
detached:组件实例被从页面节点树移除时执行。
error:当组件方法抛出错误时执行。

组件事件处理函数
bind:绑定事件处理函数,如bindtap、bindinput等。
catch:绑定事件处理函数,如catchtap、catchinput等。

等等

组件主要的生命周期函数

在小程序组件中,最重要的生命周期函数有 3 个,分别是 created、attached、detached。它们各自的特点

如下:

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

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

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

  • 此时, this.data 已被初始化完毕
  • 这个生命周期很有用,绝大多数初始化的工作可以在这个时机进行(例如发请求获取初始数据)

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

  • 退出一个页面时,会触发页面内每个自定义组件的 detached 生命周期函数
  • 此时适合做一些清理性质的工作

有时,自定义组件的行为依赖于页面状态的变化,此时就需要用到组件所在页面的生命周期。
例如:每当触发页面的 show 生命周期函数的时候,我们希望能够重新生成一个随机的 RGB 颜色值。
在自定义组件中,组件所在页面的生命周期函数有如下 3 个,分别是:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.插槽

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.父子组件之间的通信

父子组件之间的通信

父子组件之间通信的 3 种方式

① 属性绑定
⚫ 用于父组件向子组件的指定属性设置数据,仅能设置 JSON 兼容的数据

② 事件绑定
⚫ 用于子组件向父组件传递数据,可以传递任意数据

③ 获取组件实例
⚫ 父组件还可以通过 this.selectComponent() 获取子组件实例对象
⚫ 这样就可以直接访问子组件的任意数据和方法

属性绑定

属性绑定用于实现父向子传值,而且只能传递普通类型的数据,无法将方法传递给子组件。父组件的示例代码
如下:

在这里插入图片描述
子组件在 properties 节点中声明对应的属性并使用。示例代码如下:
在这里插入图片描述
事件绑定

事件绑定用于实现子向父传值,可以传递任何类型的数据。使用步骤如下:

① 在父组件的 js 中,定义一个函数,这个函数即将通过自定义事件的形式,传递给子组件

② 在父组件的 wxml 中,通过自定义事件的形式,将步骤 1 中定义的函数引用,传递给子组件

③ 在子组件的 js 中,通过调用 this.triggerEvent(‘自定义事件名称’, { /* 参数对象 */ }) ,将数据发送到父组件

④ 在父组件的 js 中,通过 e.detail 获取到子组件传递过来的数据.

步骤1:在父组件的 js 中,定义一个函数,这个函数即将通过自定义事件的形式,传递给子组件。
在这里插入图片描述
步骤2:在父组件的 wxml 中,通过自定义事件的形式,将步骤 1 中定义的函数引用,传递给子组件。

在这里插入图片描述
步骤3:在子组件的 js 中,通过调用 this.triggerEvent(‘自定义事件名称’, { /* 参数对象 */ }) ,将数据发送到父组件
在这里插入图片描述
步骤4:在父组件的 js 中,通过 e.detail 获取到子组件传递过来的数据在这里插入图片描述
可在父组件里调用 this.selectComponent(“id或class选择器”) ,获取子组件的实例对象,从而直接访问子组
件的任意数据和方法。调用时需要传入一个选择器,例如 this.selectComponent(“.my-component”)。
在这里插入图片描述

9.behaviors

behaviors
behaviors 是小程序中,用于实现组件间代码共享的特性,类似于 Vue.js 中的 “mixins”。
在这里插入图片描述
每个 behavior 可以包含一组属性、数据、生命周期函数和方法。组件引用它时,它的属性、数据和方法会被
合并到组件中。

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

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

在这里插入图片描述
在组件中,使用 require() 方法导入需要的 behavior,挂载后即可访问 behavior 中的数据或方法,示例代码
如下:
在这里插入图片描述
在这里插入图片描述
总结:
本文学了以下内容

① 能够创建并引用组件
⚫ 全局引用、局部引用、usingComponents

② 能够知道如何修改组件的样式隔离选项
⚫ options -> styleIsolation( isolated, apply-shared, shared)

③ 能够知道如何定义和使用数据监听器
⚫ observers

④ 能够知道如何定义和使用纯数据字段
⚫ options -> pureDataPattern

⑤ 能够知道实现组件父子通信有哪3种方式
⚫ 属性绑定、事件绑定、this.selectComponent(’ id或class选择器’)

⑥ 能够知道如何定义和使用behaviors
⚫ 调用 Behavior() 构造器方法

微信小程序前后端开发快速入门系列教程. 前言. 累计现在已经有 10 篇教程,用备忘录项目从小程序前端开发到后端开发都有分享。 微信小程序前端开发快速入 …

课件及源码获取方式:

关注公粽号:小猿搜码

后台发送:csdn小程序

即可免费领取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1989279.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity初识

1:下载Unity Hub 下载地址:Unity官方下载_Unity最新版_从Unity Hub下载安装 | Unity中国官网 建议直接使用unity hub因为支持比较全面,适合新手 有中文 管理 编辑器等等功能支持 下载安装不过多介绍 2:Unity Hub汉化 因为我…

Unity Console 窗口输出对齐

起因:做了个工具在console窗口罗列一些信息,基本结构是 [ 文件名 :行号 ],因为文件,行号长度不一,想要做到如下效果。 初步尝试,用以下方法: string format "{0,-10} …

凯伦股份子公司中标中建八局发展建设分公司年度多项工程集采

近日,凯伦股份旗下全资子公司——苏州凯瑞伦建筑工程有限公司凭借其卓越的专业素养和服务能力,顺利中标中国建筑第八工程局有限公司发展建设分公司-北京分公司2024年度-北京、天津、河北、内蒙等区域防水工程集采。 中国建筑第八工程局有限公司发展建设分…

书生大模型实战营-入门关卡-Linux 前置基础

任务:Tutorial/docs/L0/Linux at camp3 InternLM/Tutorial GitHub 完成:

长在客户审美点上的可视化大屏,大概率就是这个样子。

要想使可视化大屏长在客户审美点上,需要具备以下特征: 布局合理:有良好的整体结构和布局,各个元素之间的关系清晰,避免视觉上的混乱和杂乱无章感。信息展示清晰有序,重点突出,能够让客户快速找…

Granger-因果检验及 Stata 具体操作步骤

目录 一、文献综述 二、理论原理 三、实证模型 四、程序代码及解释 五、代码运行结果 一、文献综述 Granger 因果检验作为一种重要的时间序列分析方法,在众多学科领域中都发挥着关键作用,并引发了广泛的研究和应用。 在宏观经济学领域,学…

探秘C# LINQ元素运算:原理阐释与实践指南

文章目录 一、LINQ元素运算符概述二. ElementAt 和 ElementAtOrDefault三. First 和 FirstOrDefault四. Last 和 LastOrDefault五. Single 和 SingleOrDefault六. Where 和 Select七、实际应用场景示例总结 LINQ(Language-Integrated Query)是C#中强大且…

Linux基础IO——重定向与文件缓冲区

文章目录 重定向重定向的系统调用C语言中的FILE结构体 文件缓冲区C语言缓冲区 重定向 我们在学习Linux的基本内容时候,知道>> >都可以用来表示重定向,那么重定向的本质是什么呢,其实就是更改了标号为1的文件描述符 1表示标准输出&…

虚实共生:数字孪生技术引领设施农业新未来

在全球人口持续增长和气候变化日益严峻的背景下,设施农业正面临前所未有的挑战和机遇。如何在有限的资源条件下提高作物产量、质量和生产效率,成为困扰农业从业者的核心问题。随着人工智能、物联网和大数据等新兴技术的快速发展,数字化转型为设施农业带来了新的希望。其中,数字…

如何为树莓派添加人工智能超能力!

Raspberry Pi AI 套件价格实惠,安装简单,只要你能找到一个。 Adrian Kingsley-Hughes/ZDNET ZDNET 的关键要点 Raspberry Pi 基金会发布了适用于 Pi 5 的 Raspberry Pi AI 套件,但供应情况并不稳定。在撰写本文时,我在亚马逊和芝…

跟《经济学人》学英文:2024年08月03日这期 What is the point of industry awards?

What is the point of industry awards? Booze, sweat and plexiglass booze&#xff1a;美 [buz] 酒精饮料&#xff1b;烈酒&#xff1b;<俚>喝酒 sweat&#xff1a;英 [swet] 汗水&#xff1b;辛勤劳动 注意发音 plexiglass&#xff1a;美 [pleksɪˌglɑs] 树脂玻…

“消费新纪元:探索‘消费增值’的无限可能“

亲爱的顾客们&#xff0c;你们好&#xff01;今天&#xff0c;我想深入谈谈一种正在革新我们消费体验的模式——我们称之为“消费增值”。这个模式不仅仅保留了购物的乐趣&#xff0c;更在每一笔交易中融入了额外的价值&#xff0c;让消费过程焕发新生。 长久以来&#xff0c;我…

Google 高级搜索操作符

在 Google 搜索中&#xff0c;有些高级搜索操作符&#xff0c;它可以帮助你找到特定类型的文件。以下是一些常见的搜索操作符及其用途&#xff1a; filetype: — 搜索特定类型的文件。例如&#xff1a; filetype:pdf 人工智能 可以找到所有包含“人工智能”的 PDF 文件。 filet…

天机学堂 第6天 点赞逻辑

首先我们来分析整理一下点赞业务的需求&#xff0c;一个通用点赞系统需要满足下列特性&#xff1a; 通用&#xff1a;点赞业务在设计的时候不要与业务系统耦合&#xff0c;必须同时支持不同业务的点赞功能 独立&#xff1a;点赞功能是独立系统&#xff0c;并且不依赖其它服务。…

RM小陀螺技术经验与思考

移动小陀螺的原理&#xff1a; 先调好云台&#xff0c;车移动云台方向不动。然后可以用电机和底盘的机械角度来计算 涉及到两个知识点&#xff1a;速度闭环和变换矩阵。。。 把mpu的值映射到脉轮上面&#xff0c;就是说根据yaw电机编码器和mpu的差值来计算麦轮解算的x 和y的移…

开发android app用于移远模块读写IMEI 模组EC200DEULA-D08-SNNDA 支持socket连接读写IMEI

开放权限 adb kill-serveradb rootadb shell setenforce 0adb install -t app-debug.apkadb shell am start -n com.azhon.spplus/.MainActivity::F310A_WriteIMEI -DWadb.exe forward tcp:5902 tcp:5902pause写读IMEI ADB socket协议 TCP 127.0.0.1:5902 PC与终端APP之间 j…

商业数据分析PPT制作大纲系列一进入数据分析世界(需PPT私)

PART 1数据挖掘:从海量信息中淘出真金 数据挖掘是在海量的数据中发现有价值信息和知识的过程。它就像是一位经验丰富的矿工,在堆积如山的数据矿石中,精准地筛选出珍贵的金子。 引言: 数据挖掘的定义与价值技术概览: 关键算法(如决策树、K-means聚类、关联规则); 步骤…

简单搭建vue项目

1.先安装node.js和vite&#xff0c;具体参考&#xff1a; 2.管理员身份运行cmd&#xff0c;跳转到node安装目录&#xff1a; 输入&#xff1a; npm create vitelatest 输入项目名称&#xff0c;选择vue和JavaScript 2.VisualStudioCode打开(可能需要管理员权限)创建的文件夹,点…

Sqlserver 备份表

Sqlserver 备份表 1、右键数据库->任务->生成脚本 2、在引导界面点击下一步 3、选择需要导出的表 4、在高级里面选择备份数据与架构&#xff0c;然后再单选每个对象一个文件 每个对象一个文件是有多个表的情况下备份成多个文件&#xff0c;否则所有表都在一个文件中 架…

告别盲目找货!以图搜货神器,精准定位全网低价同款货源

做生意进入图搜源头时代&#xff0c;图搜进货实现了商机“所见即所得”。一位短视频平台的服装商家说&#xff0c;平时她看到同行的一个爆款&#xff0c;不好意思打听货源&#xff0c;也很难打听到&#xff0c;现在只要截个图一搜&#xff0c;就能找到1688对应的源头工厂。 今…