小程序如何封装自定义组件(Toast)
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.6.3 开始,官方对于 ...
- 微信小程序 - 进阶(自定义组件、promis化、mobx、分包、自定义tabBar)
文章目录 一.自定义组件 1.创建组件 2.引用组件 3.组件和页面区别 4.组件样式 5.data.methods.properties 6.小程序的 data 和 properties 区别 7. ...
- 小程序学习:自定义组件
开发者可以将页面内的功能模块抽象成自定义组件,以便在不同的页面中重复使用:也可以将复杂的页面拆分成多个低耦合的模块,有助于代码维护.自定义组件在使用时与基础组件非常相似. 本文要创建一个效果如下图的组 ...
- 微信小程序开发:自定义组件-behaviors
1.什么是behaviors behaviors是小程序中,用于实现组件间代码共享的特性,类似于vue的"mixins". 2.behaviors的工作方式 每个behavior可 ...
- 小程序css样式+自定义组件+功能
代码仓库:https://gitee.com/DerekAndroid/miniProgramAgen.git 微信小程序实现图片文字二维码组合拼接成一张图片,下载到手机相册 思路:1下载网络图片,2 ...
- 微信小程序怎么修改自定义组件中的样式
在微信小程序中我们经常要用到自定义组件,但是有时我们因为引用的地方不同可能组件的一些样式也要修改,比如颜色,高度,宽度等来适合不同的页面,有没有办法来修改自定义组件中的样式呢,很显然是有的,我们要用到 ...
- 入门微信小程序三(自定义组件)
1.组件的创建 ① 在项目的根目录中,鼠标右键,创建 components -> test 文件夹 ② 在新建的 components -> test 文件夹上,鼠标右键,点击" ...
- 小程序里的自定义组件:组件的外部样式externalClasses的使用
启用外部样式: 自定义组件: v-tag 在html 引入 在组件写外部样式的css : .ex-tag {background-color: #fffbdd ; } 在组件使用该外部的样式 这个时候 ...
- 《九》微信小程序中的自定义组件
开发者可以将页面内的功能模块抽象成自定义组件,以便在不同的页面中重复使用:也可以将复杂的页面拆分成多个低耦合的模块,有助于代码维护. 自定义组件:可复用的 WXML.WXSS.JS.JSON. beh ...
最新文章
- 2022-2028年中国演出市场深度调研与发展前景报告
- 【linux】嵌入式中 crontab的使用
- 【Android学习笔记】设置App启动页
- c语言 串口中断服务函数,GCC-AVR 编写中断服务函数的注意事项
- python矩阵_Python 矩阵相关
- 工信部:1-2月我国出口手机1.6亿台 同比增加32.6%
- iOS 14不跳票 6月见!苹果WWDC 2020将在线上举办:33年来首次
- node.js 回调函数
- Delphi 取整函数round、trunc、ceil和floor
- C++ GUID和string转化函数【转载】
- 影视之我看——写自己的剧本
- 如何用python爬取股票数据选股_用python爬取股票数据
- 趋势科技移动客户端病毒报告
- KingbaseES的表空间
- 斐波那契数列(剑指offer 10-I)
- 2020再谈软件测试人员的核心竞争力
- MCMC和贝叶斯统计在宇宙微波背景辐射(CMB)中应用
- 现代计算机基本工作原理,计算机基本原理
- 名词解释 —— 抄送(cc)、银弹(silver bullet)
- #38 python操作剪切板
热门文章
- 《MySQL 8.0.22执行器源码分析(3.1)关于RowIterator》
- 多线程循环输出abcc++_C ++循环| 查找输出程序| 套装4
- 实验10 SQL Server 数据备份/恢复
- python安全攻防---信息收集---ICMP主机探测 以及optionparser的使用
- 远控免杀专题3---msf自免杀
- linux中updatedb命令详解,updatedb命令
- 显示控制器注释_欧姆龙可编程控制器CS1D-CPU产品型号说明及功能介绍
- 2014_hangzhou_onsite
- 一些oj的返回结果:通过结果找错误,debug。
- Linux编程手册读书笔记第五章(20140408)