DevGang
Авторизоваться

Создание повторно используемых компонентов списка в React

При разработке в React часто встречаются сценарии, когда вам необходимо отображать списки похожих компонентов с разными стилями или содержанием. Например, у вас может быть список авторов, каждый из которых содержит различную информацию, такую ​​как имя, возраст, страна и автор книги. Чтобы эффективно обрабатывать такие случаи, мы можем использовать композицию компонентов React и передачу реквизитов. В этой статье мы рассмотрим, как для достижения этой цели создавать повторно используемые компоненты списка в React.

Определение данных

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

Во-первых, мы определяем наш массив авторов:

export const authors = [
  {
    name: "Sarah Waters",
    age: 55,
    country: "United Kingdom",
    books: ["Fingersmith", "The Night Watch"],
  },
  {
    name: "Haruki Murakami",
    age: 71,
    country: "Japan",
    books: ["Norwegian Wood", "Kafka on the Shore"],
  },
  {
    name: "Chimamanda Ngozi Adichie",
    age: 43,
    country: "Nigeria",
    books: ["Half of a Yellow Sun", "Americanah"],
  },
];

Создание компонентов элемента списка

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

LargeAuthorListItem

export const LargeAuthorListItem = ({ author }) => {
  const { name, age, country, books } = author;
  return (
    <>
      <h2>{name}</h2>
      <p>Age: {age}</p>
      <p>Country: {country}</p>
      <p>
        Books:{" "}
        {books.map((book, index) => (
          <span key={index}>{book}</span>
        ))}
      </p>
    </>
  );
};

SmallAuthorListItem

export const SmallAuthorListItem = ({ author }) => {
  const { name, age } = author;
  return (
    <>
      <h2>{name}</h2>
      <p>Age: {age}</p>
    </>
  );
};

Создание повторно используемого компонента списка

Теперь, чтобы сделать эти компоненты многоразовыми и универсальными, мы создаем компонент RegularList. Этот компонент принимает массив элементов, свойство, указывающее источник данных (в нашем случае author) и тип компонента элемента для рендеринга.

export const RegularList = ({ items, sourceName, ItemComponent }) => {
  return (
    <>
      {items.map((item, index) => (
        <ItemComponent key={index} {...{ [sourceName]: item }} />
      ))}
    </>
  );
};

Использование компонента многократного использования списка

С помощью RegularList мы можем легко отображать списки авторов в разных стилях, передавая соответствующий компонент элемента и имя источника данных. Например:

import { authors, RegularList, LargeAuthorListItem, SmallAuthorListItem } from './components';

const App = () => {
  return (
    <div>
      <h1>Authors</h1>
      <h2>Large Cards</h2>
      <RegularList items={authors} sourceName="author" ItemComponent={LargeAuthorListItem} />
      <h2>Small Cards</h2>
      <RegularList items={authors} sourceName="author" ItemComponent={SmallAuthorListItem} />
    </div>
  );
};

export default App;

Преимущества многоразовых компонентов

Используя эти компоненты, мы можем легко создавать и поддерживать списки объектов с разными стилями в нашем приложении. Такой подход способствует повторному использованию кода и удобству сопровождения, делая наше приложение React более эффективным и масштабируемым.

Повторное использование кода

Создание повторно используемых компонентов уменьшает дублирование кода и обеспечивает согласованность во всем приложении. Изменения, внесенные в один компонент, автоматически отражаются там, где он используется.

Расширяемость

Благодаря четкому разделению задач компонентами легче управлять и обновлять. Этот модульный подход делает базу кода более чистой и организованной.

Эффективность

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

Заключение

Создание повторно используемых компонентов списка в React — это мощный метод, который может упростить процесс разработки и повысить удобство сопровождения вашей кодовой базы. Используя композицию компонентов и передачу реквизитов, вы можете создавать универсальные компоненты, которые адаптируются к различным стилям и требованиям к контенту. Попробуйте этот подход в своем следующем проекте React и оцените преимущества многократного использования компонентов!

Источник:

#JavaScript #React #Начинающим
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу