博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小程序如何封装自定义组件(Toast)
阅读量:5235 次
发布时间:2019-06-14

本文共 1937 字,大约阅读时间需要 6 分钟。

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

1077581-20190426114645080-1609732559.png

2、myToast.wxml文件内容:

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中将组件脚本引入供全局使用,引入方法:接收暴露出来的构造函数

1077581-20190426114745969-540161210.png

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

1077581-20190426114734181-1574132215.png

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

1077581-20190426114725300-229194271.png

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

!1077581-20190426114715978-852986990.png

9、点击按钮实现效果

1077581-20190426114705100-1337144140.png

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

转载于:https://www.cnblogs.com/MicKing/p/10773442.html

你可能感兴趣的文章
jquery的$(document).ready()和onload的加载顺序
查看>>
Python Web框架Django (五)
查看>>
.net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串------(转)...
查看>>
【codevs1033】 蚯蚓的游戏问题
查看>>
【程序执行原理】
查看>>
python的多行注释
查看>>
连接Oracle需要jar包和javadoc文档的下载
查看>>
UVA 10976 - Fractions Again?!
查看>>
Dreamweaver cc新版本css单行显示
查看>>
【android】安卓的权限提示及版本相关
查看>>
JavaScript可否多线程? 深入理解JavaScript定时机制
查看>>
IOS基础学习
查看>>
PHP 导出 Excell
查看>>
Java基础教程——网络基础知识
查看>>
自己到底要的是什么
查看>>
Kruskal基础最小生成树
查看>>
ubuntu 14.04 安装搜狗拼音输入法
查看>>
浅谈算法和数据结构: 一 栈和队列
查看>>
Java内部类详解
查看>>
【hdu 1429】胜利大逃亡(续)
查看>>