Primeiramente, parabéns pelo tópico. Sempre ouvia falar sobre injeção de dependência mas nunca tinha parado pra ler. O exemplo é bem didático também.

Mas fiquei com uma dúvida, qual a diferença, neste exemplo, do fetch isolado na classe? Se houver problema na requisição, afetará o hook e o app de qualquer maneira. Num primeiro momento me parece até overengineering. Mas pergunto aqui justamente pela ignorância no assunto.

Obrigado pelo comentário! A ideia aqui é isolar e tratar os componentes adequadamente. Se houver problema na requisição é problema do endpoint, certo, e o componente não tem nada com isso. E eu falei em ISOLAR? Bom, em tempos de garantir o funcionamento de cada parte da aplicação, é bem mais fácil e prático testar as partes sem muita dependência. Nesse caso você pode trocar o fetch pelo Axios sem problemas e a App não vai nem saber. Com esse desacomplamento, você não fica refém do fetch ou do Axios. Esse foi o exemplo mais simples e fácil de entender, e a injeção de dependência foi um plus, você pode procurar a teoria por trás, ou um exemplo mais completo.

> Nesse caso você pode trocar o fetch pelo Axios sem problemas e a App não vai nem saber. Com esse desacomplamento, você não fica refém do fetch ou do Axios. Agora fez sentido, valeu!