javascript - 在加载组件之前加载外部脚本 - Vue.js

标签 javascript vue.js

在我的 Vue 项目中,我想从服务器加载一个脚本(例如 https://myurl.com/API.js )。
该脚本包含一个变量,我想在我的 Vue 组件( View )中使用它。
问题是当我使用 loadScript 模块加载该脚本时:

import Vue from 'vue'
import LoadScript from 'vue-plugin-load-script';

Vue.use(LoadScript);
Vue.loadScript('https://quvia.cz:4443/portalAPI.js')

然后在 Vue 组件之后加载,所以当尝试 console.log(externalScriptVariable) ,它是未定义的。如果我将 setTimeout 持续 1 秒,它会很好地输出变量。

我可以在 Vue.js 中做什么来“等待”脚本加载,以便它会在所有其他 Vue 组件之前加载?

最佳答案

您可以使用 async/await

import Vue from 'vue'
import LoadScript from 'vue-plugin-load-script';

Vue.use(LoadScript);

(async function() {
  await Vue.loadScript('https://quvia.cz:4443/portalAPI.js');
  // other things after script loaded
})(); 

或 promise 的then
import Vue from 'vue'
import LoadScript from 'vue-plugin-load-script';

Vue.use(LoadScript);

Vue.loadScript('https://quvia.cz:4443/portalAPI.js').then(() => {
  // other things after script loaded
})
.catch(() => {
  // error
});

关于javascript - 在加载组件之前加载外部脚本 - Vue.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60990029/

相关文章:

javascript - 将数字转换为字符串并返回所有可能的排列

javascript - 从 jQuery AJAX 调用返回信息并在成功时执行其他 jQuery

vue.js - 从源访问 XMLHttpRequest 已被 CORS 策略阻止(Vue.JS 应用程序调用 Lumen 应用程序)

javascript - 如何让 Vue 在 init 时自动实例化组件?

javascript - vue.js - 如何监视嵌套对象的属性并获取索引?

javascript - 如何专注于使用 ng-repeat angularjs 生成的第一个输入字段

javascript - D3 在工具提示中插入图表

javascript - Vue JS 将递增的数字保存到 Firebase 数据库

javascript - $emit 内部异步方法 - Vue2

javascript - 从书签打开页面,但是,让它像模态窗口一样?