Extender Rebase
Resumen
Sección titulada «Resumen»Rebase ofrece aproximadamente una docena de mecanismos de extensión — plugins, slots, sustituciones de componentes, vistas de entidad, acciones, campos personalizados y más. Cada uno apunta a un ámbito diferente (toda la app, por colección, por entidad, por propiedad) y a una parte diferente de la UI.
Esta guía le ayuda a elegir el mecanismo adecuado para su caso de uso y luego enlaza a la referencia detallada de cada uno.
Tabla de Decisión
Sección titulada «Tabla de Decisión»| Quiero… | Mecanismo | Ámbito | Referencia |
|---|---|---|---|
| Reemplazar la barra de app | components (Shell.AppBar) |
app | Sustitución de Componentes |
| Reemplazar la página de inicio de sesión | components (Auth.LoginView) |
app | Sustitución de Componentes |
| Reemplazar la página de inicio | components (HomePage) |
app | Sustitución de Componentes |
| Cambiar por completo cómo se ve el formulario de una colección | formView |
colección | abajo |
| Intercambiar un componente dentro de una colección | collection.components |
colección | Sustitución de Componentes |
| Establecer sustituciones de componentes predeterminadas para todas las colecciones | components (nombres de ámbito de colección) |
app | Sustitución de Componentes |
| Añadir un botón a la barra de herramientas de la colección | Actions de colección |
colección | Acciones de Entidad |
| Inyectar UI en un slot de la barra de herramientas de la colección | slot collection.actions |
app/plugin | Slots |
| Añadir una columna calculada a una tabla | additionalFields |
colección | Columnas Adicionales |
| Añadir un widget de campo personalizado para un tipo de propiedad | propertyConfigs |
tipo de propiedad | Campos Personalizados |
| Añadir una pestaña de entidad | entityViews |
entidad | Vistas de Entidad |
| Añadir una acción de fila/contexto o un botón de entidad | entityActions |
entidad | Acciones de Entidad |
| Inyectar UI en una ubicación específica del chrome | slots |
app/plugin | Slots |
| Distribuir varias extensiones como una unidad instalable | plugins |
app | Plugins |
Mecanismos en Detalle
Sección titulada «Mecanismos en Detalle»Plugins
Sección titulada «Plugins»Ámbito: app.
Un plugin agrupa colecciones, vistas, sustituciones de componentes, contribuciones de slots, autenticación, fuentes de datos, proveedores, hooks y callbacks del ciclo de vida en una única unidad instalable. Todos los demás mecanismos enumerados aquí pueden contribuirse a través de la interfaz de un plugin.
Ámbito: app (contribuido por slot).
Los slots son puntos de extensión de UI con nombre distribuidos por todo el chrome del CMS. Registra un componente de React apuntando al nombre de un slot, y este se renderiza en esa ubicación. Hay 29 slots que cubren la página de inicio, la navegación, las vistas de colección, los formularios, las filas de entidad, los dashboards y más.
Sustitución de Componentes (Swizzling)
Sección titulada «Sustitución de Componentes (Swizzling)»Ámbito: valores predeterminados a nivel de app o por colección.
Dos modos: Eject (reemplazo completo) o Wrap (aumentar el original).
19 nombres de componentes sustituibles en dos niveles:
Solo app (7):
Shell.AppBarShell.DrawerShell.DrawerNavigationItemShell.DrawerNavigationGroupHomePageHomePage.CollectionCardAuth.LoginView
Ámbito de colección (12):
Collection.ViewCollection.TableCollection.CardCollection.EmptyStateCollection.ActionsCollection.FilterFieldEntity.FormEditView.FormActionsDetailViewEntity.SidePanelEntityPreviewEntity.MissingReference
Precedencia: Los components a nivel de colección sustituyen a los valores predeterminados a nivel de app para el mismo nombre de componente (spread de objeto simple — los valores de la colección sobrescriben los valores globales). Los nombres de componentes solo de app (Shell.*, HomePage, Auth.*) solo pueden sustituirse a nivel de <Rebase>.
Vistas de Entidad
Sección titulada «Vistas de Entidad»Ámbito: entidad (añade pestañas).
Vistas personalizadas que aparecen como pestañas en la página de detalle de la entidad. Pueden definirse globalmente en <Rebase> o por colección.
Acciones de Entidad
Sección titulada «Acciones de Entidad»Ámbito: entidad.
Botones de acción personalizados en entidades individuales (publicar, archivar, clonar, etc.). Pueden definirse globalmente o por colección.
Actions de Colección
Sección titulada «Actions de Colección»Ámbito: colección.
Componentes de React a nivel de barra de herramientas que reciben CollectionActionsProps (entidades seleccionadas, controlador de la tabla, contexto de la colección). Se renderizan en la barra de herramientas de la colección junto a las acciones integradas.
Relación con el slot collection.actions: Ambos son aditivos — los componentes Actions se renderizan primero en la barra de herramientas, luego las contribuciones de slot de collection.actions. No se reemplazan entre sí.
→ Acciones de Entidad — Acciones de Colección
formView {#formview}
Sección titulada «formView {#formview}»Ámbito: colección.
Reemplaza todo el formulario de entidad predeterminado con un componente personalizado. Se establece en una definición de colección:
const collection = { slug: "products", admin: { formView: { Builder: MyCustomProductForm, includeActions: true // show save/delete bar (default: true) } }};Úselo cuando necesite un layout completamente personalizado para la experiencia de edición de entidades de una colección. Para ajustes menores, prefiera collection.components con la sustitución Entity.Form en su lugar.
additionalFields
Sección titulada «additionalFields»Ámbito: colección.
Columnas calculadas/virtuales mostradas en la tabla de la colección. Estas no corresponden a propiedades almacenadas — se calculan en el momento del renderizado.
propertyConfigs
Sección titulada «propertyConfigs»Ámbito: tipo de propiedad.
Widgets de campo personalizados para tipos de propiedad específicos, que proporcionan campos de formulario y componentes de vista previa personalizados.
Resumen de Precedencia
Sección titulada «Resumen de Precedencia»collection.componentsprevalece sobrecomponentsglobal dentro de esa colección (fusión de spread simple enDataCollectionView).Actionsde colección y el slotcollection.actionsson aditivos —Actionsse renderizan primero, luego las contribuciones de slot.- Los
entityActionsyentityViewsa nivel de colección extienden (no reemplazan) los globales. - Las contribuciones de plugin se fusionan en orden de
key.
