1 RT = 1 dica de React ⚛️
Uma que eu recomendo, além do webpack, é o Parcel:
parceljs.org
Isso vai facilitar, e muito, entender o porquê as coisas funcionam da forma que funcionam no React.
Então crie um único componente que manipule estado no seu app, e passe sempre esse estado para baixo, para os filhos, via props.
O pai vai conter o objeto de estado e as funções que modificam esse estado (com setState).
A única diferença é que o filho pode receber a referência da função para executá-la.
Se você precisa debugar para checar se algum valor no estado foi alterado corretamente, coloque seu debugger ou console.log no método render(), e não logo após a chamada do setState.
Use esse formato se você precisa atualizar o state com base no seu valor anterior:
this.setState(prevState => {
return {
counter: prevState.counter + 1
}
})
this.setState({ counter: this.state.counter + 1 })
this.setState({ counter: this.state.counter + 1 })
o valor de this.state.counter será 1, já que this.state.counter é o estado da class.
this.setState(prevState => ({ counter: prevState.counter + 1 }))
this.setState(prevState => ({ counter: prevState.counter + 1 }))
O valor de this.state.counter será 2 na próxima atualização, pois usamos o escopo da função que recebe esse valor atualizado.
overreacted.io
reactjs.org/docs/getting-s…
reactjs.org/tutorial/tutor…
Você pode acompanhar tudo o que está acontecendo na lib em primeira mão à partir desse link:
reactjs.org/blog/
- Você consegue escrever seus próprios códigos em JS?
- Entende passagem por valor e referência (tipos primitivos e tipos "objeto")?
- Sabe quais métodos modificam ou não a referência de um objeto?
- Sabe que funções também são objetos, e podem ser passadas por referência?
reactjs.org/docs/context.h…
github.com/jaredpalmer/fo…
handleSubmit = (e) => {
// corpo da função que vai executar quando ocorrer o evento de submit
}
Dentro dessa função, o `e.target` se refere ao formulário...
E no React, usando "controlled components" pode parecer ainda mais trabalhoso.
Mas pense que, no final, os dados já estarão prontos para serem submetidos =)
reactjs.org/docs/refs-and-…
Use callback refs:
reactjs.org/docs/refs-and-…
Ou a nova API React.createRef:
reactjs.org/docs/refs-and-…
Primeiro porque o React não espera o que quer que esteja acontecendo no cWM resolver antes de executar o render. Esse método é síncrono, e o render é executado logo após ele...
Você pode usar sempre o componentDidMount e componentDidUpdate.
Você pode se aproveitar disso para usar async / await com esses métodos, já que qualquer método / função async SEMPRE retorna uma promise =)
```
class Comp extends Component {
constructor (props) {
super(props)
this.state = {
stateValue: 1
}
}
}
```
e
```
class Comp extends Component {
state = {
stateValue: 1
}
}
```
continua no próximo tweet...
github.com/tc39/proposal-…
Quando chegar em stage 4, ela vai entrar na linguagem. Mas features em "stage 3" é bastante seguro de usar, pois dificilmente serão "dropadas". A probabilidade de entrar na espec é bem grande.
Para "economizar", normalmente podemos fazer:
<div>
{items.length && items.map(i => <p key={i}>{i}</p>)}
</div>
Muito cuidado...
Ou seja: vai aparecer um zero perdido na sua interface!
O problema NÃO é com o React ;)
Quando um servidor serve uma aplicação de forma estática, ele espera que cada rota seja um caminho válido interno do servidor.
npmjs.com/package/serve
gist.github.com/rambabusaravan…
netlify.com