Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

306
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda