如何在微信小程序中使用组件?
何为组件
组件封装一段代码,不仅可以在其他的页面中可以使用,也可以在本页面中使用,不用再重复造“轮子”。组件可以提高代码的复用率,因此善于使用组件在微信小程序开发中是非常重要的。
创建组件
在项目的根目录下创建components文件夹,用于存放项目中所有的组件,组件拥有wxml、wxss、js、json文件

你可以像普通的pages一样对待组件
<view class="event-items">
......
</view>
引入组件
若在index.wxml中引入组件,需要在json文件中添加组件的名称以及组件的路径,
{
"usingComponents": {
"event-item": "../../components/event-item/event-item"
}
}
在index.wxml中使用<event-item>标签,即可使用组件,
<view class="index">
<event-item></event-item>
</view>
slot
何为slot
有时候需要为组件插入更多的节点内容,就需要在组件的指定位置预留一个位置,让外部添加更多的节点内容进来,这时使用slot标签作为占位符的存在。
使用slot
为组件中添加slot标签,
<view class="event-items">
<view>hell world</view>
<!-- slot -->
<slot></slot>
</view>
现在,为组件中添加更多的节点内容,
<view class="index">
<event-item>
<view>more node</view>
<view>do you have a nice day?</view>
<view>
you say:
<view>yes of course!</view>
</view>
</event-item>
</view>
properties
有时候需要外部为组件传值,需要为组件的properties添加字段
Component({
properties: {
itemType: {
type: String,
value: 'wait' // 默认值
},
eventItems: { // 数组对象,需要由外部提供给组件
type: Array
}
}
}
最好为每一个properties的元素设置type,用于指定该元素的数据属于什么类型,否则会出现Component is not found in path "components/event-item/event-item错误。
properties的属性符合驼峰命名法,而使用组件时需要使用kebab-case命名法,即itemType对应为item-type,
<view class="index">
<event-item item-type="{{'wait'}}" event-items="{{['one', 'two', 'three']}}">
<view>more node</view>
<view>do you have a nice day?</view>
<view>
you say:
<view>yes of course!</view>
</view>
</event-item>
</view>
获取到外部传递的值之后,可以做一些业务处理了,
<button wx:if="{{itemType == 'wait'}}" size="mini" bindtap="completeEventItem">√</button>
<button wx:else size="mini" bindtap="removeEventItem">×</button>
传递值可以控制组件内部发生不一样的变化(结果),实现组件的灵活配置和提升代码的复用率。
如何在微信小程序中使用组件?的更多相关文章
- 微信小程序中的组件使用1
不管是vue还是react中,都在强调组件思想,同样,在微信小程序中也是使用组件思想来实现页面复用的,下面就简单介绍一下微信小程序中的组件思想. 组件定义与使用 要使用组件,首先需要有组件页面和使用组 ...
- 微信小程序中的组件
前言 之前做小程序开发的时候,对于开发来说比较头疼的莫过于自定义组件了,当时官方对这方面的文档也只是寥寥几句,一笔带过而已,所以写起来真的是非常非常痛苦!! 好在微信小程序的库从 1.6.3 开始,官 ...
- 微信小程序中的组件使用2
需求 上面两个页面是同一个小程序的不同页面,两个页面中都是用到了label,有相似的地方,但是也有不同之处,这个时候,如果我们想要将这些label做出组件,然后复用,有该怎么做呢? 基础组件 首 ...
- 微信小程序中 input组件影响页面样式的问题
input组件有个默认的宽高,好像是不能清除的,在使用flex布局的时候,发现会影响到页面的布局,以为是flex布局的问题,改为float布局试了下也是同样的问题,试着把input标签换成别的标签,问 ...
- 微信小程序中的自定义组件
微信小程序中的组件 前言 之前做小程序开发的时候,对于开发来说比较头疼的莫过于自定义组件了,当时官方对这方面的文档也只是寥寥几句,一笔带过而已,所以写起来真的是非常非常痛苦!! 好在微信小程序的库从 ...
- 微信小程序中悬浮窗功能的实现(主要探讨和解决在原生组件上的拖动)
问题场景 所谓悬浮窗就是图中微信图标的按钮,采用fixed定位,可拖动和点击. 这算是一个比较常见的实现场景了. 为什么要用cover-view做悬浮窗?原生组件出来背锅了~ 最初我做悬浮窗用的不是c ...
- 在微信小程序中使用富文本转化插件wxParse
在微信小程序中我们往往需要展示一些丰富的页面内容,包括图片.文本等,基本上要求能够解析常规的HTML最好,由于微信的视图标签和HTML标签不一样,但是也有相对应的关系,因此有人把HTML转换做成了一个 ...
- 微信小程序之swiper组件高度自适应
微信小程序之swiper组件高度自适应 要求: (顶部广告栏 ) 改变swiper组件的固定高度,使之随内部每张图片的高度做自适应 原理: 图片加载完之后,获取图片的原始宽高,根据宽高比,计算出适应后 ...
- 微信小程序中如何使用WebSocket实现长连接(含完整源码)
本文由腾讯云技术团队原创,感谢作者的分享. 1.前言 微信小程序提供了一套在微信上运行小程序的解决方案,有比较完整的框架.组件以及 API,在这个平台上面的想象空间很大.腾讯云研究了一番之后,发现 ...
随机推荐
- DES加密 超详解 及 C++编程实现
参考资料: 1.计算机与软件学院实验报告管理系统资料 2.强烈推荐观看:<信息安全技术>课程微课设计 简介 什么是DES DES全称为Data Encryption Standard,即数 ...
- sersync 实时同步网站数据
sersync同步实战 sersync是基于inotify和srync的二次开发,代码托管在github上面在rsync的客户端上安装,下载地址: https://raw.githubusercont ...
- Centos7 搭建prometheus+Grafana监控
https://baijiahao.baidu.com/s?id=1676883786156871051&wfr=spider&for=pc node scrape_configs ...
- 10.1 ifconfig:配置或显示网络接口信息
ifconfig命令 用于配置网卡IP地址等网络参数或显示当前网络的接口状态,其类似于Windows下的ipconfig命令,这两个命令很容易混淆,读者需要区分一下.此外,ifconfig命令在配置网 ...
- kubernetes 降本增效标准指南|理解弹性,应用弹性
弹性伸缩在云计算领域的简述 弹性伸缩又称自动伸缩,是云计算场景下一种常见的方法,弹性伸缩可以根据服务器上的负载.按一定的规则.进行弹性的扩缩容服务器. 弹性伸缩在不同场景下的含义: 对于服务运行在自建 ...
- eclispe--tomcat配置
eclipse安装tomcat方法: 1.下载tomcat,从官网下载,地址:http://tomcat.apache.org/download-70.cgi 2.将下载下来的压缩包解压,放在自己想放 ...
- Go语言的函数03---返回值
package main import "fmt" /*无返回值*/ func Sub1(a, b int) { ret := a - b fmt.Println("a- ...
- 查询rman备份信息常用指令
查询rman备份信息常用指令 ----登陆到rman $rman target / ----以精简的格式查看备份信息 RMAN> list backup of database summar ...
- PyTorch 图像分类
PyTorch 图像分类 如何定义神经网络,计算损失值和网络里权重的更新. 应该怎么处理数据? 通常来说,处理图像,文本,语音或者视频数据时,可以使用标准 python 包将数据加载成 numpy 数 ...
- GPU编程和流式多处理器
GPU编程和流式多处理器 流式多处理器(SM)是运行CUDA内核的GPU的一部分.本章重点介绍SM的指令集功能. 流式多处理器(SM)是运行我们的CUDA内核的GPU的一部分.每个SM包含以下内容. ...