Componentes especiales

Esta guía asume que ya está familiarizado con el funcionamiento del enrutamiento en un storefront de PWA Kit. Para obtener más información, consulte nuestra guía sobre Enrutamiento.

El SDK de React de PWA Kit incluye los siguientes componentes especiales: AppConfig, App, Error y Document.

La implementación predeterminada de cada componente especial puede ser reemplazada con su propia versión personalizada para que pueda configurar y personalizar el comportamiento de su storefront en varias páginas.

Veamos cada componente especial por separado:

El componente AppConfig se coloca cerca de la parte superior de la jerarquía de componentes en su aplicación React. Desde esta posición, le permite insertar código para configurar y apoyar las características de toda la aplicación, como la gestión de estado o la tematización de componentes. En la Retail React App, el componente ChakraProvider se inserta en AppConfig para que los valores del tema (para los colores, el espaciado, etc.) estén disponibles para todos los componentes de la IU de Chakra.

El componente AppConfig también permite ampliar el conjunto de argumentos que se pasan a todos los componentes mejorados por routeComponent a través de la función getProps. Para añadir estos argumentos, defina una función llamada extraGetPropsArgs como propiedad del componente AppConfig.

La Retail React App utiliza la función extraGetPropsArgs para dar a todos los componentes mejorados por routeComponent acceso a un objeto para interactuar con Salesforce Commerce API:

La versión del componente AppConfig del SDK de React del PWA Kit no hace mucho, a menos que lo reemplace. Para reemplazar una versión de SDK de AppConfig, defina un archivo en app/_app-config/index.jsx. Un proyecto de PWA Kit recién generado ya incluye este archivo para empezar.

El componente App es un derivado del componente AppConfig. Su propósito principal es incluir cualquier componente para el diseño y la IU que persiste a través de la aplicación React, como el encabezado, el pie de página y la barra lateral.

El componente App también se ve mejorado con la función routeComponent. Si define una función getProps como propiedad del componente App, esta recibe un llamado cuando se renderiza cualquier componente del grupo routes. Utilícelo para cualquier lógica que quiera ejecutar en cada página.

Al igual que AppConfig, existe una versión predeterminada del componente App en el SDK de React del PWA Kit que se recomienda reemplazar. Para reemplazar una versión de SDK de App, defina un archivo en app/_app/index.jsx. Un proyecto de PWA Kit recién generado ya incluye este archivo para empezar.

Algunas de las funciones que se implementan en App para un proyecto recién generado: el seguimiento analítico, la detección fuera de línea y el componente SkipNavLink de accesibilidad.

El componente Error se renderiza en lugar del componente App en cualquiera de las siguientes condiciones:

  • El usuario hace una solicitud a una ruta que no se encuentra en el grupo routes.
  • Un componente del grupo routes da error en esta función getProps.
  • Un componente del grupo routes da error durante la renderización.

Cuando se devuelve el componente Error, también se incluye un estado HTTP 404 en el encabezado de respuesta.

Al igual que el resto de componentes especiales, el SDK de React del PWA Kit incluye una versión predeterminada del componente Error, y se recomienda reemplazarlo. Para reemplazar una versión de SDK de Error, defina un archivo en app/_error/index.jsx. Un proyecto de PWA Kit recién generado ya incluye este archivo para empezar.

Al reemplazar el componente Error, puede hacer cosas como personalizar la página de error para su marca, añadir redireccionamientos y hacer un seguimiento del error como un evento analítico.

El componente Document define el HTML que rodea a la aplicación, como las etiquetas <html>, <head> y <body>.

Al igual que el resto de componentes especiales, el SDK de React del PWA Kit incluye una versión predeterminada del componente Document que se puede reemplazar. Pero, en este caso, no recomendamos reemplazarlo. Pero si necesita un control detallado de su aplicación, puede reemplazar Document definiendo un archivo en app/_document/index.jsx. Un proyecto de PWA Kit recién generado no incluye este archivo.

En lugar de reemplazar el componente Document, recomendamos usar la biblioteca Helmet de React para modificar las etiquetas de HTML en Document, como <head>.