useMemo can keep the provider value identity stable between renders when its dependencies have not changed.