Отображение списка элементов — это то, чем постоянно занимаются веб-разработчики. В React нет стандартного способа рендеринга списка элементов, однако есть некоторые шаблоны, которые, безусловно, полезно знать. Мы собираемся изучить некоторые из них в этом посте.
Давайте начнем с базового подхода, который должен работать в большинстве случаев, а именно с передачи элементов списка в childrenprop.
Я использую React.Children.map , поэтому мне не нужно беспокоиться, является ли childrenэто одним элементом или массивом элементов. Обратите внимание, что ListViewкомпонент отвечает за структуру списка, в этом примере он утверждает семантически правильное ulи liрасположение тегов. Вот как может выглядеть пример использования
Очень просто, очень читабельно! Вы также можете использовать этот подход, если заранее не знаете количество элементов.
Просто помните, что каждый раз, когда вы визуализируете список, который можно переупорядочить или отфильтровать, вы должны предоставить ключевую поддержку (React предупредит вас, если вы этого не сделаете).
Второй подход более гибкий, но и несколько более сложный. Я говорю о паттерне рендеринга . Вот как может выглядеть код списка.
Возможно, вы заметили, что его нельзя использовать повторно, поскольку он явно определяет Itemтип. Мы можем сделать лучше, давайте использовать TypeScript Generics, чтобы список не был привязан к конкретному Itemинтерфейсу.
Это намного лучше, теперь он будет работать с любым массивом элементов, если каждый элемент удовлетворяет AbstractItemинтерфейсу. Давайте посмотрим, как это можно использовать.
Обратите внимание, что TypeScript правильно интерпретирует тип элемента в rendererфункции.
Так почему же паттерн Render Prop более мощный? Он имеет доступ к необработанным данным элементов, а не только к реагирующим узлам, как в предыдущем подходе. Это может иметь много вариантов использования. В качестве примера я могу предоставить предикат, который будет использоваться для фильтрации элементов перед их отображением.
Клиент может указать любой filterFn, который принимает один элемент и возвращает логическое значение.
В этом примере будут отображаться только первые два элемента.
Я представил некоторые основные строительные блоки, которые можно настроить для удовлетворения более специфических потребностей. Надеюсь, вы найдете их полезными, спасибо за чтение!
Введение Инсульт — это неотложная медицинская помощь, которая может случиться с кем угодно в любое время. Это происходит, когда приток крови к части мозга нарушается, что приводит к внезапной потере функции мозга.
Отправляйтесь в захватывающее путешествие инноваций и успеха, используя неиспользованный потенциал этих удивительных платформ без кода. Позвольте мне поделиться с вами историей о Сапне, замечательной женщине-предпринимателе.
Недавно я был в Linkedin, крупнейшей в мире профессиональной социальной сети, и нашел посты дизайнеров-фрилансеров, за которыми я следил и которые привлекли мое внимание. Все они публиковали фотографии из самолетов, на пляже со своими ноутбуками, из бассейнов и офисов с потрясающими видами.
Сколько раз вы, не задумываясь, выбрасывали пластиковую бутылку, стеклянную банку, алюминиевую банку или пакет экологически чистой энергии? Сколько раз вы хотели получить что-то взамен за их переработку? Если вы похожи на большинство людей, ответ, вероятно, много раз. Переработка часто рассматривается как хлопотное дело, рутинная работа или обязанность, не приносящая немедленных или ощутимых выгод.
Если мы хотим продолжать процветать на этой планете, нам придется вести опасные разговоры. Те, которые бросают вызов тому, что мы сделали, что мы делаем и что мы в настоящее время собираемся продолжать делать (или планируем делать).
Любой здравомыслящий человек знает, что в политических и медийных кругах доминируют левые, даже крайне левые, что создает дисбаланс в политическом дискурсе. В области религии этот дисбаланс хорошо виден: левые газеты и сети не спешат защищать христианскую веру.