Я запускаю новое приложение React и, увидев все новости в экосистеме, хочу не торопиться и действительно обдумать свой выбор, начиная только с React/Webpack/Babel и добавляя больше.
Первый из этих вариантов — использовать Flux или нет (точнее, Redux, который выглядит великолепно и, кажется, выиграл войну с потоками). Вот где я:
- Я понимаю преимущества Redux, резюме на SO Дэна Абрамова. Они выглядят великолепно, но я бы предпочел вводить вещи шаг за шагом.
- In plain React, parent→child communication is done with props, and child→parent communication happens with callbacks. See Doc / Communicate Between Components, or SO / Child to parent communication in React (JSX) without flux, or this codeacademy Redux tutorial which starts out by saying "no need for Redux if you're fine with plain React and all your data in a root component".
- Which looks just fine for my purpose...
- ... однако печально то, что эти обратные вызовы должны передаваться по цепочке компонентов, что быстро становится утомительно, поскольку уровни вложенности растут.
Чтобы решить эту проблему без введения новых зависимостей, я нашел две статьи (1: Эндрю Фармер , 2: Hao Chuan) поощряет использование недавно представленного контекстная функция React.
→ Использование context
позволило бы мне открыть мои обратные вызовы, изменяющие модель, для моих дочерних компонентов. Для меня это не звучит как ужасное неправильное использование: я бы не передал данные модели, а только ссылки на функции для привязки к обработчикам событий.
- Звучит здраво?
- Есть ли какие-нибудь другие предложения на основе простой реакции для удобного общения между детьми и родителями?
Спасибо.