首页 > 其他分享 >vue 弹窗组件

vue 弹窗组件

时间:2023-12-03 20:56:38浏览次数:33  
标签:vue false 对话框 closeAddAndEditForm 组件 弹窗

vue 弹窗

  • <el-dialog> </el-dialog>

    • 可以在其中编写所需的弹窗显示的内容
    • 也可以在其中放组件标签作为弹窗
  • 放一个组件的话,例:

    <el-dialog v-model="addGoodsDialog" :title="addGoodsTitle" width="60%" destroy-on-close="true"
               :close-on-press-escape="false" :close-on-click-modal="false">
        <addGoods @closeAddAndEditForm="closeAddAndEditForm" @saveCallBack="saveCallBack"
                  :opr-flag="oprFlag"
                  ref="appGoods" :goodsSPFLOptions="goodsSPFLOptions" :addGoodsData="addGoodsData"
                  ></addGoods>
    </el-dialog>
    
    • v-model="addGoodsDialog" ——> const addGoodsDialog = vue.ref(false); // 对话窗显示与否( boolean 值判断是否开弹窗 —— 因为修饰在了弹窗标签上 )

      • 点击增加方法事件后:addGoodsDialog.value = true; // 打开弹窗
    • :title="addGoodsTitle" ——> const addGoodsTitle = vue.ref(''); // 弹出的对话框的标题( 固定的? )

      • 点击增加方法:addGoodsTitle.value = "新增商品"; // 改变标题
      • 常见的 title 是静态属性,值是固定不变的
      • :title 是动态属性,是通过 Vue 的数据绑定语法将一个变量的值动态绑定到属性上
    • destroy-on-close="true" ——> 控制在关闭对话框时是否销毁对话框组件:当设置为 false 时,对话框关闭时组件将保留在 DOM 中,下次打开时不需要重新创建

    • :close-on-press-escape="false" ——> 控制是否在按下键盘的 ESC 键时关闭对话框:当设置为 true 时,按下 ESC 键将关闭对话框

    • :close-on-click-modal="false" ——> 控制是否在点击对话框外的区域时关闭对话框:当设置为 false 时,点击对话框外的区域不会关闭对话框

    • @closeAddAndEditForm="closeAddAndEditForm" ——> 接收子组件传来的方法或值( 注意是子组件 emit("xx") 的和父组件的 @xx 相对应 )

      • 子组件里编码 emit("closeAddAndEditForm"); 回调,就会触发父组件的 @closeAddAndEditForm,然后父组件调用双引号里面的 closeAddAndEditForm 方法:

        const closeAddAndEditForm = () => { // 若是子组件传了参数,就在这行的 = () => 的括号里面接收,{ 里做处理 }
            addGoodsDialog.value = false; // 关闭弹窗
        };
        
    • @saveCallBack="saveCallBack" ——> 与上述同理

    • :opr-flag="oprFlag" ——> const oprFlag = vue.ref('') // 增或改的标识(add / edit)

    • ref="appGoods" ——> 是将对话框内部的子组件 <addGoods> 注册为对话框组件的引用,这样就可以通过这个引用来访问子组件的实例或调用子组件的方法

    • :goodsSPFLOptions:addGoodsData 就和 :opr-flag="oprFlag" 一样是自己向传入到组件中使用的数据

  • 当然也可以直接在同一个 vue 里( 不另起 vue 组件 ):

    // ...... 主页面内容
    <el-dialog v-model="dialogFormVisible" :title="editGoodsTitle">
        <el-container>
            <el-main>
                // ......
            </el-main>
        </el-container>
    </el-dialog>
    

标签:vue,false,对话框,closeAddAndEditForm,组件,弹窗
From: https://www.cnblogs.com/zhu-ya-zhu/p/17873743.html

相关文章

  • vue 编辑器+使用场景+问题解决
    vue编辑器组件添加依赖"dependencies":{"@codemirror/autocomplete":"^6.4.2","@codemirror/commands":"^6.2.1","@codemirror/lang-javascript":"^6.0.2","@codemirror/lan......
  • vue 循环显示数据场景
    vue循环显示数据el-table中<template> <el-table:data="goodsList"> <el-table-columnprop="goodsName"label="商品名称"></el-table-column> <!--......--></el-table></template>......
  • 基于uQRCode封装的Vue3二维码生成插件
    标题:基于uQRCode封装的Vue3二维码生成插件摘要:本文介绍了一种基于uQRCode封装的Vue3二维码生成插件,可以在Javascript运行环境下生成二维码并返回图片地址。该插件适用于所有Javascript运行环境,并且支持微信小程序。本文将详细介绍该插件的使用方法,并给出一个基于Vue3的示例。关......
  • 仿京东淘宝商品列表筛选组件:实现一个高效的侧边栏弹框筛选功能
    仿京东淘宝商品列表筛选组件:实现一个高效的侧边栏弹框筛选功能一、引言随着电子商务的快速发展,用户体验成为了竞争的关键因素。在众多的电商网站中,如京东和淘宝,商品列表筛选功能为用户提供了便捷的途径来找到心仪的商品。本文将详细介绍如何使用cc-widget、uni-icons和xg-list......
  • 一篇随笔学习React18组件通信与插槽
    了解什么是jsx->https://www.cnblogs.com/senior-shef/p/17872695.html一、了解props1、什么是propsReact支持两种组件,DOM组件和React组件。DOM组件指的是所有的HTML和SVG标签。比如说,如果我们想要使用标签,在React中,可以设置src和alt等属性。这些属性与纯HTML写法相同。在Rea......
  • 自定义精美商品分类列表组件 侧边栏商品分类组件 category组件(适配vue3)
    随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。通过组件化开发,可以有效实现单独开发,单独维护,而且他们之间可以随意的进行组合。大大提升开发效率......
  • vue3中css使用js中的变量
    <scriptsetuplang="ts">import{SoundOutlined}from'@ant-design/icons-vue'constprops=defineProps({title:{type:String,default:''},color:{type:String,default:'#000'}......
  • Vue 常用的指令都有哪些?
    1、v-model多用于表单元素实现双向数据绑定(同angular中的ng-model)2、v-for格式:v-for="字段名in(of)数组json"循环数组或json(同angular中的ng-repeat),需要注意从vue2开始取消了$index3、v-show显示内容(同angular中的ng-show)4、v-hide隐藏内容(同angular......
  • 防御式CSS—设置组件间距
    我们开发人员需要考虑不同的内容长度。这意味着,应该向组件添加间距,即使它看起来不需要。在这个例子中,我们在右侧有一个章节标题和一个操作按钮。目前,它看起来不错。但是让我们看看当标题更长时会发生什么。注意到文本离操作按钮太近了吗?你可能会想到多行包装,但我会在另一节谈......
  • Vue3 读取Hdr 文件转Image显示
    import{decodeRGBE}from'@derschmale/io-rgbe';//引入io-rgbe//读取Hdr文件constReadHdrFile=(buffer:ArrayBufferLike&{BYTES_PER_ELEMENT?:undefined;})=>{consthdri=decodeRGBE(newDataView(buffer))constdata=hdri.data;......