рд▓реЗрдЦ рд░рд╛рдЬреНрдп рдЙрдкрдирд┐рд╡реЗрд╢ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдЕрд░реНрдерд╛рддреН , рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд╕рд╣-рд╕реНрдерд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЗрд╕ рд╢рдмреНрдж рдХреЛ рд░рд╛рдЬреНрдп рдХреЗ рдЙрдкрдирд┐рд╡реЗрд╢ рдпрд╛ рдЙрдкрдирд┐рд╡реЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд░рд┐рдПрдХреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдзреАрдорд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдореБрдЦреНрдп рдХрд╛рд░рдг рдЗрд╕рдХреА рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдКрдВрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдореИрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдХреЗ рдХрд░реАрдм рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ред
рдпрд╣рд╛рдВ рдПрдХ рд╕рд░рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдХреБрддреНрддреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд╛рдо рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрджрд┐ рд╡рд┐рдВрдбреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рддреЛ рдпрд╣рд╛рдВ рд▓рд┐рдВрдХ рд╣реИ ):
рдпрджрд┐ рдЖрдк рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдЦреЗрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЬрд▓реНрдж рд╣реА рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдЗрдирдкреБрдЯ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╕рдордп, рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдк React.memo
рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд▓рд╛рдЗрдлрдмреЙрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЖрдЗрдП рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рдпрд╣рд╛рдБ рдЗрд╕ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣реИ:
function sleep(time) { const done = Date.now() + time while (done > Date.now()) { // ... } } // // - function SlowComponent({time, onChange}) { sleep(time) return ( <div> Wow, that was{' '} <input value={time} type="number" onChange={e => onChange(Number(e.target.value))} /> ms slow </div> ) } function DogName({time, dog, onChange}) { return ( <div> <label htmlFor="dog">Dog Name</label> <br /> <input id="dog" value={dog} onChange={e => onChange(e.target.value)} /> <p> {dog ? `${dog}'s favorite number is ${time}.` : 'enter a dog name'} </p> </div> ) } function App() { // " " (global state) const [dog, setDog] = React.useState('') const [time, setTime] = React.useState(200) return ( <div> <DogName time={time} dog={dog} onChange={setDog} /> <SlowComponent time={time} onChange={setTime} /> </div> ) }
рдпрджрд┐ рдЖрдкрдиреЗ Colocation (рд╕рд╣-рд╕реНрдерд╛рди) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рдирд╣реАрдВ рдкрдврд╝рд╛ рд╣реИ, рддреЛ рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдкрдврд╝реЗрдВред рдпрд╣ рдЬрд╛рдирддреЗ рд╣реБрдП рдХрд┐ рд╕рд╣-рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛ рд╕рдХрддреА рд╣реИ, рдЖрдЗрдП рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреЛрдб рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдЕрд░реНрдерд╛рддреН time
рд╕реНрдерд┐рддрд┐ - рдпрд╣ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ App
рдШрдЯрдХ (рд╣рдорд╛рд░реЗ рд╕рдВрдкреВрд░реНрдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓рдкреЗрдЯрдиреЗ рд╡рд╛рд▓рд╛ рдШрдЯрдХ) рдХреЛ рдЙрдард╛ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ( рд░рд╛рдЬреНрдп рдХреЛ рдКрдкрд░ рдЙрдард╛рдирд╛ )ред рд╣рд╛рд▓рд╛рдВрдХрд┐, "рдбреЙрдЧ" рд░рд╛рдЬреНрдп ( dog
рдФрд░ setDog
) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдПрдХ рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, App
рдШрдЯрдХ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ DogName
рдШрдЯрдХ рдкрд░ рд▓реЗ рдЬрд╛рдПрдВ:
function DogName({time}) { // <- const [dog, setDog] = React.useState('') // <- return ( <div> <label htmlFor="dog">Dog Name</label> <br /> <input id="dog" value={dog} onChange={e => setDog(e.target.value)} /> <p> {dog ? `${dog}'s favorite number is ${time}.` : 'enter a dog name'} </p> </div> ) } function App() { // " " (global state) const [time, setTime] = React.useState(200) return ( <div> <DogName time={time} /> // <- <SlowComponent time={time} onChange={setTime} /> </div> ) }
рдФрд░ рдпрд╣рд╛рдВ рд╣рдорд╛рд░рд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ (рдпрджрд┐ рд╡рд┐рдВрдбреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рд▓рд┐рдВрдХ ):
рд╡рд╛рд╣! рдПрдХ рдирд╛рдо рджрд░реНрдЬ рдХрд░рдирд╛ рдЕрдм рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд╣-рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдШрдЯрдХ рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рддреЗрдЬреА рд╕реЗ рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд┐рдпрд╛?
рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЬрд▓реНрджреА рд╕реЗ рдХреБрдЫ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдХрдо рдХрд╛рдо рдХрд░реЗрдВред рдареАрдХ рдРрд╕рд╛ рд╣реА рдпрд╣рд╛рдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЬрдм рд╣рдо рдШрдЯрдХ рдЯреНрд░реА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╕реНрдерд┐рдд рд░рд╛рдЬреНрдп рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рд░рд╛рдЬреНрдп рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдбреЗрдЯ рдкреВрд░реЗ рдкреЗрдбрд╝ рдХреЛ рдЕрдорд╛рдиреНрдп рдХрд░ рджреЗрдЧрд╛ред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдХреНрдпрд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдЙрд╕реЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдШрдЯрдХреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реЛрдЧреА рдХрд┐ рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ DOM рдЕрдкрдбреЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореБрдХреНрдд рдирд╣реАрдВ рд╣реИ рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддреА рд╣реИ (рд╡рд┐рд╢реЗрд╖рдХрд░ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬрд╛рдирдмреВрдЭрдХрд░ рдзреАрдорд╛ рдШрдЯрдХ рд╣реИ)ред рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдШрдЯрдХ рдЯреНрд░реА рдореЗрдВ рд░рд╛рдЬреНрдп рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдХрдо рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ dog
рд╕реНрдЯреЗрдЯ рдФрд░ DogName
рдШрдЯрдХ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд░рд┐рдПрдХреНрдЯ рдХрдо рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ SlowComponent
рдШрдЯрдХ (рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдмрдирд╛рдпрд╛ рд╣реИ) рдХреА рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ React рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдШрдЯрдХ рдЕрднреА рднреА рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдкрд╣рд▓реЗ, рдХреБрддреНрддреЗ рдХреЗ рдирд╛рдо рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп, рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ (рдкреБрдирдГ рдкреНрд░рджрд╛рди) рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рд╣рдо рдХреЛрдб рдореЗрдВ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд╛рдж, рд░рд┐рдПрдХреНрдЯ рдХреЗрд╡рд▓ DogName
рдШрдЯрдХ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рд▓рдЧреЗред рдЗрд╕рд╕реЗ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИ!
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ
рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ Redux рдЧреНрд▓реЛрдмрд▓ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдпрд╛ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрджрд░реНрдн рдореЗрдВ рдбрд╛рд▓ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рд╕реЗ DogName
рдЬреИрд╕реЗ DogName
рдЕрдХреНрд╕рд░ рдРрд╕реЗ рд╕реНрдерд╛рди рд╣реЛрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИред рдореИрдВ рдЕрдХреНрд╕рд░ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╕рдордп рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╕реНрд╡рдпрдВ рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЧреНрд░рд╛рдл рдХреЗ рдКрдкрд░ рдпрд╛ рдбреЗрдЯрд╛ рдЯреЗрдмрд▓ рдХреЗ рдКрдкрд░ рдЯреВрд▓рдЯрд┐рдк рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИ)ред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рд╕рдорд╛рдзрд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛ "рд░рджреНрдж" рдХрд░рдирд╛ рд╣реИ (рдпрд╛рдиреА, рд╣рдо рддрдм рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдмрдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╣рдо рд░рд╛рдЬреНрдп рдЕрджреНрдпрддрди рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ)ред рдХрднреА-рдХрднреА, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬреЛ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЦрд░рд╛рдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдорд╡рд░реНрддреА рдореЛрдб рдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдХрдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рджрд╛рди рдЕрдмреНрд░рд╛рдореЛрд╡ рд╕реЗ рдпрд╣ рдбреЗрдореЛ рджреЗрдЦреЗрдВ )ред
рдПрдХ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╣ рд╣реИ рд░рд┐рдПрдХреНрдЯ рд░реЗрд╕реНрдХреНрдпреВ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП React.memo
ред рдпрд╣ рд╣рдорд╛рд░реЗ рджреВрд░рдЧрд╛рдореА рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд░рд┐рдПрдХреНрдЯ рдХреЛ SlowComponent
рдХреЗ рдкреБрди: рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ "рдПрдХ рд╣рдЬрд╛рд░ рдХрдЯреМрддреА рд╕реЗ рдореМрдд" рдХреЗ рдХрд╛рд░рдг рдЖрд╡реЗрджрди рдХреЛ рдиреБрдХрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрд╡реЗрджрди рдореЗрдВ рдордВрджреА рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдШрдЯрдХ, рдФрд░ рдХрдИ рдШрдЯрдХреЛрдВ рдХреЗ рдЕрдкрд░реНрдпрд╛рдкреНрдд рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХреЗ рдХрд╛рд░рдг, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╣рд░ рдЬрдЧрд╣ React.memo
рдХрд╛ рдЙрдкрдпреЛрдЧ React.memo
ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ useMemo
рдФрд░ useCallback
рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЕрдиреНрдпрдерд╛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ React.memo
рдореЗрдВ React.memo
рдЧрдП рд╕рднреА рдХрд╛рд░реНрдп рд╡реНрдпрд░реНрде рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдпреЗ рдХреНрд░рд┐рдпрд╛рдПрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдЖрдкрдХреЗ рдХреЛрдб рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдХрд╛рдлреА рдмрдврд╝рд╛рддреЗ рд╣реИрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡реЗ рдЕрднреА рднреА рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдкреНрд░рднрд╛рд╡реА рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд░рд┐рдПрдХреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ (рдКрдкрд░ рд╕реЗ рд╢реБрд░реВ) рд╕реЗ рдЧреБрдЬрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдереЛрдбрд╝реА рджреВрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ , рддреЛ рдпрд╣рд╛рдВ рдкрд░ рдХреЛрдбреЗрдВрдбрдмреЙрдХреНрд╕ рдкрд░ рдЬрд╛рдПрдВ ред
рд╕рд╣-рд╕реНрдерд╛рди рдХреНрдпрд╛ рд╣реИ?
рд╕рдВрдпреБрдХреНрдд рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдмрддрд╛рддрд╛ рд╣реИ:
рдХреЛрдб рдХреЛ рдЙрд╕ рд╕реНрдерд╛рди рд╕реЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдирд┐рдХрдЯ рд╕реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рд╕реЗ рд╡рд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ dog
рд╕реНрдерд┐рддрд┐ DogName
рдШрдЯрдХ рдХреЗ рдЕрдВрджрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:
function DogName({time}) { const [dog, setDog] = React.useState('') return ( <div> <label htmlFor="dog">Dog Name</label> <br /> <input id="dog" value={dog} onChange={e => setDog(e.target.value)} /> <p> {dog ? `${dog}'s favorite number is ${time}.` : 'enter a dog name'} </p> </div> ) }
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдо рдЗрд╕ рдШрдЯрдХ рдХреЛ рдХрдИ рдШрдЯрдХреЛрдВ рдореЗрдВ рддреЛрдбрд╝ рджреЗрдВ? рд░рд╛рдЬреНрдп рдХрд╣рд╛рдБ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рд╕рдорд╛рди рд╣реИ: "рдЬрд┐рд╕ рд╕реНрдерд╛рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдЙрд╕рдХреЗ рдХрд░реАрдм рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ," рдФрд░ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдирд┐рдХрдЯрддрдо рд╕рд╛рдорд╛рдиреНрдп рдореВрд▓ рдШрдЯрдХ рд╣реЛрдЧрд╛ ред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЪрд▓реЛ DogName
рдШрдЯрдХ рдХреЛ DogName
рд╣реИрдВ DogName
input
рдФрд░ p
рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдХреЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдВ:
function DogName({time}) { const [dog, setDog] = React.useState('') return ( <div> <DogInput dog={dog} onChange={setDog} /> <DogFavoriteNumberDisplay time={time} dog={dog} /> </div> ) } function DogInput({dog, onChange}) { return ( <> <label htmlFor="dog">Dog Name</label> <br /> <input id="dog" value={dog} onChange={e => onChange(e.target.value)} /> </> ) } function DogFavoriteNumberDisplay({time, dog}) { return ( <p> {dog ? `${dog}'s favorite number is ${time}.` : 'enter a dog name'} </p> ) }
рд╣рдо рд░рд╛рдЬреНрдп рдХреЛ DogInput
рдШрдЯрдХ рдореЗрдВ рдирд╣реАрдВ рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ DogFavoriteNumberDisplay
рдШрдЯрдХ рдХреЛ рднреА рд░рд╛рдЬреНрдп рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдШрдЯрдХ рдкреЗрдбрд╝ рдХреЗ рдиреАрдЪреЗ рд╕реЗ рдКрдкрд░ рдХреА рдУрд░ рддрдм рддрдХ рдЪрд▓рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд╣рдо рдЗрди рджреЛ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдореВрд▓ рддрддреНрд╡ рдХреЛ рдирд╣реАрдВ рдЦреЛрдЬ рд▓реЗрддреЗ рдФрд░ рдЗрд╕рдореЗрдВ рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрди рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдирд╣реАрдВ рдХрд░ рд▓реЗрддреЗред
рдпрд╣ рд╕рдм рдЙрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд░реНрдЬрдиреЛрдВ рдШрдЯрдХреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдкреНрд░реЛрдк рдбреНрд░рд┐рд▓рд┐рдВрдЧ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдЗрд╕реЗ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рднреА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдВрджрд░реНрдн рдХреЛ рдЙрд╕ рд╕реНрдерд╛рди рдХреЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рдЙрддрдирд╛ рдкрд╛рд╕ рд░рдЦреЗрдВ рдФрд░ рдлрд┐рд░ рдЖрдк рд╕рд╛рдЭрд╛рдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдЪреНрдЫреЗ рдкреНрд░рджрд░реНрд╢рди (рдФрд░ рдХреЛрдб рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛) рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд░рд┐рдПрдХреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ рд╕рднреА рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЙрдиреНрд╣реЗрдВ рд░рдЦреЗрдВ рдЬрд╣рд╛рдВ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
рдпрд╣ рдореЗрд░реА рдЕрдиреНрдп рдкреЛрд╕реНрдЯ рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рд╣реИ, рд░рд┐рдПрдХреНрдЯ рдХреЗ рд╕рд╛рде рдПрдкреНрд▓реАрдХреЗрд╢рди рд╕реНрдЯреЗрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ ред рдЕрдкрдиреЗ рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдЙрд╕ рд╕реНрдерд╛рди рдХреЗ рдХрд░реАрдм рд░рдЦреЗрдВ рдЬрд╣рд╛рдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд╕реЗ рдХреЛрдб рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рджреЛрдиреЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рд╕рдВрднрд╡рддрдГ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЦрд░рд╛рдм рдХрд░реЗрдЧреА, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдЬрдЯрд┐рд▓ рдмрд╛рддрдЪреАрддред
рддреЛ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рд╕рдВрджрд░реНрдн рдпрд╛ Redux?
рдпрджрд┐ рдЖрдк "рд░рд┐рдПрдХреНрдЯ рд░реА-рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЯреНрд░рд┐рдХ" рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЗрд╡рд▓ рд╡реЗ рдШрдЯрдХ рдЬреЛ рдмрджрд▓реЗ рд╣реБрдП рд░рд╛рдЬреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдк рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд▓реЛрдЧ рдЕрднреА рднреА рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрджреНрджреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ-рд░реЗрдбрдХреНрд╕ рдЖрдкрдХреЛ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЬреБрдбрд╝реЗ рдШрдЯрдХреЛрдВ рдХреЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреНрд░рддрд┐рдкрд╛рджрди рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ ред рд╣рдореЗрд╢рд╛ рддреНрд░реБрдЯрд┐ рдХрд╛ рдПрдХ рдореМрдХрд╛ рд╣реЛрддрд╛ рд╣реИ; рдЖрдк рдЧрд▓рддреА рд╕реЗ рдШрдЯрдХреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╡реЗ рддрдм рднреА рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ рдЬрдм рдЕрдиреНрдп рд╡реИрд╢реНрд╡рд┐рдХ рд░рд╛рдЬреНрдп рдмрджрд▓рддреЗ рд╣реИрдВред рдФрд░ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рдЬрд┐рддрдирд╛ рдмрдбрд╝рд╛ рд╣реЛрдЧрд╛, рдЗрд╕рдХрд╛ рдкреНрд░рднрд╛рд╡ рдЙрддрдирд╛ рд╣реА рдЕрдзрд┐рдХ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реЛрдЧрд╛, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдк рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд░рд╛рдЬреНрдп рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
рдРрд╕реЗ рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, memoized Reselect mapState
рд▓рд┐рдП memoized Reselect mapState
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрдХреЛрдВ рдХреЗ рдкреНрд░рд▓реЗрдЦрди рдХреЛ рдкрдврд╝реЗрдВред
рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╕рд╣-рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рд╕рдВрдкрд╛рджрдХ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреЗрд╡рд▓ рд╕рдВрдкрд╛рджрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рд╡реИрд╢реНрд╡рд┐рдХ рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВ, рдФрд░ рдмрд╛рдХреА рд╕рдм рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП, рд╕рд╣-рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрджрд┐ рд╕рдВрдкрд╛рджрдХ рдХреЛ рд░рд╛рдЬреНрдп рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдШрдЯрдХ рдореЗрдВ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдпрд╣ рддрдп рдХрд░рдиреЗ рдореЗрдВ рдЖрдкрдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрдХ рдХреЗ рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди рдореЗрдВ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдирд┐рдпрдо рд╣реИрдВ ред
рд╡реИрд╕реЗ, рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд░рд╛рдЬреНрдп рдХреЛ рдбреЛрдореЗрди рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдбреЛрдореЗрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрдИ рд╕рдВрджрд░реНрднреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ), рддреЛ рд╕рдорд╕реНрдпрд╛ рдХрдо рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧреАред
рд▓реЗрдХрд┐рди рддрдереНрдп рдпрд╣ рд╣реИ: рд░рд╛рдЬреНрдпреЛрдВ рдХрд╛ рд╕рд╣-рд╕реНрдерд╛рди рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЛрдб рд░рдЦрд░рдЦрд╛рд╡ рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред
рддрдп рдХрд░реЗрдВ рдХрд┐ рд░рд╛рдЬреНрдп рдХреЛ рдХрд╣рд╛рдВ рд░рдЦрд╛ рдЬрд╛рдП
рдирд┐рд░реНрдгрдп рд╡реГрдХреНрд╖:

рдкрд╛рда рд╕рдВрд╕реНрдХрд░рдг, рдЕрдЧрд░ рддрд╕реНрд╡реАрд░ рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ:
- 1 рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред 2 рдкрд░ рдЬрд╛рдПрдВ
- 2 рдШрдЯрдХ рдореЗрдВ рд╕реНрдерд┐рддрд┐ред 3 рдкрд░ рдЬрд╛рдПрдВ
- 3 рдХреНрдпрд╛ рд╣рд╛рд▓рдд рдХреЗрд╡рд▓ рдЗрд╕ рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИ ?
- рд╣рд╛рдБ? рд╣рдо 4 рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ
- рдирд╣реАрдВ? рдХреНрдпрд╛ рдЗрд╕ рд░рд╛рдЬреНрдп рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд▓ рдШрдЯрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
- рд╣рд╛рдБ? рдЗрд╕реЗ рдЗрд╕ рдмрд╛рд▓ рдШрдЯрдХ (рд╕рд╣-рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ) рдкрд░ рд▓реЗ рдЬрд╛рдПрдВред рд╣рдо 3 рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред
- рдирд╣реАрдВ? рдХреНрдпрд╛ рдЗрд╕ рд░рд╛рдЬреНрдп рдХреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдпрд╛ рдкрдбрд╝реЛрд╕реА ("рднрд╛рдИ" рдШрдЯрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдПрдХ рд╣реА рдореВрд▓ рдШрдЯрдХ рдХреЗ рдмрдЪреНрдЪреЗ) рдШрдЯрдХреЛрдВ?
- рд╣рд╛рдБ? рд░рд╛рдЬреНрдп рдХреЛ рдореВрд▓ рдШрдЯрдХ рд╕реЗ рдКрдкрд░ рд▓реЗ рдЬрд╛рдПрдВред 3 рдкрд░ рдЬрд╛рдПрдВ
- рдирд╣реАрдВ? рд╣рдо 4 рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ
- 4 рдЬреИрд╕рд╛ рд╣реИ рд╡реИрд╕рд╛ рдЫреЛрдбрд╝реЛред 5 рдкрд░ рдЬрд╛рдПрдВ
- 5 рдкреНрд░реЛ рдбреНрд░рд┐рд▓рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ?
- рд╣рд╛рдБ? рд╣рдо рдЗрд╕ рд░рд╛рдЬреНрдп рдХреЛ рд╕рдВрджрд░реНрдн рдкреНрд░рджрд╛рддрд╛ рдХреЗ рдкрд╛рд╕ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рдЙрд╕ рдШрдЯрдХ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред 6 рдкрд░ рдЬрд╛рдПрдВ
- рдирд╣реАрдВ? 6 рдкрд░ рдЬрд╛рдПрдВ
- 6 рд╣рдо рдЖрд╡реЗрджрди рднреЗрдЬрддреЗ рд╣реИрдВред рдЬрдм рдирдИ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВ, рддреЛ 1 рдкрд░ рдЬрд╛рдПрдВ
рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдкрдХреЗ рдирд┐рдпрдорд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ / рд░рдЦрд░рдЦрд╛рд╡ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛред рдпрджрд┐ рдЖрдкрдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд╣реАрдВ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдЙрдард╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдпрд╣ рд░рд╛рдЬреНрдп рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛ рдФрд░ рдЖрдк рдЗрд╕реЗ рдиреЛрдЯрд┐рд╕ рдХрд░реЗрдВрдЧреЗред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрдк рд░рд╛рдЬреНрдп рд╕рд╣-рд╕реНрдерд╛рди рдХреА рдкрджреНрдзрддрд┐ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдШрдЯрдХреЛрдВ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдХрдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛ред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдЖрдк рддреБрд░рдВрдд рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдкреНрд░рдмрдВрдзрди рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрдВрдЧреЗ рдЬреЛ рдзреАрд░реЗ-рдзреАрд░реЗ рдЬрдорд╛ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред
рдирд┐рд╖реНрдХрд░реНрд╖
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рд░рд╛рдЬреНрдп ("рдЙрдард╛рдиреЗ рд░рд╛рдЬреНрдп") рдХреЛ рдЙрдард╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рд░рд╛рдЬреНрдп рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддреЛ рд╣рдо рдЗрддрдиреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рд╕рдордЭрддреЗ рд╣реИрдВред рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдФрд░ рд╕реЛрдЪреЗрдВ рдХрд┐ "рд╕рд╣-рд╕реНрдерд╛рди" рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рд░рд╛рдЬреНрдп рдХреЛ рдХрд╣рд╛рдБ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рдкреВрдЫреЗрдВ, "рдХреНрдпрд╛ рдореБрдЭреЗ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдПрдХ рдореЛрдбрд▓ рд╡рд┐рдВрдбреЛ рдХреА isOpen
рд╕реНрдерд┐рддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?" (рдЬрд╡рд╛рдм рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ)ред
рд╕рд╣-рд╕реНрдерд╛рди рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ рдЖрдкрдХрд╛ рдХреЛрдб рдЖрд╕рд╛рди рдФрд░ рддреЗрдЬрд╝ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рд╕реМрднрд╛рдЧреНрдп рд╣реИ