Después de crear un proyecto CLI, necesito agregar un cuadro de diálogo Modal, después de buscar un poco encontré lo que parece ser un buen ejemplo en Crear MODALS reutilizables usando VUE JS, por Shmoji . El tutorial está bien escrito y también hay un YouTube.
En el archivo modual.service.js existe el siguiente código:
import Vue from 'vue'; export default new Vue({ methods: { open(component, props = {}) { return new Promise((resolve, reject) => { this.$emit('open', { component, props, resolve, reject }); }); } } })Aquí es donde me sale el error que dice:
TypeError no detectado: vue__WEBPACK_IMPORTED_MODULE_1__.default no es un constructor
Está apuntando a la segunda línea de código, export default new Vue({
En mi archivo main.js, ya creé Vue, por lo que no tiene sentido para mí por qué el autor modal está tratando de sobrescribir el Vue que ya existe.
//main.js import { createApp, reactive, computed, VueElement } from 'vue' import App from './App.vue' import router from './router' import './assets/styles.css' import moment from 'moment' const app = createApp(App).use(router) app.config.globalProperties.$moment=moment; app.mount('#app')Me parece que el método de apertura global debe incluirse en main.js, pero no estoy seguro de cómo se hace o cómo evitar el error anterior si el método de apertura del servicio modal permanece en su propio archivo.
Este diálogo modal no es compatible con Vue3. Respondí esta pregunta con más detalle en esta publicación de StackOverflow .