Vben Admin学习笔记

Modal 弹窗

modal弹窗一般作为单文件组件被引用,下面是两段示例代码:

弹窗文件 Modal.vue

html 复制代码
// Modal.vue
<template>
  <BasicModal v-bind="$attrs" title="Modal Title" :helpMessage="['提示1', '提示2']">
    Modal Info.
  </BasicModal>
</template>
<script lang="ts">
  import { defineComponent } from 'vue';
  import { BasicModal } from '/@/components/Modal';
  export default defineComponent({
    components: { BasicModal },
    setup() {
      return {};
    },
  });
</script>

主页面 Page.vue

html 复制代码
// Page.vue
<template>
  <div class="px-10">
    <Modal @register="register" />
  </div>
</template>
<script lang="ts">
  import { defineComponent } from 'vue';
  import { useModal } from '/@/components/Modal';
  import Modal from './Modal.vue';
  export default defineComponent({
    components: { Modal },
    setup() {
      const [register, { openModal }] = useModal();
      return {
        register,
        openModal,
      };
    },
  });
</script>

useModal 用于实现外部组件调用

useModal用于操作组件:

html 复制代码
 const [register, { openModal }] = useModal()

register

register用于注册useModal,如果需要使用useModal提供的api,必须将register传入组件的onRegister。其原理就是:vue的组件子传父通信,内部通过emit("register",instance)实现,同时独立出去的组件需要将attrs绑定到BasicModal上面。

openModal 方法用于打开/关闭弹窗

打开弹窗

html 复制代码
// true/false: 打开关闭弹窗
// data: 传递到子组件的数据
openModal(true, data);

关闭弹窗

html 复制代码
closeModal();

setModalProps用于在父组件中设置弹窗的参数:

html 复制代码
setModalProps(props);

以下是props的属性值:


useModalInner 独立弹窗

上面的例子,父组件和弹窗是分开的,就是父组件和弹窗是两个文件,但是独立弹窗是把弹窗写在了父组件里边,相应的就会多了几个方法,但是实际开发中为了好区分弹窗和页面,我们一般都用第一种方法,把两者区分开,所以下面的独立弹窗就不介绍了,放两张图,感受一下:

感兴趣的话可以移步官网: https://www.reawing.com/doc-next/components/modal.html#usage-1



相关推荐
云上艺旅8 小时前
K8S学习之基础七十四:部署在线书店bookinfo
学习·云原生·容器·kubernetes
ElasticPDF-新国产PDF编辑器8 小时前
Vue use pdf.js and Elasticpdf tutorial
vue.js·pdf
你觉得2058 小时前
哈尔滨工业大学DeepSeek公开课:探索大模型原理、技术与应用从GPT到DeepSeek|附视频与讲义下载方法
大数据·人工智能·python·gpt·学习·机器学习·aigc
A旧城以西10 小时前
数据结构(JAVA)单向,双向链表
java·开发语言·数据结构·学习·链表·intellij-idea·idea
无所谓จุ๊บ10 小时前
VTK知识学习(50)- 交互与Widget(一)
学习·vtk
FAREWELL0007510 小时前
C#核心学习(七)面向对象--封装(6)C#中的拓展方法与运算符重载: 让代码更“聪明”的魔法
学习·c#·面向对象·运算符重载·oop·拓展方法
Billy Qin10 小时前
Tree - Shaking
前端·javascript·vue.js
月明长歌10 小时前
Vue + Axios + Mock.js 全链路实操:从封装到数据模拟的深度解析
前端·javascript·vue.js·elementui·es6
吴梓穆10 小时前
UE5学习笔记 FPS游戏制作38 继承标准UI
笔记·学习·ue5
头顶秃成一缕光11 小时前
若依——基于AI+若依框架的实战项目(实战篇(下))
java·前端·vue.js·elementui·aigc