
Product
Socket for Jira Is Now Available
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.
mui-virtualized-table
Advanced tools
Combination of Material UI visual components with react-virtualized for improved performance and features with a simple API.
For examples of <MuiTable> in action, see demo or view the source
| Property | Type | Required | Default | Description |
|---|---|---|---|---|
data | array | ✓ | Data to render using defined columns | |
columns | array | ✓ | Defines the columns in the table. Column format: {'name', 'header', 'onHeaderClick', 'width', 'cell', ...cellProps } name: Name of headerheader: (optional) Name to display instead 'name'onHeaderClick: (optional) Callback when header is clicked on (has precendence over onHeaderClick on tablewidth: (optional) Width of cellcell: (optional) Callback for rendering associated column cell data. Passes the row data for the associated cell. | |
cellProps | object | func | ||
width | number | ✓ | Visible width of table. Will scroll horizontally if sum of column widths are greater than defined width | |
columnWidth | number or func | Static column widths if number, calulated based on columns definitons if not specificed, or can pass in a function to peform own calcuation based on data | ||
height | number | calculted from data.length or pagination.rowsPerPage if defined | Visible height of table. Will scroll vertically if sum of column heights are great than defined height | |
maxHeight | number | 0 | Maximum height of table. Useful when using calculated | |
fitHeightToRows | boolean | false | Always fit the content height to row data. Only useful when using pagination and you want to reduce the height on non-full pages (will move paginator on different length results) | |
rowHeight | number | 48 | Height of rows | |
fixedRowCount | number | 0 | Number of rows to remain fixed at the top of the viewport (freeze rows). Based on columns definition order | |
fixedColumnCount | number | 0 | Number of columns to remain fixed at the left of the viewport (freeze columns). Based on columns definition order | |
includeHeaders | bool | false | Add header row to top of data. Useful to also set fixedRowCount to 1 | |
onHeaderClick | func | Called with column definition of header clicked on. Useful to set sort data and set orderBy and orderDirection | ||
onCellClick | func | Called with column definition and row data when non-header cell is clicked on (ex. onCellClick={(column, data) => alert(data[column.name])}) | ||
pagination | object | If defined, will add pagination to bottom of table and pass props to Material-UI's TablePagination component. Must set count, onChangePage, page, and rowsPerPage if defined. | ||
orderBy | string | If defined, will show column's header with matching name using TableSortLabel | ||
orderDirection | string | 'desc' | The order of the sort direction | |
resizable | bool | Enable column resizing handles |
This project has some storybook stories.
To run storybook, you have to install the story dependencies first:
$ cd stories
$ yarn install
$ cd ..
Then use yarn to run the storybook script:
$ yarn storybook
FAQs
Material-UI table with windowing, row/column freezing, and more
We found that mui-virtualized-table demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.