
大家好,我是猫头虎,一名全栈软件工程师。今天我们继续微信小程序的学习,重点了解如何开发自定义组件。自定义组件可以提高代码的复用性和模块化程度,使开发更加高效和灵活。🚀
首先,在项目根目录下创建一个 components 文件夹,在其中创建一个自定义组件,例如 my-component:
components/
my-component/
my-component.js
my-component.json
my-component.wxml
my-component.wxss在 my-component.json 文件中定义组件的基本配置:
{
"component": true
}在 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;
}在使用组件的页面中注册组件。在页面的 json 文件中添加如下配置:
{
"usingComponents": {
"my-component": "/components/my-component/my-component"
}
}在页面的 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');
}
});概念 | 详细内容 |
|---|---|
自定义组件 | 创建组件目录和文件,定义组件的配置、逻辑和样式 |
组件间通信 | 父组件向子组件传递数据,子组件向父组件传递事件 |
组件的生命周期函数 | 组件和页面的生命周期函数 |
通过今天的学习,你应该掌握了如何在小程序中开发自定义组件,并了解了组件之间的数据和事件传递。这些技术可以帮助你构建更加模块化和高效的小程序。明天我们将探讨小程序的性能优化与最佳实践。