Existem formar mais eficientes. Temos libs que foram feitas para eliminar o useEffect do codigo, por exemplo a SWR e Tanstack.
Em meus projeto eu gosto de utilizar Tanstack jutamente com NUQS que deixam o codigo mais limpo e mais perfomático.
Você pode entender mais lendo esse artigo link