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