This might be my unpopular opinion, but the dialog element is quite complete already. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog Answer from xfinxr2i on reddit.com
Discussions

vue.js - How to properly create a popup component in Vue 3 - Stack Overflow
As part of becoming a better Vue programmer, I am trying to implement a popup similar to Popper with a clean and Vueish architecture. Here is a simple schematic that I came up with: So basically t... More on stackoverflow.com
๐ŸŒ stackoverflow.com
Dynamic rendering of popup component vuejs
I would like to create a VueJS app and I have a problem. I would like to be able to display some components and when I will right click on it, a popup will be displayed. The problem is that the popup will be different for every component. More on stackoverflow.com
๐ŸŒ stackoverflow.com
Pearsons Vue pop up??

REMINDER: Read the rules please. Breaking subreddit rules WILL get you banned. Thank you!

  1. Absolutely no sharing of copyrighted materials by any means.

  2. Absolutely no selling or buying of any kind. This is not a marketplace.

  3. No sharing of personal information of anyone or in any format please.

  4. No sharing of specific NCLEX exam questions after your exam. They are still copyright protected.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

More on reddit.com
๐ŸŒ r/PassNclex
13
1
December 9, 2021
I tried the Pearson vue trick..Is this a โ€œgoodโ€ pop up? Not sure if I did it right

Hi all! So I attempted to do the glitch and I discovered that Pearson wants you to put in the correct card info. Putting in the wrong CVV number no longer works. You have to put all the credit/debit card info correct now. Once I did that, I got the good pop-up. I hope this helps! :)

More on reddit.com
๐ŸŒ r/NCLEX
23
4
August 30, 2022
๐ŸŒ
Telerik
telerik.com โ€บ components โ€บ overview
Vue Popup Overview - Kendo UI for Vue
The KendoVue Popup component is part of the KendoVue library of Vue UI components. It is distributed through NPM under the kendo-vue-popup package. The Popup is part of Kendo UI for Vue, a professional grade UI library with 110+ components for building modern and feature-rich applications.
๐ŸŒ
Stack Overflow
stackoverflow.com โ€บ questions โ€บ 65523395 โ€บ how-to-properly-create-a-popup-component-in-vue-3
vue.js - How to properly create a popup component in Vue 3 - Stack Overflow
So basically there is a target component, which is the reference for the popup's position. The popup can be positioned above, below, right and left of the target, therefore I will need to have access to the target element in my popup. Also, the target can be an arbitrary component.
๐ŸŒ
DevExtreme
js.devexpress.com โ€บ Vue โ€บ Demos โ€บ WidgetsGallery โ€บ Demo โ€บ Popup โ€บ Overview
Vue Popup - Overview | Vue Example
<template> <div id="container"> <div class="header">Employees</div> <ul> <EmployeeItem v-for="employee in employees" :key="employee.ID" :employee="employee" :show-info="showInfo" /> </ul> <DxPopup v-model:visible="popupVisible" :drag-enabled="false" :hide-on-outside-click="true" :show-close-button="false" :show-title="true" :width="300" :height="280" container=".dx-viewport" title="Information" > <DxPosition at="bottom" my="center" v-model:of="positionOf" collision="fit" /> <DxToolbarItem widget="dxButton" toolbar="top" locate-in-menu="always" :options="moreInfoButtonOptions" /> <DxToolbarItem
Find elsewhere
๐ŸŒ
DEV Community
dev.to โ€บ nirazanbasnet โ€บ easy-way-to-build-outside-click-popup-component-in-vuejs-2fj8
Easy way to build Outside Click Popup Component in Vue.js - DEV Community
May 29, 2023 - Overall, we have the template that consists of a root <div> element with the ID "app" serving as the Vue application's root. Inside this <div>, there is a PopupWrapper component that provides the outside click popup functionality. The PopupWrapper component contains two <template> elements: one for the header slot (#header) and one for the content slot (#content).
๐ŸŒ
BootstrapVue
bootstrap-vue.org โ€บ docs โ€บ components โ€บ modal
Modal | Components | BootstrapVue
<template> <div> <b-button @click="modalShow = !modalShow">Open Modal</b-button> <b-modal v-model="modalShow">Hello From Modal!</b-modal> </div> </template> <script> export default { data() { return { modalShow: false } } } </script> <!-- b-modal-v-model.vue -->
๐ŸŒ
PrimeVue
primevue.org โ€บ confirmpopup
Vue Confirmation Popup Component
ConfirmPopup displays a confirmation overlay displayed relatively to its target.
๐ŸŒ
YouTube
youtube.com โ€บ live โ€บ HorXomQrOi8
EASY Vue 3 POPUP Component ~ Button & Timed Triggers - YouTube
Learn how to build an easy Popup component with Vue 3 and the composition API. We look into a beginner friendly approach of setting up and building a Vue 3 a...
Published ย  January 13, 2021
Top answer
1 of 2
1

Here's a working example:
https://codesandbox.io/s/nervous-dew-kjb4ts


Step 1

Make a modal - see example.

We can use slots to put dynamic content, like other components in each instance of the modal, and named slots for multiple sections. We will control visibility in the outer component / the mixin.

<template>
  <transition name="modal">
    <div class="modal-header">
      <slot name="header"> default header </slot>
    </div>

    <div class="modal-body">
      <slot name="body"> default body </slot>
    </div>
    <slot name="footer">
      Default Footer
      <button class="modal-default-button" @click="$emit('close')">
       Close
      </button>
    </slot>
  </transition>
</template>

<script>
export default {
  name: "Modal",
};
</script>

<style scoped>
// See link above for full styles
</style>

Step 2

Create a mixin that all components containing a modal can extend from. Here we'll put methods for opening, closing and anything else you need. Create a data attribute to indicate modal state for use with v-if, then add two methods for opening and closing.

import Modal from "@/components/Modal";

export default {
  components: {
    Modal
  },
  data: () => ({
    modalState: false
  }),
  methods: {
    openModal() {
      this.modalState = true;
    },
    closeModal() {
      this.modalState = false;
    },
  },
};

Step 3

Create your components, that extend from the mixin, and use the modal component with whatever content you like.

You can trigger right-clicks using: @mouseup.right

<template>
  <div class="example-component comp1">
    <h2>Component 1</h2>
    <button @contextmenu.prevent
      @mouseup.right="openModal()"
      @click="tryRightClick()">
      Open Component 1 Modal
    </button>
    <Modal v-if="modalState" @close="closeModal()">
      <template v-slot:header> Component 1 Modal</template>
      <template v-slot:body>
        Lorem ipsum 
      </template>
    </Modal>
  </div>
</template>

<script>
import modalMixin from "@/mixins/component-modal-mixin";

export default {
  mixins: [modalMixin],
};
</script>

Step 4

Finally, just import your components.

<template>
  <div id="app">
    <h3>StackOverflow Answer for Terbah Dorian</h3>
    <i>Example of separate components opening separate modals</i>
    <Component1 />
    <Component2 />
    <Component3 />
  </div>
</template>

<script>
import Component1 from "@/components/Component1";
import Component2 from "@/components/Component2";
import Component3 from "@/components/Component3";

export default {
  name: "App",
  components: {
    Component1,
    Component2,
    Component3,
  },
};
</script>

Hope that helps :) If it did, then an upvote would be appreciated!

2 of 2
0

You can send a simple data to know which popup should be show to your client, for example:

in App.vue setup() section you have this :

const popup = reactive({
    type: "none",
    data: "hello world"
});

const popupToggle = ref(false);

function showPopup(type, data){
    popup.type = type;
    popup.data = data;
    popupToggle.value = true;
}
    
function closePopup(){
    popup.type = "none";
    popup.data = "empty";
    popupToggle.value = false;
}

and provide your functions into your project with :

provide("popupFunctions", {showPopup, closePopup});

and inject provided functions in other child documents with :

const {showPopup, closePopup} = inject("popupFunctions");

now all you need is call the functions which named showPopup and closePopup to change popup variable which you created before in your App.vue and check the popup type to show the targeted component as a popup to your client

Something like this in <template> section in your App.vue :

<popup-component v-if="popupToggle">
    <popup-msgbox v-if="popup.type === 'msgBox'" :popup-data="popup.data" />
    <popup-formbox v-else-if="popup.type === 'formBox'" :popup-data="popup.data" />
    <popup-errorbox v-else-if="popup.type === 'errBox'" :popup-data="popup.data" />
</popup-component>

of course you should import these components and other required things in your project as you know, and i just tried to clear the solve way for you. I hope my answer be clear to you and help you solve your problem.

๐ŸŒ
Nuxt UI
ui.nuxt.com โ€บ docs โ€บ components โ€บ modal
Vue Modal Component - Nuxt UI
<script setup lang="ts"> import { ref } from 'vue' import { LazyModalExample } from '#components' const count = ref(0) const toast = useToast() const overlay = useOverlay() const modal = overlay.create(LazyModalExample) async function open() { const instance = modal.open({ count: count.value }) const shouldIncrement = await instance.result if (shouldIncrement) { count.value++ toast.add({ title: `Success: ${shouldIncrement}`, color: 'success', id: 'modal-success' }) // Update the count modal.patch({ count: count.value }) return } toast.add({ title: `Dismissed: ${shouldIncrement}`, color: 'error', id: 'modal-dismiss' }) } </script> <template> <UButton label="Open" color="neutral" variant="subtle" @click="open" /> </template>
๐ŸŒ
DevExtreme
js.devexpress.com โ€บ Vue โ€บ Documentation โ€บ Guide โ€บ UI_Components โ€บ Popup โ€บ Show_and_Hide_the_Popup
Vue Popup - Show and Hide the Popup | Vue Documentation
Enable the showCloseButton property to allow a user to hide the Popup component by clicking the Close button. ... <template> <DxPopup :show-title="true" :show-close-button:"true" /> </template> <script> import 'devextreme/dist/css/dx.light.css'; import { DxPopup } from 'devextreme-vue/popup'; export default { components: { DxPopup } } </script>
๐ŸŒ
Quasar Framework
quasar.dev โ€บ vue-components โ€บ popup-proxy
Popup Proxy | Quasar Framework
The QPopupProxy is a Vue component that should be used when you need either a QMenu or a QDialog (on smaller screens) to be displayed.
๐ŸŒ
Vuetify
vuetifyjs.com โ€บ components โ€บ dialogs
Dialog component
Vuetify is a no design skills required Open Source UI Component Framework for Vue. It provides you with all of the t...
๐ŸŒ
YouTube
youtube.com โ€บ watch
Vue 3 Tutorial - Build reusable Popup Modal component with Composition API, Transition from scratch - YouTube
@TutsPrime In this tutorial we're going to learn how to make a reusable pop-up modal component with Vue.js 3. We're going to use composition API which is a n...
Published ย  January 15, 2022
๐ŸŒ
YouTube
youtube.com โ€บ watch
Use Vue Teleport to Make Modals and Popups - YouTube
One of the new features of Vue 3 that has been talked about for a while is the idea of Portals - or ways to move template HTML to different parts of the DOM....
Published ย  May 17, 2021
๐ŸŒ
Vuetify
vuetifyjs.com โ€บ en โ€บ components โ€บ dialogs
Dialog component โ€” Vuetify
The dialog component informs a user about a specific task and may contain critical information or require the user t...
๐ŸŒ
PopupSmart
popupsmart.com โ€บ popupsmart conversion rate optimization & digital marketing blog โ€บ how to build vue modal popups
How to Build Vue Modal Popups in 2026
2 weeks ago - Discover our commitment to transparency and why thousands trust Popupsmart. ... Guide to building Vue 3 modal popups: prerequisites, step-by-step BaseModal with v-model, Teleport, backdrop/Escape close, transitions, slots/props, scroll lock and accessibility; plus libraries, BootstrapVue integration, no-code Popupsmart, and common pitfalls.