react-query to handle server updating state and per component hooks for local state items.
react-query has hook wrappers that allow accessing data you've fetched once across multiple components.
Calling the refetch in one will update all components using that data.
It's clean and minimises the need to think about shared state