React States
O passado, o presente e o que vem por aí
@wmitrut
Wellington Mitrut
Slide 2
Slide 2 text
Wellington Mitrut
@wmitrut
Software Engineer
Blogueiro e Podcaster
Open Culture
Cerveja
Gatos
Javascript e seus derivados
Fora Bolsonaro Tome Vacina Tome Vacina
Slide 3
Slide 3 text
React === State;
2013
Slide 4
Slide 4 text
Uma UI que REAGE às mudanças de ESTADO;
Slide 5
Slide 5 text
O que é ESTADO?
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
Quando se trata de React, estado pode
ser muitas coisas
Slide 8
Slide 8 text
UI State
(dark mode, toggle, modal, cor, botões)
Slide 9
Slide 9 text
Mas ao longo dos anos conforme
aprendemos mais sobre web,SPAs,PWAs…
Slide 10
Slide 10 text
Server Cache State
(Chamada de API, salvar resultados, utiliza-los)
Slide 11
Slide 11 text
Form State
(Carregando, enviando, desabilitado, validação, reenviar)
Slide 12
Slide 12 text
URL State
(Rotas, query params)
Slide 13
Slide 13 text
State machines
(modelos lógicos da mudança de estado - if, else, if
ternário, etc…)
Slide 14
Slide 14 text
Cada componente sozinho tem seu estado,
mas um estado sozinho quase sempre quer
dizer NADA.
Slide 15
Slide 15 text
flux;
2014
(Muitas libs, mas muitas mesmo…)
Slide 16
Slide 16 text
Redux;
2015
Slide 17
Slide 17 text
Pessoas que sabem Redux Pessoas que sabem Redux
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
React Context;
2016
(Deus abençoe o React 16)
Slide 20
Slide 20 text
No content
Slide 21
Slide 21 text
No content
Slide 22
Slide 22 text
ReactContext !== state_management_library;
Slide 23
Slide 23 text
React Hooks;
2019
(useState, useEffect, useReducer e custom hooks)
Slide 24
Slide 24 text
React e Complexidade;
HOJE
Slide 25
Slide 25 text
State Machines;
HOJE
(useReducer, Redux, xState)
Slide 26
Slide 26 text
HOJE
Slide 27
Slide 27 text
State Management Libraries;
HOJE
Jotai
MobX
Akita
Hookstate
Recoil
Zustand
Valtio
Latios
Rematch
Recollect
Ridge Arceus
Particule
Slide 28
Slide 28 text
Por que tantas?
Slide 29
Slide 29 text
No content
Slide 30
Slide 30 text
Estados Complexos !== 3rd Party Lib;
Slide 31
Slide 31 text
E o server-side?
Slide 32
Slide 32 text
A Vercel apresentou o SWR, existe também o
React Query, se você está utilizando
GraphQL, a melhor saída pode ser o Apollo
Slide 33
Slide 33 text
setStatesFuture(null);
Futuro
Slide 34
Slide 34 text
A tendência do React é sempre absorver as
boas práticas
Slide 35
Slide 35 text
useReducer tem um problema, ele pode
levar a muitas renderizações
simultâneas
Slide 36
Slide 36 text
useSelectedContext();
(É como um useMemo mas você não quer morrer após usá-lo)