Автор оригинала: FreeCodeCamp Community Member.
Билл Гиртин
Билл Гиртен, Мартин Маза и Элисон Стюарт
TLDR; Плечо Реакция контекста API как светлая и мощная альтернатива для redux.
Давайте столкнемся к этому: когда мы впервые начали играть с реагированием, это было похоже на сахарную точку. Просто создайте файл .jsx, добавьте пару зависимостей и wham-o! – Молния-быстрые страницы.
Вот когда начинается волнение.
Следующая вещь, которую вы знаете, вы чувствуете себя безгранично, как вы инженерируете слой презентации вашего приложения на скорости Jet. Затем вы получаете эту сумасшедшую идею, чтобы сделать Ajax Call для некоторого микросервиса и управлять состоянием приложения.
Вот когда начинается боль …
Итак, вы ищете удивительный Интернет Al Gore и выясните решение для управления состоянием приложения Дэн Абрамов ‘s Redux. . Теперь вы узнаете о действиях, редукторах и магазинах и дайвинга в Immutablejs. Просто так вы можете управлять государством. После того, как вы вписываетесь в MapStateToPOP, ваш реактивный компонент обычно занимается тем, что настроен на широко распространении « Prop Bearling ».
Первоначально вы в порядке с прохождением свойств от родителя к ребенку и, порой, к внуку. Однако, поскольку приложение становится более сложным, вы замечаете, что иногда вы проходите некоторые свойства через компонентное дерево, которые являются не используется данным потомком компонентом.
Что теперь?!? Вы хотите иметь возможность управлять состоянием приложения, Но Вы хотите сделать это без прохождения свойств через иерархию. Пришло время для некоторых умных трюков.
Как API React Context помогает
Facebook выпустил контекст API в React V16.3 в качестве механизма для передачи активов приложения через провайдер к любой Дочерний компонент слушает как потребитель. Это устраняет парадигму «бурение пропора». Представьте себе: в любой Уровень, родительский компонент может определить свое собственное состояние (включая методы) и предоставлять им непосредственно любому участвующим потребителю. Кроме того, вы можете установить состояние, используя методы, переданные поставщику контекста.
Мы покажем вам, как это сделать в примере ниже.
Давайте катиться!
BGIRTEN/CLEVER-REACT-CONTEXT-TRICKS НОВЫЕ РЕАКТНЫЕ ЭКСПЕРТИМ ОПЕРАЦИИ. Способствовать развитию BGIRTEN/CLEVER-REACT-CONTEXT-CONTEXT-CRICKS, создав счет на … github.com
Начнем с создания «начального» состояния объекта, который будет передан из компонента приложений к компонентам дочерних компонентов. Обратите внимание, что этот инициал также включает в себя методы. Этот подход обеспечивает возможность определения методов только один раз, чтобы вы могли повторно использовать их легче.
Передайте начальное состояние в компонент приложения и предоставьте контекст. Каждый компонент, заключенный в MyContext. Тег поставщика будет иметь возможность потребляться контекста (который в этом случае включает в себя начальное состояние компонента приложения).
Обойти «опоры для бурения» от дочернего компонента к компоненту внука.
Локальный метод HandlefethEvent предоставляет возможность выполнить метод, передаваемый контекстом (в этом случае, Updatestats). Метод рендеринга компонента срабатывает из-за этого. SettState.
В линии 21 мы употребляем входящий контекст. Поставщик, позволяющий нам получить доступ ко всем этим членам и методам, определенным в исходном состоянии компонента приложений.
Несмотря на то, что методы могут быть переданы с более высоких уровней дерева DOM, мы также можем вызвать повторное рендеринг дома, просто вызывая SetState Способ непосредственно для данного реагирования компонента.
И здесь у нас есть загруженное приложение. Спасибо за следующее – Вы можете найти более удивительный контент от этих авторов по адресу:
Github Alison, Martin’s Github и Github
Оригинал: “https://www.freecodecamp.org/news/clever-react-context-tricks-using-typescript-not-redux-7e2b9c7e5bf6/”