微信小程序开发系列(三十四)·自定义组件的创建、注册以及使用(数据和方法事件的使用)

目录

1.  分类和简介

2.  公共组件

2.1  创建

2.2  注册

2.3  使用

 3.  页面组件

3.1  创建

3.2  注册

3.3  使用

4.  组件的数据和方法的使用

4.1  组件数据的修改

4.2  方法事件的使用


1.  分类和简介

        小程序目前已经支持组件化开发,可以将页面中的功能模块抽取成自定义组件,以便在不同的页面中重复使用;也可以将复杂的页面拆分成多个低耦合的模块,有助于代码维护。

开发中常见的组件有两种:

①  公共组件:将页面内的功能模块抽取成自定义组件,以便在不同的页面中重复使用

②  页面组件:将复杂的页面拆分成多个低耦合的模块,有助于代码维护

如果是公共组件,建议放在项目根目录的 components 文件夹中

如果是页面组件,建议放在对应页面的目录下

建议:一个组件一个文件夹

        开发中常见的组件主要分为公共组件页面组件两种,因此注册组件的方式也分为两种:

①  全局注册:在 app.json 文件中配置 usingComponents进行注册,注册后可以在任意页面使用。

②  局部注册:在页面的json文件中配置usingComponents进行注册,注册后只能在当前页面使用

        在 usingComponents 中进行组件注册时,需要提供自定义组件的组件名和自定义组件文件路径,在将组件注册好以后,直接将自定义组件的组件名当成组件标签名使用即可。

ps:之前的代码已被注释掉或者对本章节所要讲的代码无影响,每章代码(微信小程序开发系列)都是独立演示的。

页面都是随机的,不用一定要同种页面命名,主要在相同后缀。

2.  公共组件

2.1  创建

        点击文件夹,创建一个文件夹:

        右键刚才创建的文件夹,新建一个文件夹:

        如图点击:

        对于这一步老版本的可能就完成了,但对于新版本会有一个报错:

         解决方法就是custom-checkbox.json文件,找到:

  "component": true,

        将其删除,就可以了:

2.2  注册

        找到app.json文件:

  "usingComponents": {"custom-checkbox":"./components/custom-checkbox/custom-checkbox"}

2.3  使用

        找到custom-checkbox.wxml文件,编写:

<text>我是自定义组件</text>

        找到index.wxml文件,编写代码:

<custom-checkbox />

 3.  页面组件

3.1  创建

        按照下图操作:

3.2  注册

        随便写一点东西:

        找到index.json文件,进行局部注册:

3.3  使用

        由于是页面组件,只是在局部注册,只能在本页面使用。

注意:现如今版本在生成后会自己配置一个公共组件,如果不需要可以自行删除

        上面只是一些大概的使用演示。

        下面先演示,组件数据和方法的使用。

4.  组件的数据和方法的使用

需要在 组件.js 的Component方法中进行定义,Component 创建自定义组件。

①  data:定义组件的内部数据

②  methods :在组件中事件处理程序需要写到methods中才可以

        复制<custom-checkbox />组件,添加一个<view>组件,画一条线:

<view class="line"></view><custom-checkbox /><view class="line"></view><custom-checkbox />

padding: 50rpx;:这行代码为 page 元素设置了 50rpx 的内边距(padding)。padding 是指元素内容与边框之间的距离,这里的 50rpx 表示内边距的大小为 50 个逻辑像素(rpx)。


box-sizing: border-box;:这行代码设置了 box-sizing 属性为 border-box。box-sizing 属性用于指定如何计算一个元素的总宽度和高度。当设置为 border-box 时,元素的宽度和高度将包括 padding 和 border,而不会受到这些属性的影响,确保元素的尺寸始终保持一致。

        找到index.scss文件,添加代码:

page{padding: 50rpx;box-sizing: border-box;
}

        找到custom-checkbox.wxml文件,创建两个<view>并给其附上类名:

<view class="custom-checkbox-container"><view class="custom-checkbox-box"><checkbox checked="{{ isChecked }}"></view>
</view>

        找到custom-checkbox.scss文件,将view编写成行内块元素:

.custom-checkbox-container{display: inline-block;
}

        在 HTML 和 CSS 中,元素可以分为行内元素(inline elements)、块级元素(block-level elements)和行内块元素(inline-block elements),它们在页面布局和显示方面有不同的特性。


块级元素(Block-level Elements):
①  块级元素会在页面上显示为一块独立的元素,通常会占据一整行或者一定的宽度。 
常见的块级元素包括 <div>、<p>、<h1>~<h6>、<ul>、<ol>、<li> 等。 
②  块级元素可以容纳内联元素和其他块级元素。 

行内元素(Inline Elements):
①  行内元素在页面上显示时通常不会换行,它们会沿着文本流水平排列。 
常见的行内元素包括 <span>、<a>、<strong>、<em>、<img>、<input> 等。 
②  行内元素不能设置宽度和高度,且宽度和高度由其内容决定。 

行内块元素(Inline-block Elements):
①  行内块元素结合了行内元素和块级元素的特点,可以设置宽度和高度,且在同一行内显示。 
②  常见的行内块元素包括 <button>、<input>(当设置为 display: inline-block; 时)、<label> 等。 
        行内块元素可以像块级元素一样设置宽度和高度,同时又可以在同一行内显示,是一种灵活的元素类型。 

4.1  组件数据的修改

        data:定义组件的内部数据。

        找到custom-checkbox.js文件,找到data,更改代码为:

  /*** 组件的初始数据:用来定义当前组件内部所需要的数据*/data: {isChecked:false},

        找到custom-checkbox.wxml文件,创建一个绑定事件:

<view class="custom-checkbox-container"><view class="custom-checkbox-box"><checkbox checked="{{ isChecked }}" bind:tap="updateChecked"></checkbox></view>
</view>

4.2  方法事件的使用

        methods :在组件中事件处理程序需要写到methods中才可以。

         找到custom-checkbox.js文件,找到methods编写代码:

  /*** 组件的方法列表:在组件中所有的事件处理程序,都需要写到methods方法中*/methods: {// 更新复选框状态updateChecked(){// 通过取反isChecked的值来获取每次事件点击后的值// 例如初始时false,点击后为true,即对false取反this.setData({isChecked:!this.data.isChecked})}}

        点击复选框:

微信小程序开发_时光の尘的博客-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何通过小程序上的产品力和品牌力提升用户的复购能力?

随着网络购物小程序的发展以及内容电商、社交电商、垂直电商、品牌自营等多个细分类型的出现&#xff0c;小程序成为用户日常购物、大促囤货以及首发抢购的重要场景&#xff0c;市场竞争也逐渐激烈。如何在用户侧获得更多转化、留存与复购&#xff0c;成为企业品牌日益关注的话…

全国农产品价格分析预测可视化系统设计与实现

全国农产品价格分析预测可视化系统设计与实现 【摘要】在当今信息化社会&#xff0c;数据的可视化已成为决策和分析的重要工具。尤其是在农业领域&#xff0c;了解和预测农产品价格趋势对于农民、政府和相关企业都至关重要。为了满足这一需求&#xff0c;设计并实现了全国农产…

npm包、全局数据共享、分包

使用 npm 包 小程序对 npm 的支持与限制 目前&#xff0c;小程序中已经支持使用 npm 安装第三方包&#xff0c;从而来提高小程序的开发效率。但是&#xff0c;在小程序中使用npm 包有如下 3 个限制&#xff1a; ① 不支持依赖于 Node.js 内置库的包 ② 不支持依赖于浏览器内置…

客户端:Vue3,服务端:Node,基于Socket.IO实现单聊的功能

目录 1.介绍 2.环境搭建 3.本功能实现的主要逻辑 4.客户端和服务端的主要代码 5.效果展示 6.socket.io的运作原理 1.介绍 本篇主要讲讲基于Socket.IO实现单聊功能的主要实现&#xff0c;包括了客户端和服务端Node。 在这个即时通讯无处不在的时代&#xff0c;实时聊天功能…

利用express从0到1搭建后端服务

目录 步骤一&#xff1a;安装开发工具步骤二&#xff1a;安装插件步骤三&#xff1a;安装nodejs步骤四&#xff1a;搭建启动入口文件步骤五&#xff1a;启动服务器总结 在日常工作中&#xff0c;有很多重复和繁琐的事务是可以利用软件进行提效的。但每个行业又有自己的特点&…

wsl ubuntu 安装cuda nvcc环境

wsl ubuntu 安装cuda环境&#xff1a; CUDA Toolkit 11.6 Downloads | NVIDIA DeveloperDownload CUDA Toolkit 11.6 for Linux and Windows operating systems.https://developer.nvidia.com/cuda-11-6-0-download-archive?target_osLinux&target_archx86_64&Distri…

前后端分离:现代Web开发的协作模式

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

金鸣表格文字识别大师:解决医学文档PDF生僻字识别难题的利器

在医学领域&#xff0c;文档资料常常涉及到大量的专业术语和生僻字&#xff0c;例如唑吡坦、哌替啶、氟桂利嗪等。这些专业词汇对于非专业人士来说可能较为陌生&#xff0c;但在医学研究和临床实践中却具有不可或缺的重要性。然而&#xff0c;当这些生僻字出现在PDF文档中&…

Java面试题总结18之springcloud四种分布式事务解决方案

XA规范&#xff1a;分布式事务规范&#xff0c;规定了分布式事务模型 四个角色&#xff1a;事务管理器&#xff08;协调者TM&#xff09;&#xff0c;资源管理器&#xff08;参与者RM&#xff09;&#xff0c;应用程序AP&#xff0c;通信资源管理器CRM 全局事务&#xff1a;一…

Day46-http和www基础1

Day46-http和www基础1 1. 用户访问网站基本流程2. DNS系统解析基本流程3. DNS功能4. DNS树形结构介绍5. DNS解析流程&#xff08;核心&#xff09;6. 查看生产【授权DNS】并设置解析7. dig查看实际DNS解析8. 企业要不要搭建DNS服务器&#xff1f;9. HTTP协议10. HTTP协议版本11…

读算法的陷阱:超级平台、算法垄断与场景欺骗笔记12_移动平台(上)

1. 广告 1.1. 广告收入的来源 1.1.1. 向客户推荐广告投放网址 1.1.2. 提供有效提高产品广告点击率的咨询服务 1.1.3. 从合作伙伴的广告收入中捞上一笔 1.2. 对于广告主来讲&#xff0c;他们无意于与各家网站逐一谈判 1.2.1. 这种方式一是成本过高&#xff0c;二是费时费力…

Linux操作系统-汇编LED驱动程序基础

一、汇编LED原理分析 IMX6ULL-LED灯硬件原理分析&#xff1a; 1、使能时钟&#xff0c;CCGR0-CCGR6这7个寄存器控制着IMX6ULL所有外设时钟的使能。为了简单&#xff0c;设置CCGR0-CCGR6这7个寄存器全部为0XFFFFFFFF&#xff0c;相当于使能全部外设时钟。&#xff08;在IMX6ULL芯…