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

199
Visualizações
Vue3: ¿Cómo montar un componente en una aplicación existente?

Digamos que ya tenemos una App montada, en main.js:

 createApp(App).mount('#app');

Y me gustaría escribir una función, que debería llamarse así:

 createModal({ render: () => <SomeComponent />, });

Normalmente, cuando implementamos funciones como las anteriores, simplemente llamamos a la createApp(h(render)) y luego montamos su instancia en cualquier lugar que queramos.

Pero el problema es que cuando lo hicimos, la instancia modal no heredará nada de la aplicación raíz.

Entonces, si tenemos algo como provide('root', 'here') procesado en la aplicación raíz, y luego llamamos a inject('root') en la otra aplicación, no obtendremos el resultado de la cadena here .

En cambio, el resultado será undefined , porque estas dos aplicaciones no comparten el mismo contexto.

¿Qué debo hacer para hacer las cosas bien?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Esto es lo que podrías hacer:

 const { createApp, reactive, toRefs, defineComponent, computed } = Vue; const state = reactive({ foo: 'bar' }) createApp({ setup() { const addDynamicApp = () => { const div = document.createElement('div'); document.querySelector('#app').appendChild(div); createApp({ setup: () => ({ ...toRefs(state) }), template: `<h3>Dynamic child (new App)</h3> <input v-model="foo">` }).mount(div); }; return { ...toRefs(state), addDynamicApp } } }).mount('#app')
 #app { border: 2px solid #f50; padding: 1rem; }
 <script src="https://unpkg.com/vue@next/dist/vue.global.prod.js"></script> <div id="app"> <input v-model="foo" /> <button @click="addDynamicApp">Add dynamic app</div> </div>


Los principios subyacentes son:

  • cualquier aplicación puede leer/escribir desde/hacia un estado reactivo ( ...toRefs(state) , en ambos)
  • una aplicación se puede montar en cualquier <div> , incluso si ese div forma parte de otra aplicación.

Puede tener tantas aplicaciones, compartiendo el mismo estado reactivo. Pueden estar completamente separados en DOM o anidados entre sí.

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