Slices
Los "slices" son módulos que representan partes específicas del estado global. Cada slice contiene:
- Un fragmento del estado global
- Acciones para modificar ese estado
- Selectores para acceder al estado
Estructura de un Slice
Cada slice se define como una función que recibe set y get y devuelve un objeto con el estado y las acciones:
export const createExampleSlice = (set, get) => ({
// Estado
someState: initialValue,
// Acciones
updateSomeState: (newValue) => set({ someState: newValue }),
// Acciones asíncronas
fetchData: async () => {
const data = await someApiCall();
set({ someState: data });
},
// Acciones que usan el estado actual
doSomethingWithCurrentState: () => {
const currentState = get().someState;
set({ someState: modifyState(currentState) });
}
});
Slices en nuestro proyecto
Nuestro proyecto está organizado en los siguientes slices:
Cart Slice
Gestiona el estado del carrito de compras.
Page Slice
Mantiene información sobre la página actual (producto, categoría, etc.).
User Slice
Maneja el estado del usuario (sesión, datos, etc.).
Settings Slice
Almacena configuraciones globales de la aplicación.
Quote Slice
Gestiona cotizaciones y presupuestos.
Cada slice tiene su propia documentación detallada: