开发 | 小程序自定义组件怎么用?看完这篇文章你就知道了

作者:陈威

之前做小程序开发的时候,对于开发来说比较头疼的莫过于自定义组件了,当时,官方对这方面的文档也只是寥寥几句,一笔带过而已,所以写起来真的是非常非常痛苦。

好在微信小程序的库从 1.6.3 开始,官方对于自定义组件这一块有了比较大的变动,最直观的感觉就是文档比以前全多了。

还有就是,现在小程序支持简洁的组件化编程,可以将页面内的功能模块抽象成自定义组件,以便在不同的页面中复用,提高自己代码的可读性,降低自己维护代码的成本。

本篇文章就是手把手教你实现小程序中自定义组件,坐稳啦~

要做自定义组件,我们先定一个小目标,比如说我们在小程序中实现一下 WeUI 中的弹窗组件,基本效果图如下。

首先,我们需要创建一个空白项目,并在 components 组件中新建一个 Dialog 文件夹来存放我们的弹窗组件。

Dialog 下,右击新建 Component 元素,并命名为 dialog 后,会生成对应的 JSON、WXML、WXSS 和 JS 4 个文件,也就是一个自定义组件的组成部分,此时你的项目结构应该如下图所示:

组件初始化工作准备完成,接下来就是组件的相关配置,首先我们需要声明自定义组件,也就是将 dialog.jsoncomponent 字段设为 true

其次,我们需要在 dialog.wxml 文件中编写弹窗组件模版。在 dialog.wxss 文件中加入弹窗组件样式,它们的写法与页面的写法类似,我就不赘述,直接贴代码啦~

dialog.wxml 文件如下:

组件的结构和样式都有了,还缺少什么呢?没错,还缺 JavaScript 代码。

眼睛比较犀利的同学,可能已经发现了我们在 dialog.wxml 文件中的会有一些形如 {{ isShow }}{{ title }} 这样的模版变量,还定义了 _cancelEvent_confirmEvent 两个方法,它们的具体实现就是在 dialog.js 中。

dialog.js 是自定义组件的构造器,是使用小程序中 Component 构造器生成的。调用 Component 构造器时,可以用来指定自定义组件的属性、数据、方法等,具体的细节可以参考一下官方的文档。

下面,我通过代码注释,解释一下构造器中的一些属性的使用:

到现在,你应该完成了一个自定义弹窗组件的大部分代码,可是你保存后并没有发现任何变化。因为我们还需要在 index.wxml 文件中引入它。

首先需要在 index.json 中引入组件:

然后我们在 index.wxml 中引入它,并增加我们自定义的一些值,如下。

嗯哪,还差最后一步,index.js 配置,没错,这个也很简单,我就复制粘贴了。

到此,大功告成!让我们测试一下:

点击取消或者确定按钮的话,我们在事件中设置了弹窗会关闭,并会打印出相应的信息,具体点击完应该怎么做,就看你们自己发挥了,我只能帮你到这里了~

现在,你已经基本掌握了小程序中的自定义组件开发技巧,怎么样,是不是很棒,应该给自己点个赞,打个 call。

总体来说,小程序推出自定义组件后,感觉方便了很多,还没有 get 的小伙伴们,赶紧学习学习,以后多用组件化开发,就不会那么难受了,加油哦~

具体代码,我已经托管到 GitHub 上了,欢迎 issue~

原文地址: https://juejin.im/post/5a3110756fb9a0451b048b72

原文发布于微信公众号 - 知晓程序(zxcx0101)

原文发表时间:2018-01-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏jeremy的技术点滴

前端ReactJS技术介绍

4303
来自专栏Hongten

一个小巧的HTML编辑器_CLEditor_源码下载

CLEditor是一个开源的jQuery插件提供了一个轻量级的、全功能、跨浏览器、可扩展、

3391
来自专栏程序员的知识天地

python爬虫爬取海量高清图片!这绝对是动漫迷们的福音

这链接还是比较好获取的,直接 F12 审核元素,或者右键查看代码,手机上chrome和firefox在url前面加上 "view-source"

3331
来自专栏coding for love

在线商城项目05-利用mock数据进行渲染和图片懒加载

既然我们已经能从mock服务器拿到mock数据,现在的任务就是用拿到的数据进行页面渲染,另外,由于页面的图片数据太多,为了提高性能,我们会使用图片懒加载。本篇我...

881
来自专栏极乐技术社区

微信小程序开发小技巧合揖(53个)

微信小程序:wx.navigateTo中url无法跳转问:链接 微信小程序布局之行内元素和块级元素:链接 小程序端JS加密,传输PHP端解密:链接 小程序开发干...

4709
来自专栏逸鹏说道

Linux下搜狗输入法和快捷键Ctrl+Space冲突的解决

把搜狗的启动快捷键给删了(如果有两个键盘【英+中】,你按Shift就可以切换了,完全没必要占着茅坑)

1234
来自专栏依乐祝

.NET Core实战项目之CMS 第六章 入门篇-Vue的快速入门及其使用

上面文章我给大家介绍了Dapper这个ORM框架的简单使用,大伙会用了嘛!本来今天这篇文章是要讲Vue的快速入门的,原因是想在后面的文章中使用Vue进行这个CM...

1913
来自专栏王磊的博客

IEPNGFix:Unclickable children of element 解决办法

以前我有写过一篇关于让IE6支持png半透明图片的方法,这期间这一神器一直发挥了很大的作用,并且没有出现过什么差错,直到昨天。 昨天同事做的一个项目因为设计图的...

37010
来自专栏鹅厂优文

小程序入坑指南 | 鹅厂优文

前段时间,手上刚好接手一个小程序的项目,心想之前自学过一段时间的小程序,终于有项目可以练练手了,可惜,万万没想到,加了两个周末的班结果却成了飞机稿...

1.6K11
来自专栏微信小程序开发

swiper组件添加左右箭头

前言:小程序官方swiper组件并未提供带左右箭头功能,但有些时候还是想把左右箭头添加上,今天连胜老师就给大家分享一下自己的实现方式。 思路很简单:在swip...

3799

扫码关注云+社区

领取腾讯云代金券