Source Retrocompatível Escalável É a biblioteca mais popular da atualidade, com mais de 22 milhões de downloads no último mês no NPM. É Utilizado em diversos sites de alto tráfego, como The New York Times, Twitter, Netflix, MDN e nos sites da B2W Digital.
autônomo no carregamento de componentes em um app, renderizando componentes sem bloquear a main thread de acordo com a sua prioridade. <React.unstable_ConcurrentMode> <Componente /> </React.unstable_ConcurrentMode> // ----- // ReactDOM.unstable_createRoot(domNode).render(<App />); Concurrent mode Updates 2018/2019
uso de recursos como o estado (state) fora de classes (class), sendo assim possível o seu uso em componentes funcionais (functions). É possível também criar seus próprios hooks, aumentando a escalabilidade e reutilização de código. Está disponível para uso a partir da versão 16.8, e estará também disponível no React Native a partir da versão 0.59. 9 React Hooks
funcionais. Somente o estado inicial é necessário. Este hook pode ser chamado mais de uma vez na função, entretanto só pode ser usado no início do arquivo. import React, { useState } from "react"; function Exemplo() { const [contador, contar] = useState(0); return ( <div> <h1>Com Hook</h1> <p>Você clicou {contador} vezes</p> <button onClick={() => contar(contador + 1)}>Clique-me</button> </div> ); } useState React Hooks
componentWillUnmount. É executado logo após o render, incluindo o primeiro. Também possui uma maneira de “limpar” as mudanças após a execução, utilizando return. function Exemplo() { const [contador, contar] = useState(0); useEffect(() => { document.title = `Você clicou ${contador} vezes`; }); return ( <div> <p>Você clicou {contador} vezes</p> <button onClick={() => contar(contador + 1)}>Clique-me</button> </div> ); } useEffect React Hooks
como parâmetros um reducer do tipo (estado, ação) => novoEstado e um método de dispatch. Seu uso é mais indicado quando se tem uma lógica de estado mais complexa. function Exemplo() { const [estado, dispatch] = useReducer(reducer, estadoInicio); return ( <div> Contador: {estado.contador} <div> <button onClick={() => dispatch({ tipo: "incremento" })}>+</button> <button onClick={() => dispatch({ tipo: "decremento" })}>-</button> </div> </div> ); } useReducer React Hooks
este persista em um refresh da página. Seu uso é similar ao useState, porém o primeiro argumento é a chave do valor no localStorage. function Exemplo() { const [nome, setarNome] = useLocalStorage("nome", "Bob"); return ( <div> <label>Nome:</label> <input type="text" placeholder="Digite seu nome" value={nome} onChange={e => setarNome(e.target.value)} /> </div> ); } useLocalStorage Outros hooks interessantes