рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рдкреНрд░рд╢реНрди
рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ?
import React, { useState, useEffect } from "react";
import ReactDOM from "react-dom";
import "./styles.css";
function Child() {
console.log("Child render");
return null;
}
function App() {
const [count, setCount] = useState(0);
console.log("Render");
useEffect(() => {
console.log("count changed", count);
}, [count]);
return (
<div>
<h2>UseState</h2>
<p>clicked: {count}</p>
<button
onClick={() => {
setCount(count + 1);
}}
>
+1
</button>
<button
onClick={() => {
setCount(count);
}}
>
+0
</button>
<Child />
</div>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
рдЗрд╕ рдЧрд┐рдирддреА рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджреЛ рдмрдЯрди рд╣реИрдВред рдПрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рдЧрд┐рдирддреА +1 рд╣реЛ рдЬрд╛рддреА рд╣реИ, рджреВрд╕рд░рд╛ рдЧрд┐рдирддреА рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдкрд╣рд▓реЗ рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдмрдЯрди рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ "рд░реЗрдВрдбрд░" рд▓реЙрдЧ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдкрд╣рд▓реЗ +1 рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж "рд░реЗрдВрдбрд░" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рджреЛ рдмрд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди ""рдЪрд╛рдЗрд▓реНрдб рд░реЗрдВрдбрд░" рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред
рдореБрдЭреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдорд┐рд▓реАред
рдпрджрд┐ рдЖрдк рдПрдХ рд╕реНрдЯреЗрдЯ рд╣реБрдХ рдХреЛ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рдорд╛рди рдорд╛рди рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд░рд┐рдПрдХреНрдЯ рдмрдЪреНрдЪреЛрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдмрд┐рдирд╛ рдпрд╛ рдлрд╛рдпрд░рд┐рдВрдЧ рдкреНрд░рднрд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рдЬрдорд╛рдирдд рджреЗ рджреЗрдЧрд╛ред (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ Object.is рддреБрд▓рдирд╛ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред)
рдХреНрдпрд╛ рд░рд┐рдПрдХреНрдЯ рдХреЗрд╡рд▓ рдпрд╣ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдмрдЪреНрдЪреЛрдВ рдХреЗ рдШрдЯрдХ рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛? рд╡рд░реНрддрдорд╛рди рдШрдЯрдХ рдЕрднреА рднреА рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
рдпрд╣ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред
https://codesandbox.io/s/long-firefly-nz5px?fontsize=14&hidenavigation=1&theme=dark
рд░рд┐рдПрдХреНрдЯ рдХреЗ рдХреМрди рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдХреМрди рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░/рдУрдПрд╕ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИрдВ?
"рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛": "^16.12.0",
"рд░рд┐рдПрдХреНрд╢рди-рдбреЛрдо": "^16.12.0",
рдпрд╣ рд╕рдорд╕реНрдпрд╛ "рдмрдЧ" рдХреА рддрд░рд╣ рдирд╣реАрдВ рджрд┐рдЦрддреА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╢реНрди рд╣реИ? :рдореБрд╕реНрдХреБрд░рд╛рдУ:
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдХреЛ рдЕрднреА рднреА рдЙрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдШрдЯрдХ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╣ рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд░рд┐рдПрдХреНрдЯ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдкреЗрдбрд╝ рдореЗрдВ "рдЧрд╣рд░рд╛" рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬрд▓реНрджреА рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдЬрдм рдЙрд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдпрд╣ рдЬрдорд╛рдирдд рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред
рдЗрд╕рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЛ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдореЗрдВ рдХрд╛рдлреА рдЧрд╣рд░рд╛рдИ рддрдХ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рд╕рдордЭрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ- рдЬреЛ рд╢рд╛рдпрдж рдЙрддрдирд╛ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдФрд░ рдЖрдЧрд╛рдореА рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЙрдирдХреЗ рдмрджрд▓рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕рдорд╡рд░реНрддреА рдореЛрдб рдЬреИрд╕реЗ рдирдП рдПрдкреАрдЖрдИ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред рдФрд░ рд░рд╣рд╕реНрдпред
рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдбреЙрдХреНрд╕ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣реИ, рд░рд┐рдПрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдХреА рдорд╛рддреНрд░рд╛ рдХрдо рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП!
рдпрд╣ рд╕рдорд╕реНрдпрд╛ "рдмрдЧ" рдХреА рддрд░рд╣ рдирд╣реАрдВ рджрд┐рдЦрддреА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╢реНрди рд╣реИ? рдореИрдВ
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдХреЛ рдЕрднреА рднреА рдЙрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдШрдЯрдХ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╣ рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд░рд┐рдПрдХреНрдЯ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдкреЗрдбрд╝ рдореЗрдВ "рдЧрд╣рд░рд╛" рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬрд▓реНрджреА рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдЬрдм рдЙрд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдпрд╣ рдЬрдорд╛рдирдд рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред
рдЗрд╕рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЛ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдореЗрдВ рдХрд╛рдлреА рдЧрд╣рд░рд╛рдИ рддрдХ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рд╕рдордЭрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ- рдЬреЛ рд╢рд╛рдпрдж рдЙрддрдирд╛ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реЛрдЧрд╛ _рдФрд░_ рд╡реЗ рдЖрдЧрд╛рдореА рд░рд┐рд▓реАрдЬ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд░рдЦрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕рдорд╡рд░реНрддреА рдореЛрдб рдЬреИрд╕реЗ рдирдП рдПрдкреАрдЖрдИ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред рдФрд░ рд░рд╣рд╕реНрдпред
рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдбреЙрдХреНрд╕ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣реИ, рд░рд┐рдПрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдХреА рдорд╛рддреНрд░рд╛ рдХрдо рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП!
Thx, рдХреНрдпрд╛ рд▓рд╛рдкрд░рд╡рд╛рд╣ рдЖрджрдореА рд╣реИ! рдореИрдВ
рдХреЛрдИ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ! рдореИрдВ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдпрд╣ рд╕рдорд╕реНрдпрд╛ "рдмрдЧ" рдХреА рддрд░рд╣ рдирд╣реАрдВ рджрд┐рдЦрддреА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╢реНрди рд╣реИ? :рдореБрд╕реНрдХреБрд░рд╛рдУ:
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬрд▓реНрджреА рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдЬрдм рдЙрд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдпрд╣ рдЬрдорд╛рдирдд рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред
рдЗрд╕рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЛ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдореЗрдВ рдХрд╛рдлреА рдЧрд╣рд░рд╛рдИ рддрдХ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рд╕рдордЭрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ- рдЬреЛ рд╢рд╛рдпрдж рдЙрддрдирд╛ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдФрд░ рдЖрдЧрд╛рдореА рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЙрдирдХреЗ рдмрджрд▓рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕рдорд╡рд░реНрддреА рдореЛрдб рдЬреИрд╕реЗ рдирдП рдПрдкреАрдЖрдИ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред рдФрд░ рд░рд╣рд╕реНрдпред
рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдбреЙрдХреНрд╕ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣реИ, рд░рд┐рдПрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдХреА рдорд╛рддреНрд░рд╛ рдХрдо рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП!