23
React & Redux

TDC2016SP - Trilha Frameworks JavaScript

Embed Size (px)

Citation preview

Page 1: TDC2016SP - Trilha Frameworks JavaScript

React & Redux

Page 2: TDC2016SP - Trilha Frameworks JavaScript

About me...

• Desenvolvedor full stack web• Polyglot programmer (Java, JS, Golang, Bash, etc)• ~15 anos no mercado de TI• Projetos realizados Brazil, EUA e Chile• Geek, Gamer, Father, etc...

twitter: @keullermagMail: [email protected]: https://github.com/keullerSlack: react-sp.slack.com

Page 3: TDC2016SP - Trilha Frameworks JavaScript

Redux foi inspirado em alguns conceitos, como:

✔ Flux Pattern

✔ Elm Architecture

✔ Om – single state atom

✔ ClosureScript – re-evaluation works

Page 4: TDC2016SP - Trilha Frameworks JavaScript

Redux propõe um modelo de estado único para aplicação!

Gerenciar o estado e suas mudanças é complexo!

Page 5: TDC2016SP - Trilha Frameworks JavaScript

O Estado é calculado a partir de funções redutoras (reducers)!

A combinação de várias reducers resulta na árvore de

estado.

Page 6: TDC2016SP - Trilha Frameworks JavaScript

Redux é composto de 3 elementos:

Store = action + Σ f(reducer)

Page 7: TDC2016SP - Trilha Frameworks JavaScript

Redux atua como uma cola entre seus componentes e os dados da sua aplicação...

Componente Store

Action

Page 8: TDC2016SP - Trilha Frameworks JavaScript

Redux não é uma biblioteca exclusiva do Ecosistema React!

Page 9: TDC2016SP - Trilha Frameworks JavaScript

ACTION e/ou EVENT

Ocorrem constantemente

em sua aplicação

sinalizando mudanças.

let action = { type: ADD_COMMENT, payload: {...}}

Page 10: TDC2016SP - Trilha Frameworks JavaScript

ACTION CREATORS

São funções que produzem (criam) ações.

// ES5 syntaxfunction addComment(data) { return { type: ADD_COMMENT, payload: data }}

// ES6 syntaxconst addComment = (data) => ({ type: ADD_COMMENT, payload: data})

Page 11: TDC2016SP - Trilha Frameworks JavaScript

REDUCER

Recalcula o novo estado através de funções “puras”.

let comments(state, action) => _state

Page 12: TDC2016SP - Trilha Frameworks JavaScript

STORE

Árvore de dados da sua aplicação

STATE

{ comments: [ {...}, {...} ]}

Page 13: TDC2016SP - Trilha Frameworks JavaScript

REDUX :: ARCH

ACTIONVIEW

MIDDLEW

ARE

MIDDLEW

ARE

MIDDLEW

ARE

REDUCER

REDUCER

REDUCER

APP STATE

Page 14: TDC2016SP - Trilha Frameworks JavaScript
Page 15: TDC2016SP - Trilha Frameworks JavaScript

React + Redux

Page 16: TDC2016SP - Trilha Frameworks JavaScript

React + Redux

• High Order Components• Function composition• Selectors• Middlewares

Page 17: TDC2016SP - Trilha Frameworks JavaScript

Redux Ecosystem

• Redux-Action-Helper• Reselect• Redux-Thunk• Redux-Saga• Redux-Loop• Redux-Observable

Page 18: TDC2016SP - Trilha Frameworks JavaScript

Redux Alternatives

• Flux Traditional• Mobx• Cerebral

Page 19: TDC2016SP - Trilha Frameworks JavaScript

Redux :: Prós & Cons

• Simples• Single Store• Performance• Leve ~2kb

• Aprendizado• Single Store• Boilerplate Code• Muitos

“complementos”

Prós Cons

Page 20: TDC2016SP - Trilha Frameworks JavaScript

Boas Práticas

• Mantenha os dados da aplicação no STORE

• Use action creators ao inves de actions

• Use props ao inves de state no componente

Page 21: TDC2016SP - Trilha Frameworks JavaScript

Boas Práticas

• Use bibliotecas para reduzir boilerplate code

• Explore com frequência connect (HoC)• Organize e modularize bem os reducers• Encapsule chamadas de APIs em ações

assíncronas• Utilize Redux DevTools durante o

desenvolvimento

Page 22: TDC2016SP - Trilha Frameworks JavaScript

Q & A

twitter: @keullermagmail: [email protected]: react-sp.slack.com

Page 23: TDC2016SP - Trilha Frameworks JavaScript

OBRIGADO!

twitter: @keullermagmail: [email protected]: react-sp.slack.com

Juntem-se a nós comunidade React-SP!