标签: 小程序 component


需求

小程序开发时通过自定义组件将频繁使用的模块抽取出来,简化代码;

实现难点

小程序文档相关的说明太过于详细,以至于不能快速上手使用,因此这里从顽意小程序中拿出一个例子来说明如何使用小程序的自定义组件功能

知识准备

  • 组件与页面一样由四个文件组成,组件与页面写法相同,组件模板与组件数据结合后生成的节点树,将被插入到组件的引用位置上,组件提供slot节点承载引用组件时提供的子节点;

代码实现

自定义组件

  1. 使用组件前需要在组件的json文件中声明,component字段设置为true
{"component": true,"usingComponents": {}
}
复制代码

2.wxml中编写组件模板,wxss加入样式

<wxs module="filters" src="../../utils/numberic.wxs"/>
<view class="orderCard" ><view class='commodity flex-box ai-s'><image class='commodityImg' src="{{item.image}}"></image><view class='content flex-1'><view class='commodityName'>{{item.name}}</view><view class='commoditySpecification'>{{item.standardName}}</view><view class='commoditySpecification'>{{item.standardName}}</view></view><view class='price'>¥ {{ item.price }}</view></view><view class='money flex-box jc-e' wx:if="{{showTotalPrice}}"><view class='amount'>共{{item.num}}件商品</view><view class='allPay'>实付:<text class='allPayMoney'>¥ {{ price }}</text></view></view><view class='btnBox flex-box jc-e ai-ce' wx:if="{{showBtn}}"><view class='btn seeMove' wx:if="{{type === 'DELIVER' || type === 'RECEIVE'}}">查看物流</view><view class='btn return' wx:if="{{type === 'CREATE'}}" style="color:'#ff3366'" data-id="{{orderid}}" catchtap="cancleOrder"> 取消订单</view> </view>
</view>
复制代码

页面引用组件

1.在页面的json文件中配置引入的组件

{"usingComponents": {"orderCard": "../../base/orderCard/orderCard"}
}
复制代码

2.页面中使用自定义组件

<view class='orderCardBox' wx:for="{{totalData}}" wx:key="{{item.orderId}}" ><orderCard bindtap="switchToOrderDetail" item="{{item.shoppingCartPageWebVO}}" type="{{item.orderType}}" orderid="{{item.orderId}}" data-orderid="{{item.orderId}}" price="{{item.price}}"bind:cancleOrder="refreshPage"></orderCard>
</view>
复制代码

父组件与子组件的通信

1.父组件通过属性将数据传到子组件中,需要通过Component构造器的properties字段定义,才能完成属性名到属性的映射; 2.子组件通过事件传递数据到父组件: - this.triggerEvent(' ',{},{}),第一个参数是自定义事件名称,这个名称是在页面调用组件时bind的名称,第二个对象传递需要的数据,第三个参数事件选项包括事件冒泡、捕获等设置;

Component({options: {addGlobalClass: true, //使用全局的css样式},/*** 组件的属性列表*/properties: {item: {type: Object,value: true,},type: {type: String,value: true,},orderid: {type: String,},price: {type: Number,value: 0,}},/*** 组件的初始数据*/data: {showBtn: true,showTotalPrice: true},/*** 组件的方法列表*/methods: {cancleOrder: function (e) {var myEventDetail = {val: 'cancle'} ;this.triggerEvent('cancleOrder', myEventDetail) //cancleOrder是自定义名称事件,父组件中使用}}})复制代码

参考文档

1.更加详细深入的介绍可以参考小程序开发文档;

往期精彩回顾

  • Ant Design 组件 —— Form表单(一)
  • Ant Design 组件 —— Form表单(二)
  • CMS管理后台入门指南 (Ant Design Pro v2.0)
  • 实现点击下载文件的几种方法
  • 在https中引入http资源所导致的问题

  • 作者简介:黄杰,芦苇科技web前端开发工程师 专注于前端领域框架、交互设计、图像绘制、数据分析等研究,访问 www.talkmoney.cn 了解更多。

如何使用小程序自定义组件功能相关推荐

  1. app vue 真机运行_uni-app黑魔法:小程序自定义组件运行到H5平台

    引言 移动互联网的初期,囿于设备硬件性能限制,流量以原生App为主,iOS.Android是当时两大平台. 随着硬件及OS的更新换代,H5可承载的体验逐步完善,为提高开发效率.节约资源(复用代码)以及 ...

  2. 微信小程序自定义组件方案

    前言:小程序已于11月初开放了小程序组件功能,但事件方面还不是很完善,有的组件暂时可能还是要用其他方式来实现,这里简单记录下开发小程序自定义组件的要点. 在小程序官方开发组件开发功能之前,自定义组件的 ...

  3. 微信小程序--自定义组件(超详细 从新建到使用)

    微信小程序–自定义组件 微信小程序官网介绍! 本文提供给急需使用自定义组件人群,以下是博主个人理解和案例!可以辅助官网来看 介绍: 从小程序基础库版本 1.6.3 开始,小程序支持简洁的组件化编程.所 ...

  4. 微信小程序 组件和slot_微信小程序自定义组件详解

    自定义组件能够帮我们更好的复用代码和重构简化代码复杂度.一起来学习一下小程序自定义组件的内容吧. 从小程序基础库版本 1.6.3 开始,小程序支持简洁的组件化编程.所有自定义组件相关特性都需要基础库版 ...

  5. 微信小程序自定义组件的基本使用

    微信小程序自定义组件的基本使用 组件与模块类似,实现了功能的复用,提高开发速率,减少代码量 在开发过程中 , 总会遇到一些功能板块是相同或很类似的 .如两个不同页面都有搜索框 , 或者 导航栏等 . ...

  6. 基于canvas 2D实现微信小程序自定义组件-环形进度条

    基于canvas 2D实现微信小程序自定义组件-环形进度条 最近开发一个小程序项目博闻金榜答题小程序,需要使用到一个可以显示答题倒计时的组件,基于进度条实现,下面就主要介绍基于canvas2D实现一个 ...

  7. 小程序组件onload_微信小程序自定义组件(一)

    好吧,突然发现学不完了,一下子,那就分开吧,由于时间太久,直接重新大致复习了一下 微信小程序自定义组件 微信小程序支持自定义组件 下方的目录 其中,components为组件目录,nodemodule ...

  8. 小程序自定义组件以及模板与样式

    微信小程序自定义组件以及模板与样式 自定义组件 1. 介绍: 2. 创建自定义组件 3. 使用自定义组件 4. 细节注意事项 组件模板和样式 1. 组件模板 2. 模板数据绑定 3. 组件 wxml ...

  9. php自定义控件,小程序自定义组件的实现方法(代码)

    本篇文章给大家带来的内容是关于小程序自定义组件的实现方法(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. File:threecolgrid.js// components/t ...

最新文章

  1. Spring Cloud Gateway之Predict篇
  2. Nginx Web服务应用
  3. WAMP_DEDE兼容配置
  4. selenium autoit java_Java+Selenium——AutoIt工具处理文件上传
  5. php 正则 回溯,php 正则表达式效率 贪婪、非贪婪与回溯分析
  6. android8 通知呼吸灯_Android8.0及以上的Notification
  7. 研发解决方案介绍#Tracing(鹰眼)
  8. ubuntu18.10 编译安装caffe gpu版本
  9. libcef-Vs2017-下载编译第一个libcef3项目
  10. 谷歌学术搜索技巧,命令搜索
  11. 安卓微博登录第三方详解
  12. linux gpfs,IBM GPFS并行文件系统解决方案
  13. 计算机组成原理试题(三)(附参考答案)
  14. 风控ML[15] | 风控模型报告以及上线后需要监控的内容
  15. excel只显示公式,不显示结果
  16. 微软Azure动手实验营4月课程预告
  17. debian改网卡速率_Debian网卡设置
  18. 【计算机毕业设计】029网上购物商城系统
  19. 浅析CC2540的OSAL原理
  20. Spring AOP 同类调用失效问题及解决方案

热门文章

  1. 三中好用的数组去重方式
  2. hdu 2089 数位dp入门
  3. tomcat 内存溢出问题
  4. CSS3实现8种Loading效果【第二波】
  5. [学习总结]6、Android异步消息处理机制完全解析,带你从源码的角度彻底理解
  6. 三款200万像素照相手机测评
  7. AndroidStudio_安卓原生开发_保存全局数据---Android原生开发工作笔记141
  8. k8s核心技术-命令行工具kubectl---K8S_Google工作笔记0017
  9. Video-Swin-Transformer (二)
  10. 彩色图+车牌颜色测试结果分析