微信小程序之公共组件写法
我们要实现如下图功能
小程序一个公共的弹出组件,首先我们创建一个pop文件
然后在生成的pop.json文件中将component定义为true
- {
- "component": true
- }
为pop.wxml添加内容
- <!--pages/common/pop/pop.wxml-->
- <view class='wx_dialog' hidden="{{!isShow}}">
- <view class='wx-mask'></view>
- <view class='wx-dialog-content'>
- <view class='wx-dialog-title'>{{ title }}</view>
- <view class='wx-dialog-contents'>{{ content }}</view>
- <view class='wx-dialog-footer'>
- <view class='wx-dialog-btn' catchtap='_cancelEvent'>{{ cancelText }}</view>
- <view class='wx-dialog-btn' catchtap='_confirmEvent'>{{ confirmText }}</view>
- </view>
- </view>
- </view>
pop.wxss
- /* pages/common/pop/pop.wxss */
- .wx_dialog {
- position: fixed;
- left: ;
- right: ;
- top: ;
- bottom: ;
- }
- .wx-mask {
- position: absolute;
- left: ;
- right: ;
- top: ;
- bottom: ;
- background: rgba(, , , .);
- z-index: ;
- }
- .wx-dialog-content {
- position: absolute;
- background: #fff;
- left: %;
- top: %;
- transform: translate(-%, -%);
- width: %;
- /* height: 200px; */
- padding-bottom: 60px;
- z-index: ;
- border-radius: 5px;
- }
- .wx-dialog-contents {
- padding: 10px;
- }
- .wx-dialog-title {
- padding: 5px 10px;
- font-size: 14px;
- }
- .wx-dialog-footer {
- position: absolute;
- left: ;
- right: ;
- bottom: ;
- font-size: 14px;
- height: 40px;
- line-height: 40px;
- border-top: 1px solid #eee;
- }
- .wx-dialog-btn {
- display: inline-block;
- width: %;
- cursor: pointer;
- text-align: center;
- }
- .wx-dialog-btn:first-child {
- border-right: 1px solid #eee;
- }
pop.js
- // pages/common/pop/pop.js
- Component({
- options: {
- multipleSlots: true // 在组件定义时的选项中启用多slot支持
- },
- /**
- * 组件的属性列表
- * 用于组件自定义设置
- */
- properties: {
- // 弹窗标题
- title: { // 属性名
- type: String, // 类型(必填),目前接受的类型包括:String, Number, Boolean, Object, Array, null(表示任意类型)
- value: '标题' // 属性初始值(可选),如果未指定则会根据类型选择一个
- },
- // 弹窗内容
- content: { type: String, value: '弹窗内容' },
- // 弹窗取消按钮文字
- cancelText: { type: String, value: '取消' },
- // 弹窗确认按钮文字
- confirmText: { type: String, value: '确定' }
- },
/**
* 私有数据,组件的初始数据
* 可用于模版渲染
*/- data: { // 弹窗显示控制
- isShow: false
- },
- /**
- * 组件的方法列表
- * 更新属性和数据的方法与更新页面数据的方法类似
- */
- methods: {
- /**
- * 公有方法
- */
- //隐藏弹框
- hideDialog() {
- this.setData({
- isShow: !this.data.isShow
- })
- },
- //展示弹框
- showDialog() {
- this.setData({
- isShow: !this.data.isShow
- })
- },
- /**
- * 内部私有方法建议以下划线开头
- * triggerEvent 用于触发事件
- */
- _cancelEvent() { //触发取消回调
- this.triggerEvent("cancelEvent")
- },
- _confirmEvent() { //触发成功回调
- this.triggerEvent("confirmEvent");
- }
- }
- })
在父级页面的.js文件中添加
- /**
- * 生命周期函数--监听页面初次渲染完成
- */
- onReady: function () {
- this.dialog = this.selectComponent("#dialog");
- },
- showDialog() {
- this.dialog.showDialog();
- },
- //取消事件
- _cancelEvent() {
- console.log('你点击了取消');
- this.dialog.hideDialog();
- },
- //确认事件
- _confirmEvent() {
- console.log('你点击了确定');
- this.dialog.hideDialog();
- },
父级页面的.json文件中添加
- {
"usingComponents": {"pop": "../common/pop/pop"}
}
在父级页面的.wxml文件中添加
- <view class="pop">
- <pop id='dialog' title='我是标题' content='恭喜你,学会了小程序组件' cancelText='知道了' confirm='谢谢你' bind:cancelEvent="_cancelEvent" bind:confirmEvent="_confirmEvent">
- </pop>
- </view>
然后就大功告成了
如果想注册到全局,则需要在app.json页面添加挂载:
- {
- "usingComponents": {"pop": "../common/pop/pop"}
- }
微信小程序之公共组件写法的更多相关文章
- 微信小程序--页面与组件之间如何进行信息传递和函数调用
微信小程序--页面与组件之间如何进行信息传递和函数调用 这篇文章我会以我自己开发经验从如下几个角度来讲解相关的内容 页面如何向组件传数据 组件如何向页面传数据 页面如何调用组件内的函数 组件如何调 ...
- 原创:WeZRender:微信小程序Canvas增强组件
WeZRender是一个微信小程序Canvas增强组件,基于HTML5 Canvas类库ZRender. 使用 WXML: <canvas style="width: 375px; h ...
- 微信小程序之swiper组件高度自适应
微信小程序之swiper组件高度自适应 要求: (顶部广告栏 ) 改变swiper组件的固定高度,使之随内部每张图片的高度做自适应 原理: 图片加载完之后,获取图片的原始宽高,根据宽高比,计算出适应后 ...
- 微信小程序中的组件使用1
不管是vue还是react中,都在强调组件思想,同样,在微信小程序中也是使用组件思想来实现页面复用的,下面就简单介绍一下微信小程序中的组件思想. 组件定义与使用 要使用组件,首先需要有组件页面和使用组 ...
- 微信小程序基于swiper组件的tab切换
代码地址如下:http://www.demodashi.com/demo/14010.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...
- 关于微信小程序前端Canvas组件教程
关于微信小程序前端Canvas组件教程 微信小程序Canvas接口函数 上述为微信小程序Canvas的内部接口,通过熟练使用Canvas,即可画出较为美观的前端页面.下面是使用微信小程序画图的一些 ...
- uni-app开发微信小程序引入UI组件库(Vant-weapp)步骤
uni-app开发微信小程序引入UI组件库(Vant-weapp)步骤 这里以vant-weapp为例 uni-app官方文档介绍引入组件的方法 1. 新建相关目录 根目录下创建 wxcomponen ...
- 微信小程序校历组件
微信小程序校历组件 校历组件,可以作为校园小程序的插件,如果觉得不错,点个star吧
- 微信小程序内置组件web-view的缓存问题探讨
前言:博客或者论坛上面,还有自习亲身经历,发现微信小程序的webview组件的页面缓存问题相当严重,对开发H5的小童鞋来说应该困扰了不少.很多小童鞋硬是抓破脑袋也没有办法解决这个问题,那我们今天就来探 ...
随机推荐
- 003Linux常用命令
文件操作 01 命令 : list----列出目录信息 命令格式: ls [-选项] [目录] 选项 : -a --all 不忽略以"."开头的隐藏文件 : -d --direc ...
- 菜鸟学习Spring——SpringMVC注解版控制层重定向到控制层
一.概述. SpringMVC中界面请求Contorller1,Contorller1需要重定向到Contorller2中显示其他页面或者做一些业务逻辑,Spring中提供了这个功能利用"r ...
- ezdpl Linux自动化部署实战
最近把ezdpl在生产环境中实施了,再加上这段时间的一些修改,一并介绍一下. 再次申明: ezdpl不是开箱即用的,需要根据自己的应用环境定制.对初学者来说使用起来反倒困难更多.风险更大. 它不是一个 ...
- App后台开发架构实践笔记
1 App后台入门 1.1 App后台的功能 (1)远程存储数据: (2)消息中转. 1.2 App后台架构 架构设计的流程 (1) 根据App的设计,梳理出App的业务流程: (2) 把每个业务流程 ...
- 定时备份SQL Server数据库
一.手动备份: 1.整个数据库备份:选择数据库 => 右键任务 => 备份: 2.导出一张表的框架:选择表 => 编写表脚本为 => CREATE到: 3.导出一张表的数据: ...
- MySQL中AddDate函数的疑惑
无论使用哪一种RDBMS,都需要使用到其中的一些日期转换函数,在使用MySQL的AddDate函数时,遇到了点小问题,稍作记录. root@localhost:mysql3376.sock [(non ...
- 点触科技安全验证新模式与逐浪CMS3.9.3新功能预览
是颠覆传统字符验证码的新一代验证码系统.用户通过点击.拖动等有趣方式即可完成验证,防止机器攻击, 应用在注册.登录.数据访问保护.黄牛刷单等场景. 只要在逐浪CMS后台-系统-配置 ,进行简单的配置, ...
- Linux文件与目录管理常用命令
Linux文件与目录常用命令管理: 文件权限/目录权限: -rwxr-xr-x. root root Mar : zeng.txt r():可读 w():可写 x():可执行 drwxr-xr-x. ...
- WAKE-WIN10-SOFT-VS2013及工具
1,下载安装,,,,,,, 2,配置 3opencv 3,1官网:http://opencv.org/ 3,3VS2013+OPENCV249配置 http://jingyan.baidu.com/a ...
- 查询python的安装路径
参考链接: https://blog.csdn.net/orangleliu/article/details/44907221 (tf_14) novak@novak-ZBook15G2:~$ pyt ...