1、创建和pages 同级的component目录新建一个myToast目录 例如:

2、myToast.wxml文件内容:

<!-- 自定义toast组件 -->
<!-- name 模块名称   --><template name="toast" ><!-- catchtouchmove=‘xxx’ 遮罩层的滚动穿透 --><!-- isHide 显示消失 --><view class="toast_content_box" wx:if="{{ isHide }}"
catchtouchmove="preventdefault">  <view class="toast_content">  <view class='toast_content_text'><!-- 内容 -->{{content}} </view></view>  </view> </template>
复制代码

3、myToast.wxss文件样式(根据自己ui样式去写):

.toast_content_box {  overflow: hidden;display: flex;  width: 100%;  height: 100%;  justify-content: center;  align-items: center;  position: fixed;  z-index: 999;  background-color: rgba(0, 0, 0, 0.3)
}
.toast_content {  width: 50%;padding: 30rpx;background-color: rgba(0, 0, 0, 0.8);border-radius: 20rpx;
}
.toast_content_text {  width: 100%;height: 100%;background-size: 100% 100%;background-repeat: no-repeat;text-align: center;color: #fff;font-size: 28rpx;font-weight: 300;
}复制代码

4、myToast.js文件内容:

let _compData = {'_toast_.isHide': false,// 控制组件显示隐藏'_toast_.content': '',// 显示的内容
}
let toastPannel = {// toast显示的方法ShowToast: function (data) {let self = this;this.setData({ '_toast_.isHide': true, '_toast_.content': data });},// toast隐藏的方法HideToast: function (data) {let self = this;self.setData({ '_toast_.isHide': false })},// toast显示的方法 2000后隐藏ShowToastTime: function (data) {let self = this;this.setData({ '_toast_.isHide': true, '_toast_.content': data });setTimeout(() => {this.setData({ '_toast_.isHide': false, '_toast_.content': data });}, 2000)},
}function ToastPannel() {// 拿到当前页面对象let pages = getCurrentPages();let curPage = pages[pages.length - 1];this.__page = curPage;// 小程序最新版把原型链干掉了。。。换种写法Object.assign(curPage, toastPannel);// 附加到page上,方便访问curPage.toastPannel = this;// 把组件的数据合并到页面的data对象中curPage.setData(_compData);return this;
}
module.exports = {ToastPannel
}
复制代码

5、全局引入, 在项目中的app.js中将组件脚本引入供全局使用,引入方法:接收暴露出来的构造函数

6、 全局引入样式在app.wxss

7、在需要使用该组件的页面将模块引入:

8、在引入模块组件 同级的js中实例组件的构造函数:

9、点击按钮实现效果

组件比较简单、如果需求不同另行修改。

小程序如何封装自定义组件(Toast)相关推荐

  1. 手把手教你实现小程序中的自定义组件

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

  2. 微信小程序 - 进阶(自定义组件、promis化、mobx、分包、自定义tabBar)

    文章目录 一.自定义组件 1.创建组件 2.引用组件 3.组件和页面区别 4.组件样式 5.data.methods.properties 6.小程序的 data 和 properties 区别 7. ...

  3. 小程序学习:自定义组件

    开发者可以将页面内的功能模块抽象成自定义组件,以便在不同的页面中重复使用:也可以将复杂的页面拆分成多个低耦合的模块,有助于代码维护.自定义组件在使用时与基础组件非常相似. 本文要创建一个效果如下图的组 ...

  4. 微信小程序开发:自定义组件-behaviors

    1.什么是behaviors behaviors是小程序中,用于实现组件间代码共享的特性,类似于vue的"mixins". 2.behaviors的工作方式 每个behavior可 ...

  5. 小程序css样式+自定义组件+功能

    代码仓库:https://gitee.com/DerekAndroid/miniProgramAgen.git 微信小程序实现图片文字二维码组合拼接成一张图片,下载到手机相册 思路:1下载网络图片,2 ...

  6. 微信小程序怎么修改自定义组件中的样式

    在微信小程序中我们经常要用到自定义组件,但是有时我们因为引用的地方不同可能组件的一些样式也要修改,比如颜色,高度,宽度等来适合不同的页面,有没有办法来修改自定义组件中的样式呢,很显然是有的,我们要用到 ...

  7. 入门微信小程序三(自定义组件)

    1.组件的创建 ① 在项目的根目录中,鼠标右键,创建 components -> test 文件夹 ② 在新建的 components -> test 文件夹上,鼠标右键,点击" ...

  8. 小程序里的自定义组件:组件的外部样式externalClasses的使用

    启用外部样式: 自定义组件: v-tag 在html 引入 在组件写外部样式的css : .ex-tag {background-color: #fffbdd ; } 在组件使用该外部的样式 这个时候 ...

  9. 《九》微信小程序中的自定义组件

    开发者可以将页面内的功能模块抽象成自定义组件,以便在不同的页面中重复使用:也可以将复杂的页面拆分成多个低耦合的模块,有助于代码维护. 自定义组件:可复用的 WXML.WXSS.JS.JSON. beh ...

最新文章

  1. 2022-2028年中国演出市场深度调研与发展前景报告
  2. 【linux】嵌入式中 crontab的使用
  3. 【Android学习笔记】设置App启动页
  4. c语言 串口中断服务函数,GCC-AVR 编写中断服务函数的注意事项
  5. python矩阵_Python 矩阵相关
  6. 工信部:1-2月我国出口手机1.6亿台 同比增加32.6%
  7. iOS 14不跳票 6月见!苹果WWDC 2020将在线上举办:33年来首次
  8. node.js 回调函数
  9. Delphi 取整函数round、trunc、ceil和floor
  10. C++ GUID和string转化函数【转载】
  11. 影视之我看——写自己的剧本
  12. 如何用python爬取股票数据选股_用python爬取股票数据
  13. 趋势科技移动客户端病毒报告
  14. KingbaseES的表空间
  15. 斐波那契数列(剑指offer 10-I)
  16. 2020再谈软件测试人员的核心竞争力
  17. MCMC和贝叶斯统计在宇宙微波背景辐射(CMB)中应用
  18. 现代计算机基本工作原理,计算机基本原理
  19. 名词解释 —— 抄送(cc)、银弹(silver bullet)
  20. #38 python操作剪切板

热门文章

  1. 《MySQL 8.0.22执行器源码分析(3.1)关于RowIterator》
  2. 多线程循环输出abcc++_C ++循环| 查找输出程序| 套装4
  3. 实验10 SQL Server 数据备份/恢复
  4. python安全攻防---信息收集---ICMP主机探测 以及optionparser的使用
  5. 远控免杀专题3---msf自免杀
  6. linux中updatedb命令详解,updatedb命令
  7. 显示控制器注释_欧姆龙可编程控制器CS1D-CPU产品型号说明及功能介绍
  8. 2014_hangzhou_onsite
  9. 一些oj的返回结果:通过结果找错误,debug。
  10. Linux编程手册读书笔记第五章(20140408)