创建组件

新建目录

一个组件由四部分组成,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. [ACM训练] DEV C++如何处理不能调试
  2. spring aop搭建redis缓存
  3. MySQL_杭州北仓 12.3-12.7需求活动期间累计下单达到3天及以上的客户_20161212
  4. .Net中几种常见的页面跳转传值方法
  5. Yii中 RBAC(基于角色的访问控制权限)表结构原理分析
  6. [麦先生]学习PDO循序渐进使用方式
  7. Oracle数据库—— 游标的创建和应用
  8. jsp页面的使用
  9. C#的默认编码
  10. APUE《UNIX 环境高级编程》读后感
  11. 访问祖先类的虚方法(直接访问祖先类的VMT,但是这种方法在新版本中未必可靠)
  12. ubuntu下安装myeclipse
  13. App根据第,HTML5流行?
  14. css ie6最小高度问题
  15. shell获取系统时间
  16. mysql数据库的中文乱码问题的解决
  17. 在64位Ubuntu系统上安装32位程序包
  18. 微信JS-SDK选择相册或拍照并上传PHP实现
  19. Django学习(3)模板定制
  20. linux ---部署django项目篇

热门文章

  1. 【每日一题】【链表&amp;头插法&amp;ASCII码】【链表&amp;迭代器】2022年1月28日-NC1 大数加法
  2. this关键字在JAVA和JS中的异同
  3. git、docker、lunix、python、pycharm等常用命令整理
  4. pycharm 2021.2.1专业版破解
  5. view-design table的renderHeader中hover添加checkboxGroup遇到的问题
  6. SQLMap入门——获取当前网站数据库的名称
  7. redis(二)
  8. js 获取当前时间转换时间戳 (毫秒)
  9. 使用Jiralert实现AlertManager告警对接Jira
  10. 《Effective C++》关于const,define等总结