#VemProReact
#VemProReact #JEP #3
Logo.js
const [repeat, setRepeat] = useState();
useEffect(() => {
setRepeat(1);
}, []);useEffect(() => {
console.log('repeat updated');
}, [repeat]);#VemProReact
#VemProReact #JEP #3
...
const [countPlus, setCountPlus] = useState(0);
const [countMinus, setCountMinus] = useState(0);
......
const handleClickPlus = () => {
setRepeat((repeat) => repeat + 1);
setCountPlus((count) => count + 1);
}
const handleClickMinus = () => {
setRepeat((repeat) => repeat - 1);
setCountMinus((count) => count + 1);
}
...Logo.js
#VemProReact
#VemProReact #JEP #3
...
<div className="App-logo-buttons">
<button disabled={repeat === 6} onClick={handleClickPlus}>
Logo +
</button>
<button disabled={repeat === 1} onClick={handleClickMinus}>
Logo -
</button>
</div>
<div>
<p><b>Logo +</b> button was clicked {countPlus} times</p>
<p><b>Logo -</b> button was clicked {countMinus} times</p>
</div>
...Logo.js
#VemProReact
#VemProReact #JEP #3
O que são Template Strings?
#VemProReact
Template Strings
Exemplos:
`Olá,
Tudo bem?``Olá, ${name}!``Olá, eu sou o ${first_name}${last_name}!`#VemProReact
Live Code!
🤘
#VemProReact
Revisão
O que é React?
#VemProReact
Revisão
O que é JSX?
#VemProReact
Revisão
O que diferencia uma arrow function de uma function expression?
#VemProReact
Revisão
Pra que servem as props?
Como podemos modificá-las?
#VemProReact
Revisão
O que é Destructuting Assignment?
#VemProReact
Revisão
Como criamos um state em um componente?
#VemProReact
Revisão
Como tratamos os eventos em uma aplicação React?
#VemProReact
Revisão
Pra que serve a hook useEffect?
Quais são os principais casos de uso dela?
#VemProReact
Revisão
O que é Spread Operator?
#VemProReact
FLUX
O que é FLUX?
#VemProReact
FLUX
Na teoria:
#VemProReact
FLUX
Na prática:
Action é simplesmente um objeto que define o que será modificado
Dispatcher é o intermediador de tudo, define o que, onde e como será alterado
Store é o que define a estrutura e os valores dos nossos dados, ou seja, é onde os dados estão de fato
View é onde será exibido qualquer dado para o usuário
#VemProReact
FLUX
Na prática:
Com FLUX, temos um fluxo de dados unilateral:
No mundo React, o view nada mais é do que um componente
#VemProReact
FLUX
O mais importante!
Você não vai precisar implementar o FLUX!
Isto é um conceito muito importante para se entender como funciona sua aplicação React
Não tenha medo! Agora tudo parece muito abstrato, mas no fim, tudo faz sentido!
#EuAgarantio
#VemProReact
Dúvidas?
#VemProReact
Bayon
#VemProReact
Bayon
O nome Bayon é referente a um conjunto de templos no Camboja, que se chamam Bayon.
A ideia por trás da escolha desse nome é que esses templos são formados por várias rochas que geram templos iguais, trazendo a ideologia de componentização.
#VemProReact
Bayon Commons
#VemProReact
Atividade!
#VemProReact
Correção da atividade!
yarn.lock
<Button variant="primary" disabled={repeat === 6} onClick={handleClickPlus}>
Logo +
</Button>Logo.js
<Button disabled={repeat === 1} onClick={handleClickMinus}>
Logo -
</Button>#VemProReact
Correção da atividade!
App.js
<Typography lineHeight={2} size={16}>
<b>Logo +</b> button was clicked {countPlus} times
</Typography>
<Typography lineHeight={2} size={16}>
<b>Logo -</b> button was clicked {countMinus} times
</Typography>Logo.js
<Typography lineHeight={3} size={18}>
Edit <code>src/App.js</code> and save to reload.
</Typography><Button href="https://reactjs.org" variant="subtle">
Learn React
</Button>#VemProReact
Correção da atividade!
Logo.js
<Button variant="primary" disabled={repeat >= 6} onClick={handleClickPlus}>
Logo +
</Button><Toast
open={repeat === 6}
type="error"
anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}
message="O valor máximo permitido é 6!"
/>#VemProReact
Obrigado!