组件定义流程

1)为了方便管理组件文件,创建一个目录来存放组件(可省略该步骤)

组件与页面都有相同的配置,包括的文件有:wxml、wxss、js、json 四个文件。

2)编写组件

编写组件与编写页面一样,没有什么区别。

3)引入组件

哪个页面需要用到组件,就要在哪个页面下的 json 文件中配置以下信息:

{
"usingComponents": {
"event-item": "../../components/event-item/event-item"
}
}

usingComponents字段下包含了多个组件的配置信息,包括组件名称(可自定义)、组件路径(组件的相对路径)。组件名称可以与组件的文件名不同,在 wxml 使用组件时以配置的组件名称为主。

4)使用组件

<view class="index">
<event-item></event-item>
</view>

灵活的组件

slot

slot 允许在使用组件时插入更多的内容。简单来讲,就是在组件内预设一个位置,使用组件时插入更多的内容到组件内。这些附加的内容位置取决于 slot 在组件内的预设位置。实际上,slot 就是组件的内容占位符。

使用流程

1)在组件中添加 slot 标签,预设后期使用组件时内容显示在组件的具体位置

<view class="event-items">

  <view>hell world</view>

  <!-- slot -->
<slot></slot> </view>

2)使用组件时,在组件中插入附加的内容

<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非常重要。properties 与 Vue 中的 Props 概念相同,properties 可以作为组件的参数接收外部传递进来的值。

使用流程

1)在组件 JS 文件中,Component 内添加 properties 字段。properties 是一个字典,可以接收许多值

Component({
properties: {
itemType,
eventItems
}
}

2)给每一个 properties 字段添加一个 type 属性,指定数据类型

Component({
properties: {
itemType: {
type: String
},
eventItems: {
type: Array
}
}
}

3)可以给 properties 字段添加一个 value 属性,指定默认值(可省略该步骤)

Component({
properties: {
itemType: {
type: String,
value: 'primary'
},
eventItems: {
type: Array
}
}
}

4)注意事项:字段名称必须采用驼峰命名法,组件传递值时必须采用短横线命名法,也就是说 itemType 对应 item-type。

5)使用组件,传递值

<view class="index">
<event-item item-type="{{'wait'}}" event-items="{{['one', 'two', 'three']}}"></event-item>
</view>

传递值可以控制组件内部发生不一样的变化,实现组件的灵活配置。

微信小程序创建组件的流程,以及组件 properties 和 slot的更多相关文章

  1. 微信小程序开发的基本流程

    微信小程序开发的基本流程 一,微信小程序简介 1,微信小程序简称小程序,张小龙在微信公开课 Pro 上发布的小程序正式上线,时间是2017年1月9日. 2,微信小程序这个词可以分解为“微信”和“小程序 ...

  2. 微信小程序简单封装图片上传组件

    微信小程序简单封装图片上传组件 希望自己 "day day up" -----小陶 我从哪里来 在写小程序的时候需要上传图片,个人觉得官方提供的 Uploader 组件不是太好用, ...

  3. 微信小程序把玩(十七)input组件

    原文:微信小程序把玩(十七)input组件 input输入框使用的频率也是比较高的...样式的话自己外面包裹个view自己定义.input属性也不是很多,有需要自己慢慢测,尝试 主要属性: wxml ...

  4. 微信小程序把玩(十一)icon组件

    原文:微信小程序把玩(十一)icon组件 这些是提供的所支持的图标样式,根据需求在此基础上去修改大小和颜色. 主要属性: 使用方式: wxml <!--成功图标--> <icon t ...

  5. 微信小程序把玩(十三)progress组件

    原文:微信小程序把玩(十三)progress组件 进度条描述的是一种加载的状态,比如软件升级下载进度, 视频,图片下载进度- 主要属性: wxml <progress percent=" ...

  6. 微信小程序把玩(九)scroll-view组件

    原文:微信小程序把玩(九)scroll-view组件 scroll-view为滚动视图,分为水平滚动和垂直滚动.注意滚动视图垂直滚动时一定要设置高度否则的话scroll-view不会生效.滚动视图常用 ...

  7. 微信小程序把玩(十)swiper组件

    原文:微信小程序把玩(十)swiper组件 Android写过轮播图的痛楚只有写过的知道,相对还是比较麻烦的,并没有一个轮播图组件,有个ViewPage也需要自己定制,IOS则多用UIScroller ...

  8. 微信小程序把玩(八)view组件

    原文:微信小程序把玩(八)view组件 刚看到这个效果的时候还真是和ReactNative的效果一致,属性也基本的一样. view这个组件就是一个视图组件使用起来非常简单. 主要属性: flex-di ...

  9. 微信小程序~项目步骤和流程

    从运营的角度讲制作,不是从程序的角度讲开发,所以简单明晰,通俗易懂,小白也能按照流程完成制作. 微信小程序制作步骤及流程 1.确定好微信小程序的的定位和目的 如行业,功能,内容,目标用户,目标市场,意 ...

  10. 微信小程序小结(2) ------ 自定义组件

    在小程序中有模板跟组件的概念.但模板更多的用于内容的展示,更复杂的交互逻辑就没办法了.所以在小程序中也定义了一些组件来解决一些简单逻辑的功能. 但有时预定义的组件并不能满足我们的需求,这时就需要我们自 ...

随机推荐

  1. coding++: java 操作FastDFS(上传 | 下载 | 删除)

    package cn.com.soundrecording.controller; import cn.com.soundrecording.utils.FastDFSClient;import co ...

  2. np.r_、np.c_、np.concatenate和np.append

    np.r_是按行连接两个矩阵,就是把两矩阵上下相加,要求列数相等,最终结果的行数为两个矩阵行数和. np.c_是按列连接两个矩阵,就是把两矩阵左右相加,要求行数相等,最终结果的列数等于两矩阵的列数和. ...

  3. JUnit 5 - Nested Test 内嵌测试

    本文地址:https://www.cnblogs.com/hchengmx/p/15158658.html 1. Nested用来解决什么问题 简单地说,Nested用来解决,随着Case越来越多,C ...

  4. JavaScript易错知识点

    JavaScript易错知识点整理1.变量作用域上方的函数作用域中声明并赋值了a,且在console之上,所以遵循就近原则输出a等于2. 上方的函数作用域中虽然声明并赋值了a,但位于console之下 ...

  5. UiPath文本操作Set Text的介绍和使用

    一.Set Text的介绍 向输入框/文本框写入文本的一种操作 二.Set Text在UiPath中的使用 1.打开设计器,在设计库中新建一个Sequence,为序列命名及设置Sequence存放的路 ...

  6. Linux文件的特殊属性

    文件的特殊属性 作用:文件的权限不能显示root用户,为了防止root用户的误操作,所以需要特殊属性来防止root用户的误操作. chattr工具: 可以给文件添加特殊的属性 +i:对这个文件不能修改 ...

  7. -bash: /usr/local/maven/apache-maven-3.8.1/bin/mvn: 权限不够

    chmod a+x /usr/local/maven/apache-maven-3.8.1/bin/mvn

  8. ArrayList分析1-循环、扩容、版本

    ArrayList分析1-循环.扩容.版本 转载请注明出处 https://www.cnblogs.com/funnyzpc/p/16407733.html 前段时间抽空看了下ArrayList的源码 ...

  9. 练习-用if语句替换三元运算符和选择结构-标准的switch语句

    if语句和三元运算符的互换 在某些简单的应用中,if语句是可以和三元运算符互换使用的 public static void main(String[] args) { int a = 10; int ...

  10. SpringBoot数据库管理 - 用Liquibase对数据库管理和迁移?

    Liquibase是一个用于用于跟踪.管理和应用数据库变化的开源工具,通过日志文件(changelog)的形式记录数据库的变更(changeset),然后执行日志文件中的修改,将数据库更新或回滚(ro ...