Освоение таблиц React с помощью TypeScript: подробное руководство

Хотите повысить уровень своей настольной игры на React с помощью TypeScript? Не смотрите дальше! В этом подробном руководстве мы рассмотрим различные методы и приемы, которые помогут вам создавать мощные и настраиваемые таблицы в ваших приложениях React. Так что берите свой любимый напиток, садитесь поудобнее и начнем!

  1. Настройка таблицы React с помощью TypeScript

Для начала установим необходимые зависимости. Откройте терминал и выполните следующую команду:

npm install react-table @types/react-table

После завершения установки вы можете импортировать React Table в свой компонент:

import { useTable } from 'react-table';
  1. Создание базовой таблицы

Чтобы создать базовую таблицу, вам понадобятся образцы данных. Предположим, у вас есть массив объектов, представляющих строки вашей таблицы. Вот пример:

const data = [
  { id: 1, name: 'John Doe', age: 25 },
  { id: 2, name: 'Jane Smith', age: 32 },
  // Add more rows as needed
];

Теперь давайте определим столбцы для вашей таблицы:

const columns = [
  { Header: 'ID', accessor: 'id' },
  { Header: 'Name', accessor: 'name' },
  { Header: 'Age', accessor: 'age' },
];

Наконец, вы можете использовать хук useTableдля отображения таблицы:

const MyTable = () => {
  const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } = useTable({ columns, data });
  return (
    <table {...getTableProps()}>
      <thead>
        {headerGroups.map((headerGroup) => (
          <tr {...headerGroup.getHeaderGroupProps()}>
            {headerGroup.headers.map((column) => (
              <th {...column.getHeaderProps()}>{column.render('Header')}</th>
            ))}
          </tr>
        ))}
      </thead>
      <tbody {...getTableBodyProps()}>
        {rows.map((row) => {
          prepareRow(row);
          return (
            <tr {...row.getRowProps()}>
              {row.cells.map((cell) => (
                <td {...cell.getCellProps()}>{cell.render('Cell')}</td>
              ))}
            </tr>
          );
        })}
      </tbody>
    </table>
  );
};
  1. Сортировка и фильтрация

React Table предоставляет встроенную поддержку сортировки и фильтрации. Чтобы включить сортировку, добавьте свойство sortable: trueк определению столбца:

const columns = [
  { Header: 'ID', accessor: 'id', sortable: true },
  // Rest of the columns
];

Для фильтрации вы можете использовать хук useFilters:

import { useFilters } from 'react-table';
const MyTable = () => {
  // ...
  const { headerGroups, rows, prepareRow, getTableProps, getTableBodyProps } = useTable(
    { columns, data },
    useFilters
  );
  // ...
};
  1. Разбиение на страницы

Чтобы включить нумерацию страниц, вы можете использовать хук usePagination:

import { usePagination } from 'react-table';
const MyTable = () => {
  // ...
  const { headerGroups, rows, prepareRow, getTableProps, getTableBodyProps, page, nextPage, previousPage } = useTable(
    { columns, data },
    usePagination
  );
  // ...
};
  1. Настройка внешнего вида таблицы

React Table предоставляет различные варианты настройки внешнего вида вашей таблицы. Вы можете добавлять классы CSS, использовать собственные средства визуализации или применять условный стиль на основе значений ячеек. Поэкспериментируйте с параметрами React Table, чтобы они соответствовали вашим требованиям к дизайну.

Заключение

Поздравляем! Вы изучили некоторые основные методы работы с таблицей React в TypeScript. Обладая этими знаниями, вы сможете создавать динамические и интерактивные таблицы в своих приложениях React. Не забудьте обратиться к документации React Table для получения подробной информации о дополнительных функциях и расширенном использовании.