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

183
Visualizações
¿Cómo accedo a la instancia de Vue dentro de un archivo js en Vue3?

En Vue2, pude acceder a mi instancia de Vue para utilizar los componentes registrados con Vue.

prueba.js

 import Vue from 'vue' export function renderLogin () { Vue.toasted.show('Please login again', { type: 'error', duration: 2000 }) }

En el código anterior, puedo acceder al paquete tostado porque ya lo he registrado con Vue en mi main.js. Sin embargo, en Vue3 no puedo usar el paquete tostado ya que no puedo acceder a la instancia de Vue dentro de un archivo js.

Necesita ayuda sobre cómo acceder a la instancia de Vue ('this') dentro de un archivo js.

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

0

Después de un día de búsqueda, pude acceder al componente tostado desde la instancia de vue dentro de un archivo js.

Primero, tendríamos que exportar la instancia de la aplicación para poder leerla en un archivo js

principal.js

 export const app = createApp({ render() { return h(AppWrapper); }, });

A continuación, tendríamos que registrar nuestro componente en nuestras propiedades globales de la instancia de nuestra aplicación.

 app.config.globalProperties.$toast = toast;

Ahora podemos importar la instancia de la aplicación en nuestro archivo js y acceder al componente de brindis

prueba.js

 import { app } from '@/main.js' app.config.globalProperties.$toast('Toast working fine', { type: 'success', duration: 2000, })

Espero que esto ayude a alguien. Por favor, hágame saber si hay otras/mejores formas. Gracias

about 4 years ago · Juan Pablo Isaza Relatório

0

// API de composición de Vue 3

 <script> import { getCurrentInstance } from 'vue'; export default { setup() { const _instance = getCurrentInstance(); const vueInstance = _instance.appContext; }, }; </script>

No es exactamente como en Vue2, pero esto probablemente expondrá lo que está buscando.


Si desea que un paquete esté disponible globalmente en Vue3, probablemente necesite agregar el siguiente código a un complemento:

 //* This will help for accessing the toasted instance in other files (plugins) app.config.globalProperties.$toasted = toasted; //* This will expose the toasted instance in components with this.$toasted app.provide('$toasted', toasted);

Con esto, puede obtener la instancia tostada en la API de opciones con: this.$toasted

Y con la api de composición: const { $toasted } = _instance.appContext.app.config.globalProperties;

Y en otro complemento con: constructor(app) { app.config.globalProperties; }

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede usar proveedor/inyectar .

Por ejemplo, si desea usar axios en mis componentes, proporcione axios en su main.js

 import { createApp } from "vue"; import App from "./App.vue"; import axios from "axios"; const app = createApp(App); app.provide("http", axios); app.mount("#app");

Luego, en el componente SFC, puede acceder de 2 maneras:

 // Composition API <script> import { inject } from 'vue' export default { setup() { const http = inject("http"); http.get("https://jsonplaceholder.typicode.com/todos/1").then((response) => { console.log(response.data); }); } } </script> // Vue 2 options API <script> export default { inject: ["http"], } </script>

Respuesta original aquí .

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