Migración de FireCMS 2.0 a FireCMS 3.0
FireCMS 3.0 es una versión principal que introduce muchos cambios. Esta página describe los cambios principales y cómo migrar desde FireCMS 2.0.
FireCMS Community y PRO son las versiones autoalojadas de FireCMS. Te permiten alojar tu propio backend y usar FireCMS sin restricciones. Es la versión más similar a FireCMS 2.0, pero con muchas mejoras y nuevas funcionalidades.
Migrar a FireCMS PRO
Sección titulada «Migrar a FireCMS PRO»La mayoría de los conceptos son los mismos que en FireCMS 2.0, pero hay algunos cambios que debes conocer. Recomendamos empezar un nuevo proyecto con:
npx create-firecms-app --proo
yarn create firecms-app --proEsto creará un nuevo proyecto con la última versión de FireCMS PRO.
Actualizar las importaciones
Sección titulada «Actualizar las importaciones»El cambio principal es que las importaciones han cambiado. Necesitas actualizar las importaciones en tu proyecto.
Antes importabas todo desde firecms (o incluso @camberi/firecms). Ahora necesitas importar desde
diferentes paquetes.
- Todos los componentes de UI ahora están en
@firecms/ui. Todo incluyendo botones, campos de texto, layouts, etc. - El núcleo de FireCMS está en
@firecms/core. Esto incluyeFireCMSApp,FireCMSContext, etc. - Todo el código relacionado con Firebase está en
@firecms/firebase, incluyendouseFirebaseAuthController, etc. La mayoría de las importaciones se pueden encontrar en@firecms/core, así que recomendamos empezar por ahí.
Configuración de colecciones
Sección titulada «Configuración de colecciones»Las colecciones han sufrido cambios mínimos. Si no tienes ningún componente personalizado definido, debería ser fácil adaptar tus colecciones al nuevo formato.
-
Necesitas definir un
idpara cada colección, que normalmente puede ser el mismo que elpath. Asegúrate de que elidsea único. -
La prop
viewsha sido renombrada aentityViews, ya que se aplican a entidades.- Dentro de
entityViewsla proppathha sido renombrada akey.
- Dentro de
-
Para
AdditionalFieldDelegate:- La prop
idha sido renombrada akey. - La prop
builderha sido renombrada aBuilder.
- La prop
Autenticador
Sección titulada «Autenticador»- El autenticador ahora devuelve un
dataSourceDelegateen lugar de undataSource. La diferencia es que ya no pasas la propcollection.
useNavigationContextha sido renombrado auseNavigationController.FieldDescriptionha sido renombrado aFieldCaption.PropertyPreviewya no necesita una propentity.
Migración de componentes personalizados (MUI)
Sección titulada «Migración de componentes personalizados (MUI)»FireCMS 3.0 está basado en tailwindcss en lugar de mui.
MUI fue genial para las versiones iniciales de FireCMS, pero se estaba convirtiendo en un gran cuello de botella de rendimiento y era difícil de personalizar.
La nueva versión de FireCMS tiene casi 50 nuevos componentes implementados con tailwindcss, que imitan de buena manera los componentes de material-ui. Se recomienda migrar tus componentes personalizados al nuevo formato.
Puedes intentar reemplazar las importaciones de @mui/material por @firecms/ui y verás que muchas cosas funcionan directamente.
Los iconos en FireCMS están basados en los iconos de Material. Puedes usar todos los iconos de Material importándolos igual que en MUI.
import { AddIcon } from "@firecms/ui";La prop fontSize se llama size en FireCMS (porque tiene más sentido, MUI).
Componentes sin equivalente:
Sección titulada «Componentes sin equivalente:»Box: El componente Box es solo un wrapper usado por MUI para aplicar estilos. Puedes usar undiven su lugar, con algunas clases de tailwind. Consejo: ChatGPT es excelente para convertir componentes Box a div con clases tailwind.Link: Usaaen su lugar.FormControl
Componentes que cambian su comportamiento (de MUI a FireCMS UI)
Sección titulada «Componentes que cambian su comportamiento (de MUI a FireCMS UI)»MenuyMenuItem: Los elementos de menú ya no tienen un id. Puedes añadir una proponClickpor cada elemento de menú.Selectya no usalabelId. Solo añade la etiqueta como componente enlabel.SelectChangeEventahora esChangeEvent<HTMLSelectElement>CircularProgressel tamaño es una cadena en lugar de un número. Puedes usarsize="small"osize="large".
Seguir usando MUI
Sección titulada «Seguir usando MUI»Si deseas seguir usando MUI, puedes instalarlo manualmente:
npm install @mui/material @emotion/react @emotion/styledo
yarn add @mui/material @emotion/react @emotion/styledSi necesitas iconos de MUI:
npm install @mui/icons-materialo
yarn add @mui/icons-material