App Masters

App Masters

  • English
  • Português

›Frontend

App Masters - Core

  • Início
  • Conteúdo

Backend

  • Adonis
  • Laravel
  • Livewire
  • Sequelize

Fundamentos de Javascript

  • Javascript Assíncrono
  • Typescript

Padrões de Projeto

  • Presentational Container Design Pattern

Frontend

  • Ant Design
  • Flexbox
  • Media Queries
  • React Hook Form
  • Redux
  • Redux-Saga
  • Redux-Thunk
  • Styled Components
  • Tailwind
  • TWA
  • Yup

Testes

  • Cypress
  • Detox
  • Jest

Ferramentas

  • Docker
  • nvm
  • Storybook
  • Visual Studio Code

CMS

  • Strapi

Redux

O que é

O Redux é apenas uma forma que encontraram de guardar e atualizar o estado de forma previsível, mas o que importa pra gente é a integração dele com o React. Junto com o React é uma forma de centralizar o estado da aplicação em um lugar que qualquer componente consiga acessar e responda às alterações nos valores como se estivessem recebendo props.

Alguns nomes para se familiarizar:

  • Reducers - é o estado, ele mostrar o que salvar e como levar o estado atual para o próximo estado de acordo com a action recebida num formato de listeners;
  • Actions - são os possíveis eventos que podem acontecer e vão interagir com o estado, geralmente já são todos declarados por funções para serem usadas no dispatch;
  • Dispatch - é uma função para disparar uma action, geralmente vai receber um objeto no formato (retorno da função da action):
{
  type: 'ACTION_TYPE',
  payload: 'anything'
}
  • Types - é apenas uma string que dá um "nome" para action, assim o reducer sabe que action que está acontecendo;
  • Payload - junto com o type, a action pode enviar qualquer informação. Geralmente o padrão é mandar todas informações extras dentro da chave payload mas isso não é uma obrigação, só uma convenção;

Como usar

Com o redux já configurado, você geralmente só vai precisar consumir os dados que estão no store e disparar actions para mudar esses dados. Hoje você consegue fazer isso de forma simples com hooks:

import { useDispatch, useSelector } from "react-redux";

// Componente react consumindo o redux
export const TodoList = () => {
  const dispatch = useDispatch();
  const reduxList = useSelector((state) => state.todoReducer.list); // Valor direto do reducer "todoReducer"

  const setItemDone = (index) =>
    dispatch({ type: "SET_ITEM_DONE", payload: index }); // Função que dispara action do tipo "SET_ITEM_DONE"

  // ...
};

Para criar novos reducers, actions e types, conferir como está feito em cada projeto.

Como aprender

Material útil

  • Documentação oficial
  • Usage with React

Validando o conhecimento

  • Criar projeto básico com create-react-app e fazer view simples que consegue consumir e modificar um reducer qualquer.

Comandos úteis

Possíveis problemas

← React Hook FormRedux-Saga →
  • O que é
  • Como usar
  • Como aprender
    • Material útil
    • Validando o conhecimento
  • Comandos úteis
  • Possíveis problemas
App Masters
App masters
Content
More
BlogGitHub
Copyright © 2022 App Masters