Fabrício, tua dúvida faz total sentido.
Dá sim pra usar useContext(TaskContext)
direto nos componentes que tão dentro do provider, e isso funciona normal. Mas a ideia de criar esse hook tipo useTaskContext
não é porque precisa, mas porque é uma boa prática — principalmente quando o projeto começa a crescer.
Primeiro, evita repetição. Em vez de importar useContext
e o TaskContext
em todo lugar, você só importa o hook e pronto. Menos código, mais limpo.
Segundo, ele protege contra erro bobo: se alguém tentar usar o contexto fora do provider (tipo numa página ou componente que não tá dentro do TaskProvider
), a gente consegue jogar um erro mais claro — aquele throw new Error(...)
. Isso facilita muito no debug. Sem isso, pode quebrar silenciosamente ou dar undefined e você fica perdido.
Então assim: não é obrigatório, mas é tipo uma camada de proteção + organização.
Coisa simples que salva tempo lá na frente.