Por que o useState não reseta pro valor inicial quando o componente é remontado?
Duvida sobre o useState
import { useState } from "react";
import reactLogo from "./assets/react.svg";
import viteLogo from "/vite.svg";
import "./App.css";
function App() {
const [count, setCount] = useState(0);
console.log("component render");
const doubleCount = count * 2;
return (
<>
<div>
<a href="https://vitejs.dev" target="_blank">
<img src={viteLogo} className="logo" alt="Vite logo" />
</a>
<a href="https://react.dev" target="_blank">
<img src={reactLogo} className="logo react" alt="React logo" />
</a>
</div>
<h1>Vite + React</h1>
<div className="card">
<button onClick={() => setCount((count) => count + 1)}>
count is {count}
double count is {doubleCount}
</button>
<p>
Edit <code>src/App.tsx</code> and save to test HMR
</p>
</div>
<p className="read-the-docs">
Click on the Vite and React logos to learn more
</p>
</>
);
}
export default App;
Toda vez que o valor de "count"
muda, o componente é remontado, e tudo dentro dele é executado novamente, fazendo assim com que "console.log"
apareça toda vez que o componente for renderizado, e "doubleCount"
sempre tenha o valor de count * 2
.
Alguém sabe me dizer por que essa lógica não se aplica na declaração const [count, setCount] = useState(0);
?
Por que o estado de count não reseta pra 0 quando o componente é renderizado?
O que o react faz por baixo dos pano para que este comportamento não ocorra?