Estoy creando una aplicación que usa Vue para nuestro front-end, específicamente Vue 3 Composición API + Typescript. Necesito la capacidad de usar trabajadores web para procesos de ejecución prolongada en segundo plano. Pude hacer que un trabajador web de vanillajs se ejecutara junto con la aplicación Vue sin problemas. Mi problema es que necesito que mi trabajador web tenga acceso a las clases y funciones que están escritas dentro de la aplicación Vue. Tanto mi trabajador web como mi aplicación Vue necesitan usar las mismas clases y funciones y no quiero tener que escribirlas en dos lugares. ¿Hay alguna manera de compartirlos? Cualquier ayuda es apreciada.
La respuesta es sí:
Hay una manera de permitir que el trabajador web tenga acceso al marco Vue.js a través de un solo archivo JavaScript .
La biblioteca que lo ayudará con esto en su proyecto Vue.js es vue-worker . Esta biblioteca utiliza el paquete simple-web-worker . (Enfoque de trabajadores web en línea)
Como sabrá, un trabajador web estándar requiere un archivo js adicional que contendrá el código del trabajador. Para los trabajadores web en línea, no es necesario utilizar un método auxiliar. Eso inyectará una propiedad en Vue (y la pasará a cada componente secundario), con un nombre predeterminado de $worker . En total se puede decir que se está comportando como una promesa JavaScript pero sin ser realmente un segundo archivo JavaScript .
Ahora te toca:
Hay una muy buena documentación para seguir junto con este enfoque que describí y una segunda forma adicional "anticuada". Pruébalo :)