Esse assunto é interessante que ilustra bem aquilo que para mim é o maior desafio da programação, que é escolher entre duas alternativas que possui seus prós e contras.
O propdrilling
não é um problema em si. Já vi algumas pessoas dizendo que é aceitável o propdrilling
até 3º nível (pai -> filho -> neto) - ou mais, em projetos simples. Aí a pergunta muda: o que é um projeto simples? Em contrapartida, o context API
também traz complexidade para o desenvolvimento.
Por essa razão eu gosto de uma abordagem que consiste em desenvolver do simples para o complexo. Tirando situações óbvias em que você já sabe que vai precisar compartilhar dados por diversos pontos da árvore, eu iniciaria com o prop drilling
. Havendo a necessidade, refatore.
No fundo, uma boa organização com composição de componentes ajuda muito, entendendo o uso do context API
quando for realmente necessário passar dados em muitos níveis da árvore do react.