位置: 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栈堆的区别)

  • iwatch微信键盘怎么调出来(apple watch微信键盘输入)

    iwatch微信键盘怎么调出来(apple watch微信键盘输入)

  • 高德地图怎么修改家的位置(高德地图怎么修改起点)

    高德地图怎么修改家的位置(高德地图怎么修改起点)

  • vivos6用的是什么处理器(vivos6好不好用)

    vivos6用的是什么处理器(vivos6好不好用)

  • 华为nova4是几瓦快充(nova4用多少瓦充电器)

    华为nova4是几瓦快充(nova4用多少瓦充电器)

  • 钢化膜彩虹边的危害(钢化膜边缘彩虹伤眼吗)

    钢化膜彩虹边的危害(钢化膜边缘彩虹伤眼吗)

  • 怎样隐身访问陌生人的qq空间(怎样隐身访问陌生人的qq空间,还会显示加一吗)

    怎样隐身访问陌生人的qq空间(怎样隐身访问陌生人的qq空间,还会显示加一吗)

  • 小红书如何上传高清视频(小红书如何上传音乐)

    小红书如何上传高清视频(小红书如何上传音乐)

  • 腾讯视频怎么取消连续包月会员(腾讯视频怎么取消续费)

    腾讯视频怎么取消连续包月会员(腾讯视频怎么取消续费)

  • 微信聊天记录多久会自动消失(微信聊天记录多久可以撤回)

    微信聊天记录多久会自动消失(微信聊天记录多久可以撤回)

  • 为什么我的手机爱奇艺没有二维码登录(为什么我的手机别人打不进来电话)

    为什么我的手机爱奇艺没有二维码登录(为什么我的手机别人打不进来电话)

  • 华为手机程序准备中是什么意思(华为手机程序准备中 重启没用)

    华为手机程序准备中是什么意思(华为手机程序准备中 重启没用)

  • 笔记本的del键在哪(笔记本del键坏了怎么办)

    笔记本的del键在哪(笔记本del键坏了怎么办)

  • 光端机是什么设备(什么叫光端机)

    光端机是什么设备(什么叫光端机)

  • 苹果下载的描述文件删除不了怎么办(苹果下载的描述文件在哪)

    苹果下载的描述文件删除不了怎么办(苹果下载的描述文件在哪)

  • ios11怎么改手机铃声(苹果11修改)

    ios11怎么改手机铃声(苹果11修改)

  • 8p充满电一般要多长时间(8p充满电一般要多少度电)

    8p充满电一般要多长时间(8p充满电一般要多少度电)

  • 苹果手机黑名单的人怎么找(苹果手机黑名单来电或信息拉出来能看到吗)

    苹果手机黑名单的人怎么找(苹果手机黑名单来电或信息拉出来能看到吗)

  • vivox27猜你喜欢怎么关闭(vivox27猜你喜欢怎么去掉)

    vivox27猜你喜欢怎么关闭(vivox27猜你喜欢怎么去掉)

  • xr自动开机设置(xr如何自动开机)

    xr自动开机设置(xr如何自动开机)

  • 金立s10b多任务界面在哪里(金立s10任务栏怎么设置)

    金立s10b多任务界面在哪里(金立s10任务栏怎么设置)

  • 苹果黑名单在哪里取消(苹果黑名单在哪里查看联系人)

    苹果黑名单在哪里取消(苹果黑名单在哪里查看联系人)

  • word怎么在横线上打字(word怎么在横线上写字横线不动)

    word怎么在横线上打字(word怎么在横线上写字横线不动)

  • 探探真实头像认证要多久(探探真实头像认证)

    探探真实头像认证要多久(探探真实头像认证)

  • 如何将PDF文件转换成WORD(如何将PDF文件转成高清图片)

    如何将PDF文件转换成WORD(如何将PDF文件转成高清图片)

  • 【微信小程序】一文带你了解数据绑定、事件绑定以及事件传参、数据同步(微信小程序怎么制作自己的小程序)

    【微信小程序】一文带你了解数据绑定、事件绑定以及事件传参、数据同步(微信小程序怎么制作自己的小程序)

  • 如何办理车辆购置置换补贴手续
  • 什么情况要缴印花税
  • 固定资产摊余成本例题
  • 农产品普票进项税抵扣怎么做账
  • 支付宝企业账户的钱怎么取出来
  • 房地产企业土地使用权入什么科目
  • 酒店出租会议室增值税税率
  • 事业单位银行存款余额组成
  • 持有至到期投资是什么意思
  • 铁路大票抵扣几个点
  • 商业企业收取各项费用的税务与会计处理
  • 跨月应该如何开具红字发票?
  • 契税和印花税的计税依据是一致吗
  • 资本回收系数怎么求
  • 商业承兑汇票怎么开
  • 超过标准的职工教育经费
  • 冲减存货的会计分录
  • 报废资产处置收入怎么计税
  • 仓储部门折旧计入什么科目
  • 主营业务税金及附加包括什么
  • 增值税专用发票和普通发票的区别
  • 电梯增值税率是多少
  • 2018年出口退税税率
  • 税务登记号和统计号区别
  • 增值税又有调整政策吗
  • 资本增值是什么
  • 自助设备使用费会计科目
  • 多缴个税账务处理
  • 开具发票的收入如何做账务处理?
  • 总资产报酬率是怎么算出来的
  • 预算与决算对比分析
  • 税务登记证遗失补办
  • 桌面图标被篡改怎么办
  • php脚本主要用于的三个领域
  • 网速不稳定的解决方法
  • 孕妇能吃荔枝吗 孕晚期
  • php实现的链式队列是什么
  • thinkphp框架入门
  • CNN+LSTM+Attention实现时间序列预测(PyTorch版)
  • php实现分页显示
  • php静态函数
  • 视图的定义和操作实验报告
  • php连接数据库步骤
  • 没有初级会计证可以从事会计工作吗
  • 微信公众号认证300元每年都要吗
  • 银行利息的收入计入什么科目
  • 财政拨款结转和非财政拨款结转区别
  • 营业外支出科目代码
  • 原始凭证分割单样本图片
  • 存货盘亏计入什么收入
  • 支付水电费如何做账务处理
  • 企业管理费用的分类
  • 预收账款挂多久确认收入
  • 免税收入和不征税收入有何区别
  • 今年发放去年的工资怎么入账
  • 别人公司过账用自己的银行卡会查吗
  • 企业转给法人的会计分录
  • 实收资本流程
  • 公司网站维护费用计哪个科目
  • 常用的sql语句有哪些
  • 英雄联盟win8
  • win10打开cad出现致命错误
  • win7更改win10系统要怎么更改
  • Win10系统怎样把Word转成PDF
  • 标签windows
  • linux系统中网络配置文件一般放在
  • centos屏蔽ip
  • u盘运行win10系统
  • win7一开机就弹窗
  • 如何在linux shell关闭443端口
  • Win7系统关闭自动更新
  • cocos2dx游戏开发框架
  • nodejs怎么启动服务
  • web开发手机app
  • android设计模式的应用场景
  • 事件委托jq
  • 安卓短信提示
  • python截屏幕的图
  • javascript中字符串
  • 河北电子税务局手机app
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设