所以,想象一下 Vueindex.html
还加载了一些自定义脚本:
<!DOCTYPE html>
<html lang="en">
<head>
...
...
<script type="text/javascript">
languagePluginLoader.then(function () {
pyodide.loadPackage("someName").then(() => {
// Send message to Vue that everything is fine
}).catch((err) => {
// Send message to Vue that it failed
})
})
</script>
...
...
</head>
<body>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
有没有办法从文件中与正在运行的 Vue 实例或/和 Vuex 进行通信index.html
?例如,我想在脚本完全加载之前显示“正在加载...”等。
一种方法是将消息发送到 service worker,然后从 service worker 发送到 Vue,但感觉不切实际。
另一种方法是
windows.script_status = true
在初始化之后设置,但是window
对象不是响应式的,所以 Vue 会检查一次,获取undefined
并忘记它。script.onload
UPD:第三种方法是从 Vue 端注入脚本,并在它准备好时放入一些函数,但不确定解决方案有多稳定。
所以,任何建议都可以:)