位置: IT常识 - 正文

【小程序开发】—— 封装自定义弹窗组件(小程序开发定制)

编辑:rootadmin
【小程序开发】—— 封装自定义弹窗组件 文章目录🍋前言:🍍正文1、探讨需求封装popup自定义弹窗组件2、实战开发弹窗组件2.1 子组件内容 popup.vue文件2.2 父组件引用子组件3、效果图预览3.1 不使用具名插槽的原有样式效果3.2 使用具名插槽之后样式效果🎃专栏分享:🍋前言:

推荐整理分享【小程序开发】—— 封装自定义弹窗组件(小程序开发定制),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:小程序开发费用明细,小程序开发平台,小程序开发一个多少钱啊,小程序开发费用明细,小程序开发平台,小程序开发费用明细,小程序开发商城,小程序开发一个多少钱啊,内容如对您有帮助,希望把文章链接给更多的朋友!

大家好我是不苒,本人男,头像是女朋友照片,很多大佬都以为我是女的,浅浅的解释一下哈哈。很高兴书写博客与大家分享知识。 本片文章主要讲的是,使用uniapp开发背景下,使用Vue的具名插槽封装一个自定义的弹窗组件popup,感兴趣的小伙伴可以学习一下,如果发现本人编写有问题的话,欢迎大家随时来评论区探讨支出问题,我也会及时更正的。

话不多说直接上正文一起来学习一下封装自定义弹窗组件吧!

🍍正文1、探讨需求封装popup自定义弹窗组件

首先我们需要探讨一下,封装自定义的组件都需要什么功能

需要一个半透明灰色的背景,用于区分与非弹窗内容,点击灰色区域也可以关闭弹窗。需要一个关闭按钮和两个操作按钮,一个确定,一个取消。弹窗内容:标题,内容区域,因为是自定义所以都使用了具名插槽,也可以设置默认的显示内容。弹窗的显示位置,本次封装只考虑了居中与页面底部两个常用显示位置。2、实战开发弹窗组件2.1 子组件内容 popup.vue文件<template><view class="mark" v-if="isShow" @click="close"><view :class="bottom?'bottom':'center'" class="content" ><view @click="close"><image class="close" src="../static/close.png" ></image></view><slot name="title"><view class="title">子组件默认标题</view></slot><slot name="body"><text style="font-size: 14px;">确定要取消订单吗?取消之后购物车也将清空。</text></slot><slot name="bottom"><view class="btns"><view class="confirm btn" @click="confirm">确定</view><view class="cancel btn" @click="cancel">取消</view></view></slot></view></view></template><script>export default {props: {isShow: {type: Boolean,default: false},// 子组件接收一个布尔类型的bottom,如果为true则弹窗则在页面的底部,false为默认居中显示bottom: {type: Boolean,default: false}},data() {return{}},methods: {close(){this.$emit('close')},cancel(){this.$emit('cancel')},confirm(){this.$emit('confirm')},}}</script><style lang="scss">.mark {position: fixed;width: 100vw;height: 100vh;background-color: rgba(0, 0, 0, 0.3);left: 0;bottom: 0;top: 0;right: 0;display: flex;justify-content: center;align-items: center;}.bottom{position: absolute;bottom: 0 ;width: 100vw;}.center{width: 80vw;position: relative;}.content{background-color: #fff;border-radius: 20rpx;height: 400rpx;padding: 40rpx;box-sizing: border-box;.close{position:absolute;right:30rpx;top: 20rpx;width: 40rpx;height: 40rpx;}.title{text-align: center;font-weight: 600;height: 50rpx;line-height: 50rpx;margin-bottom: 20rpx;}.btns{bottom: 20px;position: absolute;display: flex;justify-content: space-between;width: 88%;.btn{width: 160rpx;height: 80rpx;text-align: center;line-height: 80rpx;border-radius: 20rpx;}.confirm{background: bisque;}.cancel{background: #ccc;}}}</style>

注意:

本文CSS内容使用了scss语法,不使用的话可以将嵌套的样式拿出即可。

解释说明:

isShow 用于控制弹出层的显示与隐藏,在点击灰色空白区域和右上角关闭按钮,还有确定按钮与取消按钮之后都会关闭弹出层。bottom 用于控制弹出层的显示位置,默认为居中显示methods中向父组件传递了三个方法,分别是关闭弹窗,点击确定按钮,点击取消按钮使用具名插槽,在父组件中可以自定义插槽中的内容,方便不同位置的弹窗显示样式2.2 父组件引用子组件<template><view class="container"><view class="btn" @click="open">显示弹出层</view><popup :isShow='visible' :bottom='true' @close="closeMadle" @cancel="cancel" @confirm="confirm"><template v-slot:title><view class="title">父组件自定义标题</view></template><template v-slot:body><view class="body" >这里是父组件引用子组件,使用具名插槽编写的自定义内容和样式。</view></template></popup></view></template><script>import popup from '../../components/popup.vue'export default {components: {popup},data() {return {visible:false,}},methods: {open(){this.visible = trueuni.hideTabBar()},closeMadle(){this.visible = falseuni.showTabBar()},confirm(){// 这里调用接口执行点击确定后的操作并关闭弹窗console.log('点击了确认按钮')this.visible = false},cancel(){// 点击了取消按钮直接关闭弹窗console.log('点击了取消按钮')this.visible = false},}}</script><style lang="scss>.title{text-align: center;font-weight: 600;height: 50rpx;line-height: 50rpx;margin-bottom: 20rpx;}.body{font-size: 14px;font-weight: 600;color: darkorchid;}</style>

注意:

本文CSS内容使用了scss语法,不使用的话可以将嵌套的样式拿出即可。【小程序开发】—— 封装自定义弹窗组件(小程序开发定制)

解释说明:

引用子组件,并在conponents中注册。bottom 为true用于控制弹出层的弹窗在底部显示,不传默认为居中显示。@语法接收子组件中向父组件传递的三个方法,在父组件methods中定义三个方法做相应的操作。使用具名插槽,自定义插槽中的内容。uni.showTabBar() 和 uni.hideTabBar()两个方法用于控制原生tabbar的显示与隐藏。3、效果图预览3.1 不使用具名插槽的原有样式效果

3.2 使用具名插槽之后样式效果

这里是演示的那个显示在页面底部的弹窗,如果不需要直接将代码片段里的:bottom="true"删掉即可

🎃专栏分享:

小程序项目实战专栏:《uniapp小程序开发》 前端面试专栏地址:《面试必看》

⏳ 名言警句:说能做的,做说过的\textcolor{red} {名言警句:说能做的,做说过的}名言警句:说能做的,做说过的

✨ 原创不易,还希望各位大佬支持一下\textcolor{blue}{原创不易,还希望各位大佬支持一下}原创不易,还希望各位大佬支持一下

👍 点赞,你的认可是我创作的动力!\textcolor{green}{点赞,你的认可是我创作的动力!}点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!\textcolor{green}{收藏,你的青睐是我努力的方向!}收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!\textcolor{green}{评论,你的意见是我进步的财富!}评论,你的意见是我进步的财富!

本文链接地址:https://www.jiuchutong.com/zhishi/300403.html 转载请保留说明!

上一篇:人工智能、机器学习和深度学习有哪些区别?(人工智能机器人的好处)

下一篇:堆和栈详解js(js栈堆的区别)

  • 美团顺风车司机怎么注册(美团顺风车司机端app下载)

    美团顺风车司机怎么注册(美团顺风车司机端app下载)

  • 淘宝网店代运营大神打造大店铺(淘宝网店代运营协议)

    淘宝网店代运营大神打造大店铺(淘宝网店代运营协议)

  • 拼多多可以用支付宝支付吗(拼多多可以用支付宝亲情卡吗)

    拼多多可以用支付宝支付吗(拼多多可以用支付宝亲情卡吗)

  • 华为mate30支持北斗导航吗(华为mate30支持北斗吗)

    华为mate30支持北斗导航吗(华为mate30支持北斗吗)

  • 情侣空间解除了相册还在吗(情侣空间解除了还能恢复相恋天数)

    情侣空间解除了相册还在吗(情侣空间解除了还能恢复相恋天数)

  • 小米10怎么升级MIUI12(小米10怎么升级13系统)

    小米10怎么升级MIUI12(小米10怎么升级13系统)

  • 华为gt健康三环表盘意义(华为gt2pro健康三环)

    华为gt健康三环表盘意义(华为gt2pro健康三环)

  • 苹果11获取不了软件(苹果11pro获取不了app)

    苹果11获取不了软件(苹果11pro获取不了app)

  • 电脑可以看电视频道吗(电脑可以看电视剧的软件)

    电脑可以看电视频道吗(电脑可以看电视剧的软件)

  • 苹果无线耳机显示红色感叹号(苹果无线耳机显示明天前保持关闭)

    苹果无线耳机显示红色感叹号(苹果无线耳机显示明天前保持关闭)

  • iphone11 iphone11 pro区别(iphone11 iphone11 pro 对比)

    iphone11 iphone11 pro区别(iphone11 iphone11 pro 对比)

  • word文字添加底纹(word文字怎么添加底纹)

    word文字添加底纹(word文字怎么添加底纹)

  • 对方拉黑我号码 发短信会怎样(对方拉黑我号码打电话对方知道吗)

    对方拉黑我号码 发短信会怎样(对方拉黑我号码打电话对方知道吗)

  • 哔哩哔哩怎么下载视频到手机相册(哔哩哔哩怎么分享完整视频)

    哔哩哔哩怎么下载视频到手机相册(哔哩哔哩怎么分享完整视频)

  • 快手一天能点多少红心(快手一天能点多少关注)

    快手一天能点多少红心(快手一天能点多少关注)

  • 苹果app扣款多少时间处理(苹果app扣费多久退款)

    苹果app扣款多少时间处理(苹果app扣费多久退款)

  • 抖音测年龄道具是哪个(抖音测年龄道具怎么弄)

    抖音测年龄道具是哪个(抖音测年龄道具怎么弄)

  • 中国5g研发者是谁(中国5g谁研发)

    中国5g研发者是谁(中国5g谁研发)

  • 淘宝的极速退款在哪(淘宝的极速退款多久到账)

    淘宝的极速退款在哪(淘宝的极速退款多久到账)

  • 文档中箭头怎么打出来(文档中箭头怎么统一)

    文档中箭头怎么打出来(文档中箭头怎么统一)

  • 华为p30有游戏模式吗(华为p30pro游戏模式在哪)

    华为p30有游戏模式吗(华为p30pro游戏模式在哪)

  • 苹果xsmax双卡怎么放(苹果xsmax双卡怎么设置流量卡选择)

    苹果xsmax双卡怎么放(苹果xsmax双卡怎么设置流量卡选择)

  • McWCECfg.exe是什么进程 McWCECfg进程查询(mc office是什么意思)

    McWCECfg.exe是什么进程 McWCECfg进程查询(mc office是什么意思)

  • 国税纳税标准
  • 电商相对于传统企业有哪些特点?
  • 社保基数在哪里调整
  • 为职工代垫的水电费应计入
  • 国外公司税号查询
  • 从租计征的房产税纳税期限
  • 金蝶打印凭证页码范围
  • 小规模纳税人与一般纳税人区别
  • 购入技术服务怎么结转成本的
  • 母公司不经营分公司能报税吗?
  • 怎么作废未使用的发票
  • 固定资产清理营业外收入交增值税吗
  • 公司增资需要什么
  • 广告行业监管政策
  • 何为风险报酬?
  • 什么是应付债券简单举例
  • 房租发票税金谁承担
  • 加速折旧以后年度如何填报调减额
  • 增值税专用发票电子版
  • 社会保险费的征收程序
  • 公司绿化工程计入什么科目
  • 车间购买办公用品
  • 电脑启动不了windows能进安全模式
  • 集团内部调拨账务处理
  • 会计月末做账
  • PHP:iconv_mime_decode()的用法_iconv函数
  • 广告费与业务宣传费扣除给企业带来的好处
  • 克鲁格国家公园大雄狮视频大全
  • 基于php技术
  • 托收账款属于什么会计科目
  • php编写用户注册界面
  • 建筑行业现在还能斤不
  • linux杀死程序
  • vue内置指令实验总结
  • 使用spring可以实现声明式事务吗
  • 工程施工和工程结算的账务处理
  • 企业自产自用的产品需要缴纳增值税吗
  • 研发支出管理的构成要素
  • 企业资金管理是什么意思
  • 小规模企业可以抵扣进项税吗
  • 医疗收费票据管理制度
  • 政府补助的范围
  • 如何根据科目余额表做资产负债表
  • 处置无形资产净收益计入什么科目
  • 企业过桥贷款违法吗
  • 金税盘减免税款分录
  • 信用减值损失和公允价值变动的区别
  • 排污费主要用于哪些方面
  • 期末账面余额是什么意思
  • 国家医疗保障机构
  • 如何科学设置运动负荷
  • mysql查询两个表的数据
  • mysql读写分离实现原理
  • mysql密码忘了怎么办?
  • xp系统删除文件怎么删
  • 滑动关闭电脑功能按键在哪找
  • xp系统本地连接启用不了
  • explorer.exe进程在哪
  • win7多用户怎么删除
  • win10怎么预览
  • Win10如何打开软键盘
  • sbserv.exe - sbserv是什么进程 有什么用
  • win10系统怎么调整输入法
  • w8系统一键恢复
  • win8.1 操作中心
  • 游戏中的物理 processing
  • shell脚本的fi
  • php和js的区别和联系
  • nodejs获取当前时间
  • vue动态路由传参
  • android英语
  • 安卓开发 内存
  • Android ExpandableListView的使用技巧
  • jquerycuishifeng
  • 2023年惠州契税最新规定
  • 税务申报热线电话
  • 青海的医疗保险费是多少钱
  • 济南市地税局纳税服务中心孙凯简历
  • 姓名章加不加印字
  • 销售折让怎么开票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设