I’ve to use two external scripts for the payment gateways.
Right now both are put in the index.html
file.
However, I don’t want to load these files at the beginning itself.
The payment gateway is needed only in when user open a specific component (using router-view
).
Is there anyway to achieve this?
Thanks.
Advertisement
Answer
A simple and effective way to solve this, it’s by adding your external script into the vue mounted()
of your component. I will illustrate you with the Google Recaptcha script:
<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>
Source: https://medium.com/@lassiuosukainen/how-to-include-a-script-tag-on-a-vue-component-fe10940af9e8