创建组件

新建目录

一个组件由四部分组成,js、json、wxml、wxss,组件其实就是页面中被拆分出来的,可以在多个页面中共同使用的小块 UI,所以看起来和新建一个页面的四个文件一样:

引入组件

找到需要使用该组件的页面,打开其 json 文件配置以下信息:

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

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

使用组件

<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
}
}
}

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

4️⃣ 使用组件,传递值:

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

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

创建微信小程序组件的步骤的更多相关文章

  1. 微信小程序从零开始开发步骤(二)创建小程序页面

    上一章注册完小程序,添加新建的项目,大致的准备开发已经完成,本章要分享的是 要创建一个简单的页面了,创建小程序页面的具体几个步骤: 1. 在pages 中添加一个目录 选中page,右击鼠标,从硬盘打 ...

  2. 微信小程序从零开始开发步骤(八)引入框架WeUI

    首先来看下WeUI的官方介绍: WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一.在微信小程序的开发过程中,涉及到的前端 ...

  3. 微信小程序从零开始开发步骤(三)底部导航栏

    上一章节,我们分享了如何创建一个新的页面和设置页面的标题,这一章我们来聊聊底部导航栏是如何实现的.即点击底部的导航,会实现不同对应页面之间的切换. 我们先来看个我们要实现的底部导航栏的效果图:(三个导 ...

  4. 微信小程序从零开始开发步骤(三)

    上一章节,我们分享了如何创建一个新的页面和设置页面的标题,这一章我们来聊聊底部导航栏是如何实现的.即点击底部的导航,会实现不同对应页面之间的切换. 我们先来看个我们要实现的底部导航栏的效果图:(三个导 ...

  5. 微信小程序从零开始开发步骤(七)引入外部js 文件

    上一章讲到小程序页面的四种常见的跳转的方法,这一章写如何引入一个外部的js文件,既utils文件夹的用处,其实步骤很简单: 1:准备好外部想要引入的外部文件,命名为util.js,并且填充固定的文件内 ...

  6. 微信小程序从零开始开发步骤(六)4种页面跳转的方法

    用法:用于页面跳转,相当于html里面的<a></a>标签. API教程:https://mp.weixin.qq.com/debug/wxadoc/dev/component ...

  7. 微信小程序从零开始开发步骤(五)轮播图

    上一章完成页面自定义分享,这一章来说说轮播图,最常见的一个轮播图,中间带小圆点,自动轮播. Swiper是滑动特效插件,面向手机.平板电脑等移动终端.能实现触屏焦点图.触屏Tab切换.触屏多图切换等常 ...

  8. 微信小程序从零开始开发步骤(四)自定义分享的功能

    上一章节,实现了小程序的底部导航的功能,这一节开始实现一些简单的功能.本章节介绍的是小程序的自定义分享的功能. 可以分享小程序的任何一个页面给好友或群聊.注意是分享给好友或群聊,并没有分享到朋友圈.一 ...

  9. 微信小程序从零开始开发步骤(一)搭建开发环境

    从零到有写一个小程序系列专题,很早以前就想写来分享,但由于项目一直在进展,没有过多的时间研究技术,现在可以继续分享了. 1:注册 用没有注册过微信公众平台的邮箱注册一个微信公众号, 申请帐号 ,网址: ...

  10. 微信小程序从零开始开发步骤(二)

    上一章注册完小程序,添加新建的项目,大致的准备开发已经完成,本章要分享的是要创建一个简单的页面了,创建小程序页面的具体几个步骤: 1. 在pages 中添加一个目录 选中page,右击鼠标,从硬盘打开 ...

随机推荐

  1. java (String)强制转换与toString()方法

    1. Object.toString()介绍 Object中是自带有toString()方法的,也就是说java中的所有类的对象都是可以转换为字符串的. 首先,先看看Object.toString() ...

  2. feDisplacementMap滤镜实现水波纹效果,计算动态值。

    参考资料 https://www.zhangxinxu.com/wordpress/2017/12/understand-svg-fedisplacementmap-filter/ 该文章已经讲的特别 ...

  3. ORM增删改查 django请求生命周期图 django路由层及反向解析

    目录 可视化界面之数据增删改查 1.建表 2.数据展示功能 3.数据添加功能 4.数据编辑功能 5.数据删除功能 django请求生命周期流程图 django路由层 1.路由匹配 2.转换器功能 pa ...

  4. hashlib模块、subprocess模块、loggin日志模块及实战

    hashlib加密模块 目录 hashlib加密模块 加密补充说明 subprocess模块 logging日志模块 日志的组成 日志配置字典 配置参数 1.何为加密 将明文数据处理成密文数据 让人无 ...

  5. Linux第四章 进程

    4.1 前言 本章讨论进程概念.资源.属性. 4.2 内核和进程的关系 当系统启动时,内核代码被加载到内存,初始化之后,启动第一个用户进程,然后内核的代码就等着用户进程来调度了. 4.3 进程是程序的 ...

  6. 【WPF】自定义一个自删除的多功能ListBox

    原文地址 https://www.cnblogs.com/younShieh/p/17008534.html 如果本文对你有所帮助,不妨点个关注和推荐呀,这是对笔者最大的支持~ 我需要一个ListBo ...

  7. c语言基础理解(原创)

          家中小女初上大学开学计算机课程,学习C语言时遇到困难,为帮助她尽快入门,特写了这篇基本概念理解,希望帮她快速认识清楚C语言的本质.发到博客园上,也帮助同样的C语言初学者轻松掌握C语言的本质 ...

  8. [图像处理] YUV图像处理入门2

    1 分离YUV420中YUV分量 本程序中的函数主要是将YUV420P视频数据流的第一帧图像中的Y.U.V三个分量分离开并保存成三个文件.函数的代码如下所示: /** * @file 1 yuv_sp ...

  9. python进阶之路21 正则应用 第三方模块之requests模块 openpyxl模块 简易爬虫(pandas)

    作业讲解 """ 网络爬虫没有我们现在接触的那么简单 有时候页面数据无法直接拷贝获取 有时候页面还存在防爬机制 弄不好ip会被短暂拉黑 """ ...

  10. UVA12412 A Typical Homework (a.k.a Shi Xiong Bang Bang Mang) 代码

    #include <bits/stdc++.h> #define int long long #define judge(a,func) case a:func();break; usin ...