Je travaille sur un projet nécessitant l'utilisation d'un plugin js. Maintenant que nous utilisons vue et que nous avons un composant pour gérer la logique basée sur le plug-in, je dois importer le fichier de plug-in js dans le composant vue afin d'initialiser le plug-in.
Auparavant, cela était géré dans le balisage comme suit:
<script src="//api.myplugincom/widget/mykey.js
"></script>
C'est ce que j'ai essayé, mais j'obtiens une erreur de compilation:
MonComponent.vue
import Vue from 'vue';
import * from '//api.myplugincom/widget/mykey.js';
export default {
data: {
Ma question est la suivante: quelle est la bonne façon d’importer ce fichier javascript afin que je puisse l’utiliser dans mon composant vue? ...
Essayez d'inclure votre JavaScript (externe) dans le crochet monté de votre composant Vue.
<script>
export default {
mounted() {
const plugin = document.createElement("script");
plugin.setAttribute(
"src",
"//api.myplugincom/widget/mykey.js"
);
plugin.async = true;
document.head.appendChild(plugin);
}
};
</script>
Référence: Comment inclure une balise sur un composant Vue
Si vous souhaitez importer un code JavaScript local dans votre composant Vue, vous pouvez l'importer de la manière suivante:
MonComponent.vue
<script>
export default {
import * as mykey from '../assets/js/mykey.js'
}
</script>
Supposons que la structure de votre projet ressemble à:
src
- assets
- js
- mykey.js
- components
MyComponent.vue
Et vous pouvez exporter des variables ou des fonctions dans mykey.js:
export let myVariable = {};
export const MY_CONST = 1;
export function myFoo() {
console.log('Hello.');
}
Pour les scripts que vous importez dans le navigateur (c'est-à-dire avec des balises), ils rendent généralement certaines variables disponibles globalement.
Pour ceux-ci, vous n'avez rien à importer. Ils seront juste disponibles.
Si vous utilisez quelque chose comme Webstorm (ou l'un des IDE JetBrains associés), vous pouvez ajouter /* global globalValueHere */
pour lui indiquer que "hé, ceci n'est pas défini dans mon fichier, mais il existe." Ce n'est pas obligatoire, mais cela fera disparaître les lignes sinueuses "indéfinies".
Par exemple:
/* global Vue */
c’est ce que j’utilise lorsque je retire Vue d’un CDN (au lieu de l’utiliser directement).
Au-delà, vous l'utilisez comme vous le feriez normalement.
essayez de télécharger ce scriptimport * from '{path}/mykey.js'
.
ou script d'importation<script src="//api.myplugincom/widget/mykey.js"></script>
in<head>
, utilisez une variable globale dans votre composant.