Mejor forma de obtener datos periodicamente y compartirla a componentes

Buenas tardes gente!, saludos desde Argentina.

Me gustaría consultarles cuál es la mejor solución para la necesidad que tengo ahora.

Por ahora estamos consultando un endpoint periódicamente (cada 15 min por ejemplo), esa información que obtenemos es necesitada en varios componentes.
Y necesitamos una forma de que los distintos componentes puedan consultar la información (que se encuentra actualizada), debido a que es la misma entidad quién se encarga de hacer otra request cada x tiempo para mantener la información actualizada. Vi varias soluciones, una creando un plugin, otra usando Vuex, y mi pregunta es, además de que otras soluciones se les ocurre, cuál es la mejor? y porqué?.
Lo que buscamos es algo así como una clase que implemente un patrón Singleton, y todos los componentes tengan acceso a esa clase.

Muchas gracias por su tiempo.

Si no quedó claro mi explicación me avisan.

PD: Aclaro que entendemos que una mejor solución sería que el backend avise al frontend cuando tiene datos nuevos, está en nuestros planes, pero por ahora nos conformamos con esta solución más simple desde el frontend.
PD2: Si hablo en plural, es porque trabajo en equipo.

Nosotros hemos usado varios metodos para compartir datos, de la manera que tu quieres. Inicialmente, soliamos crear eventos y hacer que los components se subscribieran a ellos. Este metodo funciona, pero se pone muy complicado cuando el numero de componentes creze.

Ahora usamos Vuex. Simplemente, Vuex centraliza la mayoria de los datos de nuestras aplicaciones. Tambien permite que centralizes todos los metodos que modifican/actualizan los datos en el “store”. Esto simplifica el mantenimiento de esos metodos. Vuex es muy facil de usar y funciona super bien.

1 Like

Gracias German, en estos días seguí investigando, y como vos decís por ahí Vuex es la solución más completa. Concuerdo con el tema de pasar la info por eventos, es fácil, pero a mayor cantidad de suscriptores, es peor.

Seguro debería profundirzar un poco mis conocimientos en Vuex para ver como está hecho, seguro tiene la forma más optima aplicada.

Gracias por tu información, un saludo!.

Cierro el tema, visto que no tiene mucha participación de la comunidad.

Gracias igual.