Рубрики
Без рубрики

Как использовать React и React – Sentinel, чтобы сделать отзывчивый, тупые компоненты

Ryan Yurkanin Как использовать React и Reactine Sentinel, чтобы сделать отзывчивые, глупые компоненты, которые вам просто нужен друг, чтобы стоять охраны! Фото Aldo de la Paz на unsplashtldr; СМИ не всегда достаточно. Элементные запросы удивительны, и вы можете черный ящик их сочетанием

Автор оригинала: FreeCodeCamp Community Member.

Ryan Yurkanin.

TLDR; СМИ не всегда достаточно. Элементные запросы удивительны, и вы можете черный ящик их сочетанием рендеринга реквизита, и что-то наблюдая за вашим элементом!

Работа с медиа запросами

Если вы должны были воссоздать отзывчивый дизайн, то вы знаете, насколько круто – но хлопот – СМИ находятся.

СМИ позволяют CSS, которые применяются только при изменении размера относительно просмотра в области просмотра.

К сожалению, если вы хотите сделать многоразовый и отзывчивый компонент карты, медиа-запросы менее идеальные:

  1. Вам необходимо выяснить взаимосвязь между высотой и шириной отзывчивой карты и высотой и шириной просмотра.
  2. Если ваша карта находится в более сложной планировке (например, планировка Flex), вам нужно выяснить, как размер окна изменит планировку Flex, а затем, как это повлияет на карту. ?
  3. Может быть JavaScript, который переключает условие, которое программно меняет размер карты, поэтому вам также придется фактически учитывать и сообщать о листах стилей.

На данный момент я начал ставить допросить, почему я даже вступил в развитие в первую очередь

Все, что я хотел, это способ стилирования карты на основе высоты и ширины этого элемента. Многие люди хотят, чтобы способность сделать это Отказ Одно предложение предложено элементы запросов, а Есть несколько путей, чтобы иметь их в CSS прямо сейчас! ?

Если вы похожи на меня, хотите, вы хотите иметь возможность принести его не только на экосистему JavaScript, но и экосистему реагирования. Можем ли мы сделать интеллектуальный, черный, отзывчивый контейнер и тупой визуальный компонент?

Да мы можем.

Решение

Красота этого компонента заключается в том, что она не знает, почему это размер, который оно есть. Это зависит от того, кто использует его, чтобы решить, что означает, что этот компонент можно повторно использовать в ряде макетов. Наша цель – держать это таким образом , хотя одновременно делая это потрясающе.

Давайте посмотрим, как мы можем сделать это, приведя ReactineL и создавая умный адаптивный контейнер с ним! ?

Так что же на самом деле Идя здесь?

ReactineL Работает, принимая функцию, Соблюдайте опоры и называть его неоднократно в исполнителе ProwelsimationFrame. или RequestLeCallback петля.

ProwelsimationFrame петли со скоростью, которая определяется браузером. Если кто-то просматривает на более старом телефоне, цикл произойдет реже. Это дает браузер более тонкий контроль и приводит к более гладкому опыту!

Если вы хотите узнать больше о ProwelsimationFrame. Я предлагаю читать Получить сверхспосовы движения с запросанимациями. Бенджамин де члена! ?

Sentinel принимает возвращаемое значение из этих функций, и если он отличается от предыдущего возвращаемого значения, устанавливает его как Sentinel Локальное состояние компонента. Если это не отличается, то мы останавливаемся прямо там и не обновляем, поэтому мы не постоянно перенаправляем! ?

Использование рендеринга

Теперь в этот момент вы можете задавать, что работает хорошо Sentinel местное государство? Как мы собираемся получить это? ?

Мой предпочтительный способ сделать это использует рендер.

Большинство известно, что вы можете передать у детей к компоненту и получить доступ к ним, используя This.props.children Но вы также можете пройти в функции!

  {() => }

Хорошо, это вещь. Почему кто-нибудь хочет это сделать? ?

Потому что сейчас, Имеет секреты Может пройти его внутренние секреты как аргумент для этой функции! Это не имеет представления, как вы на самом деле собираетесь использовать эти секреты, что делает его супер инкапсулированным.

  {secret => }  

Все /> Компонент заботится о том, является опрос бесконечно ищет, чтобы обновить себя. Рендер реквизиты Разрешить любой кусок интерфейса интерпретации этих обновлений, как они видят подходящие. Также это намного более очевидно, откуда приходят эти ценности. ?

Если вы хотите узнать больше о рендеринговых реквизитах, я предлагаю взглянуть на документацию по реагированию или прочитать эту статью лицом Кто сначала повернул меня на них!

Теперь у нас есть умный компонент, который переводит размер элемента в простые реквизиты, которые < Ганч /> Может переваривать. Это супер легко ревертировать и свопные значения, и вам не нужно беспокоиться о том, в какой макете он живет, или что происходит за пределами его объема.

Упаковка

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

Прохладная вещь о ReactineL Это то, что он не просто решает проблему запросов элементов. Я также использовал его для создания интеллектуального компонента анимации, так как он использует ProwelsimationFrame под капотом ?

Здесь Где вы можете проверить код для ReactineL , а также некоторые альтернативные решения!

Если у вас есть какие-либо вопросы, или какие-либо темы, которые вы хотели бы видеть более подробно, не стесняйтесь ударить меня! Спасибо за чтение и счастливое кодирование! ?

Оригинал: “https://www.freecodecamp.org/news/how-to-use-react-and-react-sentinel-to-make-responsive-dumb-components-51a04c6279a3/”