Заменяет ли React Context API необходимость в компонентных подпорках? - PullRequest
0 голосов
/ 09 октября 2019

Я недавно обновил проект React 15 для использования React 16.9. В частности, я полностью заменил RedEx на новый Context API, чисто функциональные компоненты и хуки. С помощью API контекста мы также получаем возможность для вложенных дочерних потребителей получать данные, не пропуская их с помощью реквизита. Тем не менее, я заметил, что у меня нет ни одного компонента реквизита, так как все передается через контекст поставщика / потребителя.

Таким образом, мой вопрос заключается в том, делает ли контекстный API компонентные реквизиты устаревшими?

Ответы [ 2 ]

0 голосов
/ 09 октября 2019

Вы уже ответили на свой вопрос. API контекста избегает Я цитирую один из реагирующих документов:

Контекст используется в основном, когда некоторые данные должны быть доступны для многих компонентов на разных уровнях вложенности. Применяйте его экономно, потому что это затрудняет повторное использование компонента

Других причин нет. Если я хочу повторно использовать компонент или экспортировать его в зависимости от контекста, пользователь не имеет об этом никакого представления. Примеры использования, такие как зарегистрированный пользователь, тема или другое глобальное состояние, например подробности рабочего процесса для всего приложения и т. Д., Являются хорошим примером использования.

0 голосов
/ 09 октября 2019

Я нахожу людей оскорбления redux и context. Кстати, redux использует context внутри.

Если честно, prop по-прежнему должен быть вашим лучшим другом в большинстве случаев. Только тогда, когда вы хотите избежать передачи вложенных реквизитов, вы можете исследовать context, где провайдер создается как родитель, и тогда все глубинные дети могут получить его как props.

Prop все еще остается способом, когда дети подключаются к поставщику. Разница лишь в том, что эти реквизиты теперь хранятся в некоем «глобальном» пространстве.

Короче говоря, context не заменяет prop, он все еще использует prop.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...