自定义modal模态框

在uni-app中,通过自定义组件和组件扩展来实现自定义的模态框Modal组件。

  1. 创建自定义组件:

在uni-app项目中,创建一个自定义的模态框组件。在components文件夹下创建一个名为CustomModal的文件夹,并在其中创建CustomModal.vue文件。在该文件中定义模态框的布局和样式,例如:

复制代码
<template>  
    <view class="custom-modal" v-if="visible">  
       <!-- 模态框的内容 -->  
       <view class="content">  
         <slot></slot>  
       </view>  
     </view>  
 </template>  
     
 <script>  
   export default {  
     props: {  
       visible: {  
         type: Boolean,  
         default: false  
       }  
     }  
   };  
  </script>  
 
  <style scoped>  
   .custom-modal {  
     position: fixed;  
     top: 0;  
     left: 0;  
     width: 100%;  
     height: 100%;  
     background-color: rgba(0, 0, 0, 0.5);  
     display: flex;  
     justify-content: center;  
     align-items: center;  
   }  
     
   .custom-modal .content {  
     width: 80%;  
     background-color: #fff;  
     padding: 20px;  
     border-radius: 10px;  
   }  
  </style>  

模态框组件默认是隐藏的(visible属性默认为false),当visible属性为true时,模态框显示。可以在content元素中放置模态框的内容,通过插槽(slot)的方式实现。

  1. 在需要使用模态框的页面中引入和使用自定义组件:

在需要显示模态框的页面中,引入和使用刚才创建的自定义模态框组件。例如,在pages文件夹下的home页面中,可以添加以下代码:

复制代码
 <template>  
     <view>  
       <!-- 页面内容... -->  
       <button @click="openModal">打开模态框</button>  
       <!-- 引入自定义模态框 -->  
       <custom-modal :visible="modalVisible">  
         <!-- 模态框的内容 -->  
         <view>  
           <text>这是一个自定义模态框</text>  
           <button @click="closeModal">关闭</button>  
         </view>  
       </custom-modal>  
     </view>  
   </template>  
     
   <script>  
   import CustomModal from "@/components/CustomModal";  
     
   export default {  
     components: {  
       CustomModal  
     },  
     data() {  
       return {  
         modalVisible: false  
       };  
     },  
     methods: {  
       openModal() {  
         // 打开模态框  
         this.modalVisible = true;  
       },  
       closeModal() {  
         // 关闭模态框  
         this.modalVisible = false;  
       }  
     }  
   };  
   </script>  

在页面中引入了创建的自定义组件CustomModal,并通过modalVisible属性控制模态框的显示和隐藏。点击"打开模态框"按钮时,调用openModal方法打开模态框,点击模态框内的"关闭"按钮时,调用closeModal方法关闭模态框。

相关推荐
saber_andlibert4 分钟前
TCMalloc底层实现
java·前端·网络
逍遥德4 分钟前
如何学编程之01.理论篇.如何通过阅读代码来提高自己的编程能力?
前端·后端·程序人生·重构·软件构建·代码规范
冻感糕人~19 分钟前
【珍藏必备】ReAct框架实战指南:从零开始构建AI智能体,让大模型学会思考与行动
java·前端·人工智能·react.js·大模型·就业·大模型学习
程序员agions23 分钟前
2026年,“配置工程师“终于死绝了
前端·程序人生
alice--小文子29 分钟前
cursor-mcp工具使用
java·服务器·前端
晚霞的不甘38 分钟前
揭秘 CANN 内存管理:如何让大模型在小设备上“轻装上阵”?
前端·数据库·经验分享·flutter·3d
小迷糊的学习记录1 小时前
0.1 + 0.2 不等于 0.3
前端·javascript·面试
空&白1 小时前
vue暗黑模式
javascript·vue.js
梦帮科技1 小时前
Node.js配置生成器CLI工具开发实战
前端·人工智能·windows·前端框架·node.js·json
VT.馒头2 小时前
【力扣】2695. 包装数组
前端·javascript·算法·leetcode·职场和发展·typescript