react-google-maps
react-google-maps copied to clipboard
[Feat] Replace useMemo with useState for one time initializations
Target Use Case
We shouldn't have useMemo
for one time initializations. While the current behaviour is the same as a useState
, useMemo
should only be used as an optimization. Future React releases might break this functionality.
https://tkdodo.eu/blog/use-state-for-one-time-initializations React Forget
You may rely on useMemo as a performance optimization, not as a semantic guarantee. In the future, React may choose to “forget” some previously memoized values and recalculate them on next render, e.g. to free memory for offscreen components. Write your code so that it still works without useMemo — and then add it to optimize performance.
Proposal
Replace useMemo
with useState
for one time initializations. There might be more places where we need to change this:
https://github.com/visgl/react-google-maps/blob/8140b4ae6df22a74f7be253430554b07267bb944/examples/deckgl-overlay/src/deckgl-overlay.ts#L16 https://github.com/visgl/react-google-maps/blob/8140b4ae6df22a74f7be253430554b07267bb944/src/components/map-control.tsx#L50 https://github.com/visgl/react-google-maps/blob/8140b4ae6df22a74f7be253430554b07267bb944/src/components/pin.tsx#L22