我正在构建一个使用 Vue 作为前端的应用程序,特别是 Vue 3 Composition API + Typescript。我需要能够使用网络 worker 在后台长时间运行的进程。我能够让 vanillajs Web Worker 与 Vue 应用程序一起运行,没有问题。我的问题是,我需要我的网络 worker 能够访问 Vue 应用程序内编写的类和函数。我的 Web Worker 和 Vue 应用程序都需要使用相同的类和函数,我不想将它们写在两个地方。有办法分享吗?如有任何帮助,我们将不胜感激。
最佳答案
答案是肯定的:
有一种方法可以让 Web Worker 通过一个 JavaScript
文件访问 Vue.js
框架。
在 Vue.js
项目中可以帮助您完成此任务的库是 vue-worker
。该库使用 simple-web-worker
包。 (内联Web Workers方法)
如您所知,标准 Web Worker 需要一个额外的 js
文件,其中包含 Worker 的代码。对于内联网络 worker 来说,没有必要使用辅助方法。这会将一个属性注入(inject)到 Vue
中(并将其传递给每个子组件),默认名称为 $worker
。总的来说,您可以说它的行为就像一个 JavaScript
promise ,但实际上并不是第二个 JavaScript
文件。
现在轮到你了:
有一个非常好的documentation遵循我描述的这种方法并添加第二种“老式”方法。尝试一下:)
关于javascript - Web Workers 可以访问 Vue 应用程序中定义的类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71487912/