Implementación de Loader y Favoritos en App de Pokémones
Clase 15 de 22 • Curso Profesional de React.js y Redux
Resumen
¿Cómo mejorar la experiencia del usuario con un Loader?
En el ámbito del desarrollo web, es crucial ofrecer una experiencia de usuario que no solo sea funcional, sino también visualmente agradable e intuitiva. Al trabajar con APIs y manejar cargas de datos, los Loaders son esenciales para informar al usuario que una acción está en progreso. Aquí te mostramos cómo implementar un Loader en una aplicación utilizando el componente Spin
de Ant Design.
¿Cómo integrar un componente Spin en tu aplicación?
Ant Design provee un conjunto de componentes útiles y Spin
es uno de ellos, ideal para mostrar que el sistema está ocupado procesando una acción. Sigue estos pasos para añadirlo a tu aplicación:
-
Importación del componente:
- Abre el archivo
App.js
y asegúrate de importarSpin
desde Ant Design.
import { Spin } from 'antd';
- Abre el archivo
-
Uso del componente:
- Coloca el componente
Spin
donde quieras que aparezca en tu UI. Puedes siempre mostrarlo inicialmente y luego condicionar su visibilidad. - Ajusta su tamaño utilizando la propiedad
size
a "large" para mejor visibilidad.
<Spin spinning={true} size="large" />
- Coloca el componente
-
Centrado del Loader:
- Asegúrate de usar el sistema Grid de Ant Design para centrar el Loader. Un
Col
con unspan
de 12 y unoffset
puede ser suficiente para centrarlo horizontalmente.
<Col span={12} offset={6}> <Spin spinning={true} size="large" /> </Col>
- Asegúrate de usar el sistema Grid de Ant Design para centrar el Loader. Un
¿Cómo manejar la visibilidad del Loader?
Para que el Loader se muestre solo cuando se está realizando una petición a la API, debes controlar la propiedad spinning
:
-
Estado inicial (reducer):
- Añade una propiedad
loading
en el estado inicial dentro de tureducer
.
const initialState = { loading: false, // otras propiedades };
- Añade una propiedad
-
Crear una acción para setear el estado de carga:
- Define un nuevo type y acción en
Types
yActions
respectivamente para setear el estado loading.
export const SET_LOADING = 'SET_LOADING'; export const setLoading = (value) => ({ type: SET_LOADING, payload: value, });
- Define un nuevo type y acción en
-
Modificar el estado desde el reducer:
- Implementa el caso
SET_LOADING
en elreducer
para actualizar el estadoloading
.
case SET_LOADING: return { ...state, loading: action.payload, };
- Implementa el caso
-
Uso del UseSelector para acceder al estado:
- En
App.js
, utilizauseSelector
para obtener el valor deloading
desde el estado y controlar el componenteSpin
.
const loading = useSelector(state => state.loading);
- En
-
Manejo de acciones durante la llamada a la API:
- Por último, asegúrate de despachar las acciones
setLoading
antes y después de las llamadas a la API para cambiar el estadoloading
en consecuencia.
dispatch(setLoading(true)); // llamada a la API dispatch(setLoading(false));
- Por último, asegúrate de despachar las acciones
Implementar correctamente estos pasos asegura que tu Loader proporciona una experiencia de usuario más transparente y educativa sobre el estado de tu aplicación.
¿Cómo añadir espacio entre el buscador y el Loader?
Para mejorar la presentación visual de tu UI, es importante prestar atención a los detalles, como el espaciado entre componentes.
- Ajuste de estilos con margin:
- Dirígete al lugar donde tienes tu
Searcher
, el componente de búsqueda, y ajusta elmargin-bottom
para crear espacio.
<div style={{ marginBottom: '10px' }}> <Searcher /> </div>
- Dirígete al lugar donde tienes tu
Estos ajustes tan simples como el espacio entre elementos pueden impactar en gran medida en la experiencia general del usuario, haciendo que tu aplicación sea más agradable a la vista.
Siguiendo estos pasos cuidadosamente, lograrás no solo implementar un Loader funcional, sino también mejorar significativamente la experiencia de usuario de tu aplicación. ¡Continúa mejorando y explorando nuevas funcionalidades para cautivar a tus usuarios!