¿Cómo agregar scripts JS externos a los componentes VueJS?

Resuelto Gijo Varghese asked hace 7 años • 24 respuestas

Tengo que usar dos scripts externos para las pasarelas de pago.

Ahora mismo ambos están archivados index.html.

Sin embargo, no quiero cargar estos archivos desde el principio.

La pasarela de pago solo es necesaria cuando el usuario abre un componente específico ( using router-view).

¿Hay alguna forma de lograr esto?

Gracias.

Gijo Varghese avatar Jul 12 '17 09:07 Gijo Varghese
Aceptado

Una forma simple y efectiva de resolver esto es agregando su script externo al vue mounted()de su componente. Te ilustraré con el script Google Recaptcha :

<template>
   .... your HTML
</template>

<script>
  export default {
    data: () => ({
      ......data of your component
    }),
    mounted() {
      let recaptchaScript = document.createElement('script')
      recaptchaScript.setAttribute('src', 'https://www.google.com/recaptcha/api.js')
      document.head.appendChild(recaptchaScript)
    },
    methods: {
      ......methods of your component
    }
  }
</script>

Fuente: https://medium.com/@lassiuosukainen/how-to-include-a-script-tag-on-a-vue-component-fe10940af9e8

manuelmejiaio avatar Oct 29 '2017 16:10 manuelmejiaio

Descargué una plantilla HTML que viene con archivos js y jquery personalizados. Tuve que adjuntar esos js a mi aplicación. y continuar con Vue.

Este paquete me funciona perfectamente en este caso https://www.npmjs.com/package/vue-plugin-load-script

// local files
// you have to put your scripts into the public folder. 
// that way webpack simply copy these files as it is.
Vue.loadScript("/js/jquery-2.2.4.min.js")

// cdn
Vue.loadScript("https://maps.googleapis.com/maps/api/js")
Pasindu Jay avatar Jan 02 '2019 06:01 Pasindu Jay