vben:对话框组件(不从父组件传递数据)

本文将介绍如何在vben admin vue 框架中,创建对话框组件,并成功应用的代码。代码即插即用。

结果如下图所示,

在这里插入图片描述

一、创建对话框组件

创建 myModal/index.vue

<template>
  <div>
    <BasicModal
      @register="registerModal"
      v-bind="$attrs"
      title="示例对话框"
      @ok="handleSubmit"
      width="58%"
    >
      <p>这是示例内容</p>
    </BasicModal>
  </div>
</template>
<script lang="ts" setup>
  import { BasicModal, useModalInner } from '/@/components/Modal';
  const [registerModal, { closeModal, setModalProps }] = useModalInner(async (data: any) => {
    setModalProps({ confirmLoading: false });
    console.log(data);
  });
  const handleSubmit = () => {
    closeModal();
  };
</script>

二、应用对话框组件

<template>
  <div class="more"  @click="showModal">
    <span class="more-span">点击显示对话框</span>
    <i class="arrow"></i>
  </div>
  <myModal width="50%" @register="modalOpen" @success="handleSuccess" ></myModal>
</template>

<script lang="ts" setup>
  import { ref } from 'vue';
  import myModal from './myModal/index.vue';
  import { useModal } from '/@/components/Modal';
  const [modalOpen, { openModal }] = useModal();

  // true时显示。
  const showModal = (record: any) => {
    openModal(true, { isUpdate: true, record });
  };
</script>
### vben admin框架中弹窗功能的使用与实现 在vben admin框架中,弹窗功能可以通过`useModal`钩子来实现[^2]。此钩子提供了创建、显示和关闭模态框的能力,并支持多种配置选项。 #### 创建并展示弹窗 以下是基于vben admin框架的一个简单示例: ```javascript import { useModal } from '/@/components/Modal'; import authorizeModel from './component/authorizeModel.vue'; export default { setup() { const [registerModal, { openModal }] = useModal({ title: '授权管理', width: 800, componentProps: { okText: '确认', cancelText: '取消' } }); function handleOpenModal() { openModal(true, { record: {}, // 可以传递一些初始数据到弹窗内部 }); } return { registerModal, handleOpenModal, }; }, }; ``` 在此代码片段中,`useModal`被用来注册一个模态框实例 `registerModal` 和其控制函数集合 `{openModal}`。调用 `handleOpenModal()` 方法即可打开该模态框[^2]。 #### 组件间通信 当需要从父组件向弹窗传递参数或者让弹窗返回某些处理结果时,可以利用Vue中的`props`机制以及 `$emit` 来完成交互[^5]。例如,在上述例子中,通过 `record` 参数可将初始化数据发送至弹窗;而弹窗内的操作结果则可通过触发特定事件通知给父级组件。 另外需要注意的是,虽然也可以采用嵌套方式编写独立于页面逻辑之外的小型对话框组件[^1],但在实际项目开发过程中更推荐保持清晰分离的设计原则——即将同职责的功能模块分别存放在各自的文件当中以便维护与扩展。 ### 总结 综上所述,借助vben admin所提供的工具集能够较为便捷地构建具备复杂业务场景需求的应用程序界面元素之一即为模态窗口部件。它仅简化了传统手动渲染DOM节点的过程而且还增强了用户体验效果的同时也提高了代码重用率降低了耦合度等问题的发生几率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值