En mi aplicación, tengo acciones como followUser() , refreshProfile() , editProfile() , uploadPost( )...
También tengo un estado global, que contiene los datos del usuario (totalFollowing, totalPosts, nombre de usuario, avatar, ...).
Decidí implementar un caché LRU para almacenar usuarios (incluido el usuario actual), solo para evitar solicitudes innecesarias, ya que el estado global del usuario actual solo está disponible durante las sesiones actuales (se destruye cuando se desconecta).
Entonces... este caché me permitirá obtener datos de la memoria (patrón de memorización) incluso entre diferentes sesiones (imagine que el usuario actual cierra sesión y vuelve a iniciar sesión).
La única forma de comunicarme con mi servidor es usando los métodos implementados en mi carpeta "api" (algo típico).
El principal problema que estoy experimentando es que, para evitar esperar la respuesta del servidor, actualizo la interfaz de usuario antes de llamarlo, y en algunos métodos como "followUser" no obtengo una respuesta con el usuario actual new "totalFollowing " campo... parece que me veo obligado a actualizar mi caché en memoria en los archivos de la interfaz de usuario (es decir, no en la capa "api") para sincronizarla con los datos con estado de la aplicación.
¿Es esto un antipatrón? ¿Debo actualizar solo el "caché" de los usuarios en la capa "api"?
Esta es la estructura de mi proyecto frontend:
/app /screens -Profile.js <--- Here I am updating the user cache, in order to synchronize it with the UI state /components /context /hooks /utils /lib /services /api /users /cache -usersCache.js -followUser.jsLa verdad es que nunca antes había sincronizado una caché, ni siquiera sé si es algo típico, pero me está costando mucho, ya que tengo todas las actualizaciones divididas entre los archivos UI, y no en la "api". " capa.