Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

308
Vistas
Vue3: ¿cómo evitar que Vitejs borre/reemplace todo el contenido DOM al montar la aplicación?

Vengo de Vue 2 y estaba acostumbrado a tener mis páginas html estándar de wordpress y usar algunos componentes de Vue dentro de ellas. Simplemente pasé el contenedor a la propiedad principal de la aplicación, y luego pude usar componentes en el contenedor, donde quería, sin tener que borrar o reemplazar todo el contenido del contenedor predeterminado. Básicamente, pasar un elemento dom a la propiedad el convertía ese elemento en una aplicación Vue, con todo su contenido (incluso sin ningún componente Vue).

Con Vue 3 y createApp, parece que no hay forma de hacerlo, ya que tan pronto como monto la aplicación en un contenedor (por ejemplo, #app), todo el contenido del contenedor se borra o se reemplaza con la plantilla del componente (si se pasa un componente ). Incluso lo siguiente, que no usa ningún componente, borrará todo el contenido original de la #aplicación:

 import { createApp } from 'vue' createApp({ }).mount('#app');

¿Como evitar? ¿Cómo usar algunos componentes de repuesto en una página html gratuita? ¿Y qué tal SFC usado de la misma manera?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Técnicamente, Vue siempre reemplaza el contenido del elemento (Vue 2 reemplazaba el elemento en sí, Vue 3 reemplaza su contenido interno - guía de migración )

SI la aplicación/componente que se está montando no tiene una opción de template o una función de render , entonces (y solo entonces) Vue toma el contenido original del elemento DOM (antes de que se monte) e intenta compilarlo en la función de procesamiento (es por eso que necesita Compilador + compilación en tiempo de ejecución cuando se usan plantillas en DOM)

También significa que si su página consiste principalmente en HTML estático (de WordPress) y solo "pequeñas chispas" de Vue, esta solución es muy ineficaz y la razón por la que existe petit-vue (recomiendo leer Comparación con Vue estándar

De todos modos. No puedo reproducir tu problema...

 const app = Vue.createApp({ }).mount("#app")
 <script src="https://unpkg.com/vue@3.2.9/dist/vue.global.js"></script> <div id='app'> <div> <h2>Hello from HTML!</h2> </div> </div>

Entonces, ¿qué puede estar mal?

  1. Verifique la consola de herramientas de desarrollo del navegador para ver si hay algún mensaje de error: si el paso de compilación (de la plantilla recuperada de DOM) falla, Vue no renderizará nada y parecerá que "Vue borra todo después del montaje".
  2. Tenga cuidado con las advertencias de análisis de plantillas DOM . Los navegadores tienden a "arreglar" HTML no válido antes de que Vue lo lea desde el DOM; puede causar errores extraños
  3. Asegúrese de usar una distribución de Vue que incluya un compilador de plantillas. Si no lo hace, también se producirá un error y se borrará todo el contenido.
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda