frontend · performanceLa versión 1.x de los dashboards usaba React + ReactDOM + Recharts + Babel Standalone. El bundle inicial pesaba ~500 KB sólo de librerías + el código.
Necesidades del módulo Caja/Gastos:
| Stack | Bundle | dataTree | Virtual scroll | Build step | Veredicto |
|---|---|---|---|---|---|
| React + Recharts | ~500 KB | manual | manual | ❌ Babel Standalone | Lento, frágil |
| React + AG-Grid | ~600 KB | ✅ | ✅ | ❌ | Demasiado pesado |
| Vue + Element Plus | ~400 KB | ✅ | ✅ | ❌ | Mismo problema |
| Vanilla JS + Tabulator + Chart.js ★ | ~280 KB | ✅ nativo | ✅ nativo | ✅ ninguno | Elegido |
Migrar todo el frontend a:
✅ −500 KB de bundle comparado con React stack.
✅ dataTree nativo en Tabulator (RUBRO ▸ CONCEPTO sin código custom).
✅ bottomCalc nativo para filas TOTAL ponderado.
✅ Sin build step — código va directo a producción.
✅ Compatible con Hostinger shared (no necesita node).
⚠️ Perdimos JSX → más HTML inline en dashboard.php.
⚠️ Reactividad menos elegante (manual con eventos vs hooks).
caja/dashboard.jsx
— quedó como legado (debería eliminarse, ARQ-02 del análisis).