useEffects Example

by gabrielgstein

HTML

<div id="app"></div>

CSS

body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#app {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  transition: all 0.2s;
}

li {
  margin: 8px 0;
}

h2 {
  font-weight: bold;
  margin-bottom: 15px;
}

.done {
  color: rgba(0, 0, 0, 0.3);
  text-decoration: line-through;
}

input {
  margin-right: 5px;
}

React

function App() {
  const [dados, setDados] = React.useState([]);

  function timeout(ms) {
    return new Promise((resolve) => setTimeout(resolve, ms));
  }

  async function request() {
    await timeout(3000);
    return [1, 2, 3, 4, 5];
  }

  React.useEffect(() => {
    async function loadData() {
      const response = await request();
      console.log(response);
      setDados(response)
      console.log(response);
    }

    loadData();
  }, []);

  return (<div> {dados} </div>);
}



ReactDOM.render(<App />, document.getElementById("app"));