Open
Description
Summary
Since #18 was closed, I thought that we could have an open issue to keep track of the bundle size win opportunities possible for the data grid.
Ideas:
- Select. (win ~0.5 kB gzipped) Replace Select import with NativeSelect).
- TextField (win ~5 kB gzipped). Replace TextField with individual imports, allow dropping
OutlinedInput
andFilledInput
from the bundle. - license. (win ~0.7 kB) I believe we can remove the need to include
packages/license/src/encoding/base64.ts
in the bundle of the users. The possible solution would work as follows:- client-side, use the built-in
window.atob()
andwindow.btoa()
, only run the license check if the window is defined (ignore server-side, and CI) - server-side, us the built-in
Buffer.from('Hello World!').toString('base64');
andBuffer.from(b64Encoded, 'base64').toString()
utils.
[x-license] Use a simpler checksum for the license key #4892
- client-side, use the built-in
- Simplify EventEmitter implementation by relying on EventTarget DOM API [internals] Move
EventManager
to@mui/x-internals
package #13815. To be careful with runtime performance though Don't we need Events/Observer Pattern first? tc39/proposal-signals#111 (comment). - (Premium) Try to replace ExcelJS with a light alternate (Current bundle size contribution: https://bundlephobia.com/package/@mui/[email protected]) | Possible candidate: [data grid] Replace ExcelJS #13267 (3rd alternate)
- Compress the errors: [code-infra][core] Compress throw new Error() to save bundle size #14618.
Examples
- [core] Remove warning message in production #13911
- Plugin architecture [data grid] Create plugin system #7358
Motivation
- Performance continues to be an important concern for developers. Speaking from my own experience as an end-user, I'm often frustrated by how slow Notion tabs opens, hence why I think we should care, to some extent.
- Current (2024-12) bundle size isn't exciting https://github.com/oliviertassinari/mui-x-data-grid-bundle-size
MUI X Data Grid: many modules, not super fast to build. 246 kB gzipped
Search keywords: -
Metadata
Metadata
Assignees
Labels
Projects
Status
🆕 Needs refinement