[猫头虎分享21天微信小程序基础入门教程] 第12天:小程序的自定义组件开发

本文主要是介绍[猫头虎分享21天微信小程序基础入门教程] 第12天:小程序的自定义组件开发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

[猫头虎分享21天微信小程序基础入门教程] 第12天:小程序的自定义组件开发
请添加图片描述

第12天:小程序的自定义组件开发 🛠️

自我介绍

大家好,我是猫头虎,一名全栈软件工程师。今天我们继续微信小程序的学习,重点了解如何开发自定义组件。自定义组件可以提高代码的复用性和模块化程度,使开发更加高效和灵活。🚀

自定义组件的基础

一、创建自定义组件

1. 创建组件目录和文件

首先,在项目根目录下创建一个 components 文件夹,在其中创建一个自定义组件,例如 my-component

components/my-component/my-component.jsmy-component.jsonmy-component.wxmlmy-component.wxss
2. 定义组件的配置文件

my-component.json 文件中定义组件的基本配置:

{"component": true
}
3. 定义组件的逻辑和样式

my-component.js 文件中定义组件的逻辑:

Component({properties: {title: {type: String,value: 'Default Title'}},data: {// 组件内部数据},methods: {onTap() {this.triggerEvent('customEvent', { message: 'Hello from component' });}}
});

my-component.wxml 文件中定义组件的模板:

<view class="container"><text>{{title}}</text><button bindtap="onTap">Click Me</button>
</view>

my-component.wxss 文件中定义组件的样式:

.container {padding: 20rpx;border: 1px solid #ddd;border-radius: 5rpx;text-align: center;
}

二、使用自定义组件

1. 注册组件

在使用组件的页面中注册组件。在页面的 json 文件中添加如下配置:

{"usingComponents": {"my-component": "/components/my-component/my-component"}
}
2. 使用组件

在页面的 wxml 文件中使用组件:

<view class="page"><my-component title="Custom Title" bind:customEvent="handleCustomEvent"></my-component>
</view>

在页面的 js 文件中处理组件事件:

Page({handleCustomEvent(event) {console.log(event.detail.message); // 输出: Hello from component}
});

组件间通信

一、父组件向子组件传递数据

通过 properties 向子组件传递数据:

Component({properties: {title: {type: String,value: 'Default Title'}}
});

二、子组件向父组件传递事件

通过 triggerEvent 向父组件传递事件:

methods: {onTap() {this.triggerEvent('customEvent', { message: 'Hello from component' });}
}

三、组件之间的数据和事件传递

父组件向子组件传递数据,子组件向父组件传递事件:

<my-component title="Custom Title" bind:customEvent="handleCustomEvent"></my-component>
Page({handleCustomEvent(event) {console.log(event.detail.message); // 输出: Hello from component}
});

组件的生命周期

一、组件的生命周期函数

组件有一系列生命周期函数,可以在不同阶段执行代码:

Component({lifetimes: {attached() {console.log('Component attached to DOM');},ready() {console.log('Component is ready');},detached() {console.log('Component detached from DOM');}}
});

二、页面的生命周期函数

组件也可以监听页面的生命周期函数:

Page({onLoad() {console.log('Page loaded');},onReady() {console.log('Page ready');},onUnload() {console.log('Page unloaded');}
});

小测试 🧪

  • 创建一个自定义组件,并在页面中使用它。
  • 实现父组件向子组件传递数据,子组件向父组件传递事件。

今日学习总结 📚

概念详细内容
自定义组件创建组件目录和文件,定义组件的配置、逻辑和样式
组件间通信父组件向子组件传递数据,子组件向父组件传递事件
组件的生命周期函数组件和页面的生命周期函数

结语

通过今天的学习,你应该掌握了如何在小程序中开发自定义组件,并了解了组件之间的数据和事件传递。这些技术可以帮助你构建更加模块化和高效的小程序。明天我们将探讨小程序的性能优化与最佳实践。如果你有任何疑问,欢迎关注并留言在我的公众号猫头虎技术团队。📩


这篇关于[猫头虎分享21天微信小程序基础入门教程] 第12天:小程序的自定义组件开发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/999118

相关文章

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

一文详解Java Stream的sorted自定义排序

《一文详解JavaStream的sorted自定义排序》Javastream中的sorted方法是用于对流中的元素进行排序的方法,它可以接受一个comparator参数,用于指定排序规则,sorte... 目录一、sorted 操作的基础原理二、自定义排序的实现方式1. Comparator 接口的 Lam

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间