前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >干货|关于小程序自定义组件开发

干货|关于小程序自定义组件开发

原创
作者头像
用户10245619
发布于 2023-05-05 10:24:07
发布于 2023-05-05 10:24:07
42000
代码可运行
举报
文章被收录于专栏:小游戏开发小游戏开发
运行总次数:0
代码可运行

什么是小程序自定义组件?

小程序自定义组件是小程序开发中常用的一种技术,它可以将小程序中常用的UI组件封装成一个独立的组件,并在不同的页面中复用,从而提高小程序的代码可维护性和复用性。

自定义组件可以包含自定义的样式、属性、事件等,它们是一种独立的封装单元,可以在不同的页面中被重复使用。

自定义组件的基本结构

自定义组件的基本结构包括三个文件:.js、.wxml、.wxss。其中,.js文件包含组件的属性、方法和生命周期函数等,.wxml文件包含组件的UI模板,.wxss文件包含组件的样式。

例如下面就是一个简单的按钮自定义组件示例:

我们以上图为例进行说明:

组件模板文件(custom-button.wxml)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<view class="custom-button {{className}}" bindtap="handleTap">
  <text>{{text}}</text>
</view>

组件样式文件(custom-button.wxss)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.custom-button {
  display: inline-block;
  padding: 10rpx 20rpx;
  border-radius: 20rpx;
  background-color: #007aff;
  color: #fff;
  font-size: 28rpx;
}

.custom-button.active {
  background-color: #0059c6;
}

组件逻辑文件(custom-button.js)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Component({
  properties: {
    text: String,
    className: String,
  },
  methods: {
    handleTap() {
      this.triggerEvent('tap', {}, {});
    },
  },
});

在上面的示例中,自定义组件为一个简单的按钮组件,包含一个文本标签和一个点击事件处理函数。其中,properties属性用于定义组件的属性,methods属性用于定义组件的方法。

如何开发自定义组件?

介绍了什么是自定义组件后,再看看如何开发一个简单的自定义组件,步骤如下:

1. 创建自定义组件文件夹

在小程序项目的根目录下创建一个名为“components”的文件夹,用于存放自定义组件。在“components”文件夹下创建一个新的文件夹,例如“custom-button”,用于存放自定义组件。

2. 编写组件wxml模板

在“custom-button”文件夹下创建一个名为“custom-button.wxml”的文件,并编写组件的UI模板。例如,下面是一个简单的按钮组件的UI模板:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<view class="custom-button {{className}}" bindtap="handleTap">
  <text>{{text}}</text>
</view>

在上面的代码中,我们使用了小程序提供的标签和组件,例如view、text和bindtap等。

3. 编写组件wxss样式

在“custom-button”文件夹下创建一个名为“custom-button.wxss”的文件,并编写组件的样式。例如,下面是一个简单的按钮组件的样式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cssCopy code
.custom-button {
  display: inline-block;
  padding: 10rpx 20rpx;
  border-radius: 20rpx;
  background-color: #007aff;
  color: #fff;
  font-size: 28rpx;
}

.custom-button.active {
  background-color: #0059c6;
}

在上面的代码中,我们使用了小程序提供的样式属性和单位,例如display、padding、border-radius和background-color等。

4. 编写组件js逻辑

在“custom-button”文件夹下创建一个名为“custom-button.js”的文件,并编写组件的逻辑。例如,下面是一个简单的按钮组件的逻辑:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Component({
  properties: {
    text: String,
    className: String,
  },
  methods: {
    handleTap() {
      this.triggerEvent('tap', {}, {});
    },
  },
});

在上面的代码中,我们使用了小程序提供的Component构造函数来创建一个自定义组件,其中properties属性用于定义组件的属性,methods属性用于定义组件的方法。

5. 在页面中引入组件

在需要使用自定义组件的页面中,可以通过以下方式引入组件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<custom-button text="按钮" className="active" bind:tap="handleButtonTap"></custom-button>

在上面的代码中,我们使用了自定义组件的标签名称“custom-button”,并设置了组件的属性和事件处理函数。

自定义组件还能怎么用?

小程序自定义组件是一种非常有用的技术,可以将小程序中常用的UI组件封装成一个独立的组件,并在不同的页面中复用。除了上面介绍的如何开发自定义组件,包括创建组件文件夹、编写组件模板、样式和逻辑,以及在页面中引入组件。其实我们还可以将已经开发的自定义组件放到除微信小程序以为的小程序中甚至App中使用。

例如我们可以直接将已开发完成的自定义放到兼容微信小程序语法的工具中,例如 FinClip 除了能直接运行我们的自定义组件外,还可以将整个微信小程序运行起来,后续能够通过集成 SDK 的方式把小程序直接放到自有的 App 中运行,相当于复刻了微信的能力。对于既有小程序,也有 App 的公司来讲一次开发实现了多端运行。

当然自定义组件的开发和使用还有很多值得探索的地方,希望了解的小伙伴能够交流起来。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
微信小程序自定义组件详解
从小程序基础库版本 1.6.3 开始,小程序支持简洁的组件化编程。所有自定义组件相关特性都需要基础库版本 1.6.3 或更高。
前端开发博客
2020/11/04
2K0
微信小程序自定义组件详解
微信小程序【常用组件及自定义组件】
微信小程序入门的文章,其实暂时就更新到这里了,还有一个生命周期的内容,感觉当初整理的不是很好就不更新了,学完了 WXML、WXSS、一些常用组件,还有事件绑定,其实一个较为不错的页面已经能自己搭建出来了,如果你还想继续往后面研究,我给一下方向就是,可以开始看 与后台交互的内容了,发送异步请求,对数据进行回显等,回显内容时,你就又可以开始考虑用什么别的组件,可以让页面的数据加载或者观看更加顺滑,美观,当然有很多小伙伴都是后端,所以,可以自己搭个后台,试着弄用户登录授权这块,这块算是小程序一个重要的点,要好好研究一下,以后要做的事情,就和传统的后端基本一样了。我的文章都是根据官网写的原生写法,当然你也可以看一下一些小程序框架,或者看一看 ES6 的内容,毕竟我也是个后端,也没细细研究前端的内容,有什么想法或者意见,可以在公众号菜单页面直接给后台发文字,或者发送邮件:ideal_bwh@163.com
BWH_Steven
2020/09/18
1.9K0
[猫头虎分享21天微信小程序基础入门教程] 第12天:小程序的自定义组件开发
大家好,我是猫头虎,一名全栈软件工程师。今天我们继续微信小程序的学习,重点了解如何开发自定义组件。自定义组件可以提高代码的复用性和模块化程度,使开发更加高效和灵活。🚀
猫头虎
2024/05/26
1470
微信小程序自定义组件
微信小程序自定义组件 一. 创建自定义组件 类似于页面,一个自定义组件由 json wxml wxss js 4个文件组成 二.组件声明 首先需要在自定义组件所在的 json 文件中进行自定义组件声明 { "component": true } 三.编辑组件 同时,还要在 wxml 文件中编写组件模板,在 wxss 文件中加入组件样式 wxml与xcss和普通页面设置差不多 wxml <!-- 这是自定义组件的内部WXML结构 --> <view class="inner"> {{innerText
小小咸鱼YwY
2020/06/19
8120
小程序自定义modal弹窗封装实现
小程序官方提供了 wx.showModal 方法,但样式比较固定,不能满足多元化需求,自定义势在必行~
solocoder
2022/04/06
4K2
小程序自定义modal弹窗封装实现
小程序 | 11-组件化
自定义组件由 json、wxml、wxss、js 四个文件组成,我们通常是在根目录下创建一个文件夹——components,在该文件夹中存放我们自定义的公共组件。
CnPeng
2021/05/17
2.5K0
小程序 | 11-组件化
微信小程序的自定义组件(入门)
我们知道,在我们设计微信小程序时,我们经常会用到开发者工具中提供的许多标签,例如:
面向对象思考
2020/07/23
8210
小程序项目实战-第二篇
本篇目录: 初始化样式 设置主题颜色 添加自定义组件 搜索框组件案例 初始化样式 在小程序wxss中没有全局选择器,如:*{padding:0;}是错误的。 在app.wxss中做代码样式初始化处理: view,view,text,swiper,swiper-item,image{ padding: 0; margin: 0; box-sizing: border-box; } 设置主题颜色 在app.wxss中定义主题颜色: /*主题颜色 通过变量来实现*/ page{ /
全栈开发日记
2022/05/13
3910
小程序项目实战-第二篇
小程序之首页搭建——Flex布局
布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性
用户10196776
2023/10/17
5090
小程序之首页搭建——Flex布局
微信小程序自定义组件(Toast)
微信官方的wx.showToast这个API用起来限制性太强,在正式项目上根本用不上,但是又没有其他组件或API可以替代,所以就自己通过网上大神的方法自己写了一个自定义的toast组件。
honey缘木鱼
2018/08/22
2.7K0
微信小程序自定义组件(Toast)
微信小程序 自定义组件样式
组件对应 wxss 文件的样式,只对组件wxml内的节点生效。编写组件样式时,需要注意以下几点:
天天_哥
2018/11/11
2.9K0
【愚公系列】《微信小程序与云开发从入门到实践》030-关于自定义组件的高级用法
在微信小程序的开发中,自定义组件是实现灵活、可复用代码的重要工具。随着小程序生态的不断发展,开发者对于组件的需求也日益增长,从基础的组件使用到高级的技巧与模式,掌握自定义组件的高级用法已成为提升开发效率和用户体验的关键所在。
愚公搬代码
2025/01/21
2240
微信小程序【事件绑定】入门一篇就搞定
上述代码就四行,首先是一个 input 输入框,目的是用来输入一些值,同时下面标签就会显示,接着是两个 button 用来分别执行 +1 或者 -1 的操作,最后一个 view 标签就是为了 进行数据输入或变化的回显
BWH_Steven
2020/09/10
2.3K0
微信小程序【事件绑定】入门一篇就搞定
微信小程序中自定义组件的使用
在开发过程中,加入有这样一种场景,就是在开发的过程中,我们一直要使用一些相同或者类似的结构,我们就可以自定义模块,方便使用,以及后期的维护,了解vue的同学就知道,其中此方法类似vue中的插槽(slot);
天天_哥
2018/09/29
9890
微信小程序入门之自定义组件(05)
类似vue或者react中的自定义组件 ⼩程序允许我们使⽤⾃定义组件的⽅式来构建⻚⾯。
海拥
2021/08/23
9250
微信小程序自定义组件
其中,components为组件目录,nodemodules为模块目录,pages为小程序的页面目录,utils为一些基础功能的封装。好比安装的第三方百度统计功能在此。
mySoul
2018/09/15
2.8K0
探索微信小程序的奇妙世界:从入门到进阶
https://cloud.tencent.com/developer/article/2465647?shareByChannel=link
忆愿
2024/12/01
2390
探索微信小程序的奇妙世界:从入门到进阶
微信小程序组件开发
1.mysearch.json 把 component设为true,默认就是true
治电小白菜
2020/08/25
1.5K0
微信小程序组件开发
小程序-实现自定义组件以及自定义组件间的通信
对于组件的封装,在小程序当中对于多个页面的复用有着重要的作用,小程序中注册的每个页面都是独立的
itclanCoder
2020/11/09
2.8K0
小程序-实现自定义组件以及自定义组件间的通信
微信小程序自定义组件(二)
两个<custom-ul>以及<custom-li>两个组件都为自定义组件,如果进行通信会非常的难以操作,至此通过relations完成子父组件的定义,简化通信。
mySoul
2018/09/18
1.1K0
相关推荐
微信小程序自定义组件详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验