As a tip, you can also avoid re-fetching by setting appropriate content caching headers on the endpoints, which requires no additional client code - but some configuration.
If you do this, the browser will never do a network request to fetch the same content again and will pull the content it has from cache (for as long as you say it should be valid for).
This is particularly useful if you make requests from the client in other contexts, such as a service worker, will be cached by the browser - which can be really handy for pre-loading content.
The tricky part with this is testing to make sure the headers are right and behavior is as expected (e.g. in the browser network inspector).