如何在微信小程序中使用组件?
何为组件
组件封装一段代码,不仅可以在其他的页面中可以使用,也可以在本页面中使用,不用再重复造“轮子”。组件可以提高代码的复用率,因此善于使用组件在微信小程序开发中是非常重要的。
创建组件
在项目的根目录下创建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,在这个平台上面的想象空间很大.腾讯云研究了一番之后,发现 ...
 
随机推荐
- swagger上的接口写入数据库
			
一.依赖 virtualenv -p python3.6 xx pip install scrapy pip install pymysql 二. 1.创建项目和spider1 scrapy star ...
 - 开机自动挂载本地yum源-20200402-V0.1
			
开机自动挂载本地yum源-20200402-V0.1 已下载本地iso /home/Kylin-Server-10-mips64-Release-Build04.08-lic-20200313.iso ...
 - python基础之错误、调试(异常处理)
			
在程序运行过程中,总会遇到各种各样的错误. 有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的. 有的错误是用户输入造成的,比如让用 ...
 - JRebel插件使用详解(IDEA热部署)(Day_44)
			
JRebel插件使用详解 简介 JRebel是一套JavaEE开发工具. Jrebel 可快速实现热部署,节省了大量重启时间,提高了个人开发效率. JRebel是一款JAVA虚拟机插件,它使得JAVA ...
 - GO学习-(28) Go语言操作influxDB
			
Go语言操作influxDB 本文介绍了influxDB时序数据库及Go语言操作influxDB. InfluxDB是一个开源分布式时序.事件和指标数据库.使用Go语言编写,无需外部依赖.其设计目标是 ...
 - Go语言协程并发---原子操作
			
package main import ( "fmt" "sync/atomic" ) /* 用原子来替换锁,其主要原因是: 原子操作由底层硬件支持,而锁则由操 ...
 - Go语言的函数06---闭包函数
			
package main import "fmt" /* 李逵和武松的Study方法的逻辑是几乎一模一样的 然而为了分别保存两人的学习进度,需要开辟两个全局变量,函数内部的需要使用 ...
 - lms框架应用服务接口和服务条目详解
			
目录 应用接口的定义 服务路由特性 服务条目 根据服务条目生成webAPI 服务条目的治理特性 缓存拦截 服务条目的例子 应用接口的实现 开源地址与文档 应用接口的定义 服务应用接口是微服务定义web ...
 - Torchvision模型微调
			
Torchvision模型微调 本文将深入探讨如何对 torchvision 模型进行微调和特征提取,所有这些模型都已经预先在1000类的magenet数据集上训练完成.将深入介绍如何使用几个现代的C ...
 - 在cuDNN中简化Tensor Ops
			
在cuDNN中简化Tensor Ops 在Tesla V100 GPU中引入神经网络模型以来,神经网络模型已迅速利用NVIDIA Tensor Cores进行深度学习.例如,基于Tensor Core ...