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-Thunk

O que é

O Redux-Thunk é um middleware do Redux que altera a função de dispatch para que ele aceite, além do objeto com o type, uma função que recebe o dispatch como parâmetro, permitindo actions mais complexas, onde uma action consegue disparar outras, além de actions assíncronas e que conhecem o estado atual do store.

Geralmente o Redux-Thunk substitui a função do Redux-Saga, mas nada te impede de utilizar os dois ao mesmo tempo.

Como usar

Adicionar o thunk na lista de de middlewares do store.

import { createStore, applyMiddleware } from "redux";
import thunk from "redux-thunk";
import rootReducer from "./rootReducer";

const store = createStore(rootReducer, applyMiddleware(thunk));
export default store;

Agora sua action, além de ter o formato padrão de {type: 'ACTION_TYPE'}, o dispatch também pode receber uma action no formato:

const action = () => {
  return (dispatch, getState) => {
    const state = getState(); // Pegar valor atual salvo no store
    if (state.count >= 10) {
      return;
    }
    dispatch({ type: "INCREMENT" }); // Disparando uma action no padrão antigo
  };
};

Como aprender

Material útil

  • Documentação oficial

Validando o conhecimento

  • Criar projeto básico com create-react-app e fazer view simples que consegue consumir e modificar um reducer qualquer, criando actions no padrão antigo e no padrão thunk.
  • Fazer chamada em uma api dentro de uma action e disparando action de acordo com o retorno (inclusive uma action pra lidar com o erro).

Comandos úteis

Possíveis problemas

← Redux-SagaStyled Components →
  • 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