Смотреть в Telegram
🚀 React Table (TanStack Table): мощный инструмент для работы с таблицами Привет, друзья! 👋 Если вы работаете с таблицами в React-приложении, вам точно стоит обратить внимание на React Table (ныне TanStack Table). Это гибкая и производительная библиотека для создания динамических и интерактивных таблиц с минимальным кодом. 🔹 Почему TanStack Table? - Легкость: библиотека не навязывает конкретные стили, позволяя вам кастомизировать всё под свои нужды. - Гибкость: поддерживает сортировку, фильтрацию, пагинацию, работу с большими данными. - Высокая производительность: оптимизирована для отображения больших таблиц. - Расширяемость: можно легко добавить свои плагины и функции. 🔹 Установка Для начала установим библиотеку:
npm install @tanstack/react-table
🔹 Пример базовой таблицы
import React, { useState } from "react";
import {
  createColumnHelper,
  flexRender,
  getCoreRowModel,
  useReactTable,
} from '@tanstack/react-table'

const defaultData = [
  {
    firstName: 'tanner',
    lastName: 'linsley',
    age: 24,
    visits: 100,
    status: 'In Relationship',
    progress: 50,
  },
  {
    firstName: 'tandy',
    lastName: 'miller',
    age: 40,
    visits: 40,
    status: 'Single',
    progress: 80,
  },
  {
    firstName: 'joe',
    lastName: 'dirte',
    age: 45,
    visits: 20,
    status: 'Complicated',
    progress: 10,
  },
]

const columnHelper = createColumnHelper()

const columns = [
  columnHelper.accessor('firstName', {
    cell: info => info.getValue(),
  }),
  columnHelper.accessor(row => row.lastName, {
    id: 'lastName',
    cell: info => <i>{info.getValue()}</i>,
    header: () => <span>Last Name</span>,
  }),
  columnHelper.accessor('age', {
    header: () => 'Age',
    cell: info => info.renderValue(),
  }),
  columnHelper.accessor('visits', {
    header: () => <span>Visits</span>,
  }),
  columnHelper.accessor('status', {
    header: 'Status',
  }),
  columnHelper.accessor('progress', {
    header: 'Profile Progress',
  }),
]

function App() {
  const [data, _setData] = useState(() => [...defaultData])

  const table = useReactTable({
    data,
    columns,
    getCoreRowModel: getCoreRowModel(),
  })

  return (
    <div>
      <table>
        <thead>
          {table.getHeaderGroups().map(headerGroup => (
            <tr key={headerGroup.id}>
              {headerGroup.headers.map(header => (
                <th key={header.id}>
                  {header.isPlaceholder
                    ? null
                    : flexRender(
                        header.column.columnDef.header,
                        header.getContext()
                      )}
                </th>
              ))}
            </tr>
          ))}
        </thead>
        <tbody>
          {table.getRowModel().rows.map(row => (
            <tr key={row.id}>
              {row.getVisibleCells().map(cell => (
                <td key={cell.id}>
                  {flexRender(cell.column.columnDef.cell, cell.getContext())}
                </td>
              ))}
            </tr>
          ))}
        </tbody>
      </table>
    </div>
  )
}

export default App;
🔹 Основные возможности 1. Сортировка Сортировка доступна из коробки 2. Фильтрация React Table поддерживает текстовую фильтрацию, выбор из списка и многое другое. 3. Пагинация Библиотека позволяет легко работать с большими объемами данных через серверную или клиентскую пагинацию. 4. Виртуализация Для очень больших таблиц можно использовать виртуализацию, чтобы отрисовывать только видимые строки. 🎯 Заключение TanStack Table — это мощный инструмент, который закрывает большинство задач, связанных с отображением таблиц. С помощью библиотеки вы можете настроить интерфейс, соответствующий вашим требованиям, от простых таблиц до сложных с сортировкой, фильтрацией и пагинацией. ReactJs Daily | #begginers
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Бот для знакомств