- Redux tiene un método para crear un store, este se crea con
createStore() - En redux todas las actualizaciones de estado son disparados por
acciones despachadoras - Un
actiones simplemente un objeto javascript que contiene información sobre unaction eventque ha ocurrido - El
storerecibe esos objetos de acciones entonces actualiza su estado respectivamente - A veces un
actiontrae algunos datos, por ejemplo: puede traer un nombre de usuario despues que un usuario inicia sesión
- Debe contener una propiedad
typeque especifica el tipo de acción que ocurre - Pensar que las
redux actionsson mensajeros que entregan información sobre lo que pasa en la aplicación. El store entonces conduce los negocios de actualización de estado basado en la acción que ocurrió
- Un
action creatores una funcion de javascript que retorna unaction
- El métoodo
dispatches lo que se usa para despachar acciones alstore
- Despues de que una acción es creada y despachada, el store necesita saber cómo responder a esa acción, esto último es
trabajo de un
reducer
Reducersson los reponsables de las modificaciones de estado que toman lugar como respuesta a una acción- Un
reducertoma como argumentos elstateyactiony siempre retorna un nuevo estado - !Es importante mencionar que lo anterior es únicamente rol del
reducer¡ - !Nunca llama a un endpoint de una
APIni trae sorpresas escondidas¡
- El
statees de solo lectura,la función reductora es la que se encarga de retornar una nueva copia del estado y nunca modificarlo directamente - Nunca debes mutar el estado: estado inmutable significa que nunca modificas el estado directamente, en vez, regresas una nueva copia del estado
- Otro método que contiene
storeessubscribe, te permite suscribir funciones escuchadoras alstore, que son llamadas cuando sea que una accion es despachada contra elstore - Un ejemplo de uso sería para registrar un mensaje cuando una acción es recibida y el store es actualizado
- Redux proporciona composición de reductor,como una solución a un modelo de estado complejo
- Definir múltiples
reducerspara manejar diferentes piezas del estado de tu aplicación, entonces compones esosreducersjuntándolos en un solo reductor raíz - El reductor raíz es pasado al método
createStore - Para juntar los
reducersen un reductor raíz, redux proporciona un métodocombineReducers
- Cuando necesitas hacer llamadas a
endpointsasincronamente, redux proveeRedux thunk middleware - Para incluir
Redux thunk middlewarelo pasas como argumento aRedux.applyMiddleware() - Una vez pasado,
Redux.applyMiddleware()es pasado como argumento acreateStore() - Es común enviar una acción antes de iniciar cualquier comportamiento asincrono para que el estado de su aplicación sepa que se están solicitando algunos datos (este estado podría mostrar un icono de carga, por ejemplo). Luego, una vez que recibe los datos, envía otra acción que transporta los datos como una carga útil junto con la información de que la acción se ha completado.
- Recuerde que estás pasando el
dispatchcomo parámetro a este creador de acción especial. Esto es lo que usará para despachar sus acciones, simplemente pase la acción directamente aldispatchy el middleware se encargará del resto.
- Cuando el estado es un arreglo se usan los operadores
...ysplice - Cuando el estado es un objeto se puede usar el método
assigndeObject