vue3使用ant-design-vue的Modal的小技巧

本文介绍了如何在Vue中正确使用Ant Design的Modal组件,包括如何选择挂载节点以避免内容冲突,以及如何通过绑定getContainer方法实现与外部元素的交互,同时提到了移动Modal位置的官方示例。
摘要由CSDN通过智能技术生成

1.getContainer。

  在使用Modal时,可选择是否挂载到某个HTML节点,一般不想让背面的方法被触发,会选择不挂载,这样Modal会默认挂载到和<div id="app"></div>同一级别下的节点上,遮罩会将app里面的内容覆盖,导致app里面的内容无法使用,只要把Modal关了就可以继续使用。

  而当我们想用背景的内容来操纵Modal里面的数据的时候,往往需要操作app里面的内容,例如点击按钮等等。这个时候就需要把Modal绑定到指定的节点上,博主一般选择在使用<a-modal>的同级别下新建一个div来让它挂载。

  而在官方文档中getContainer需要绑定的是HTMLElement类型的数据,所以我们可以这样写:

<template>
    <div>
        <div id="modalBox"></div>
        <a-button type="primary" @click="showModal">弹窗</a-button>
        <a-modal v-model:visible="visible" title="弹窗" :getContainer="getContainer">
          <p>测试</p>
        </a-modal>
    </div>
</template>
<script lang="ts" setup>
import { ref } from "vue"

const visible = ref<boolean>(false)

const showModal = () => {
    visible.value = !visible.value
}

const getContainer = () => {
  return document.getElementById("modalBox")
}

</script>

2. Modal移动

  移动弹窗的位置其实在官网就已经有了完整的代码了:

https://www.antdv.com/components/modal-cn#components-modal-demo-modal-render

通过使用vueuse来移动,需要注意的是<a-modal>里面多了一个modalRender的插槽,这个不能省略,不然就移动不了了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值