[猫头虎分享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

相关文章

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Python内存优化的实战技巧分享

《Python内存优化的实战技巧分享》Python作为一门解释型语言,虽然在开发效率上有着显著优势,但在执行效率方面往往被诟病,然而,通过合理的内存优化策略,我们可以让Python程序的运行速度提升3... 目录前言python内存管理机制引用计数机制垃圾回收机制内存泄漏的常见原因1. 循环引用2. 全局变