Создание динамических списков в React

В этой статье мы научимся создавать динамические списки элементов в React и обрабатывать их изменения.

Одна из самых важных возможностей React - это создание динамических списков, которые могут автоматически обновляться при изменении данных. В этой статье мы рассмотрим, как создавать динамические списки в React с использованием функциональных компонентов. Функциональные компоненты - это новый подход к созданию компонентов в React, который позволяет писать более простой и понятный код. Для начала нам понадобится создать новый функциональный компонент, который будет отображать список элементов. Давайте назовем его ListComponent:
import React from 'react';

const ListComponent = () => {
  const items = ['item 1', 'item 2', 'item 3'];

  return (
    <ul>
      {items.map((item, index) => (
        <li key={index}>{item}</li>
      ))}
    </ul>
  );
};

export default ListComponent;
В этом примере мы создали массив items, содержащий несколько элементов списка. Затем мы используем метод map для преобразования каждого элемента в соответствующий элемент списка. Обратите внимание на использование атрибута key - это важно для оптимизации производительности React. Теперь мы можем использовать наш компонент ListComponent в других компонентах:
import React from 'react';
import ListComponent from './ListComponent';

const App = () => {
  return (
    <div>
      <h1>Мой динамический список</h1>
      <ListComponent />
    </div>
  );
};

export default App;
Теперь, когда мы запустим наше приложение, мы увидим список элементов, которые мы определили в компоненте ListComponent.
Однако, чтобы наш список был действительно динамическим, нам нужно иметь возможность добавлять и удалять элементы. Давайте добавим эту функциональность в наш компонент.
import React, { useState } from 'react';

const ListComponent = () => {
  const [items, setItems] = useState(['item 1', 'item 2', 'item 3']);
  const [newItem, setNewItem] = useState('');

  const addItem = () => {
    setItems([...items, newItem]);
    setNewItem('');
  };

  const removeItem = (index) => {
    const updatedItems = items.filter((item, i) => i !== index);
    setItems(updatedItems);
  };

  return (
    <div>
      <ul>
        {items.map((item, index) => (
          <li key={index}>
            {item}
            <button onClick={() => removeItem(index)}>Удалить</button>
          </li>
        ))}
      </ul>
      <input
        type="text"
        value={newItem}
        onChange={(e) => setNewItem(e.target.value)}
      />
      <button onClick={addItem}>Добавить</button>
    </div>
  );
};

export default ListComponent;
В этом обновленном примере мы добавили два новых состояния: newItem и setNewItem. newItem - это значение нового элемента, который пользователь вводит в поле ввода, а setNewItem - это функция для обновления значения newItem. Мы также добавили две новые функции: addItem и removeItem. Функция addItem добавляет новый элемент в массив items, используя синтаксис расширения массива [...items, newItem], а затем сбрасывает значение newItem. Функция removeItem использует метод filter для удаления элемента из массива items. Теперь, когда мы запустим наше приложение, у нас будет возможность добавлять и удалять элементы из списка. Это пример простого компонента списка в React с использованием функциональных компонентов. Вы можете дополнить его дополнительными функциями и стилями, чтобы сделать его более интерактивным и привлекательным для пользователей. В заключение, создание динамических списков в React с помощью функциональных компонентов - это очень мощный инструмент для создания интерактивных пользовательских интерфейсов. Надеюсь, эта статья была полезной для вас, особенно если вы новичок в React. Удачи в изучении React!