рдкреБрд╕реНрддрдХ рд░рд┐рдПрдХреНрдЯ рдлрд╛рд╕реНрдЯред React, JSX, Redux рдФрд░ GraphQL рдореЗрдВ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ ┬╗

рдЫрд╡рд┐ рд╣рд╛рдп, рд╣рдмреНрд░реЛрдЬрд╝рд┐рддреЗрд▓реА! рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг 2017 рдХреЗ рдкрддрди рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рд░рд┐рдПрдХреНрдЯ рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдкреБрд╕реНрддрдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдЦрдХ рдЬреАрдердм рднрдВрдбрд╛рд░ рдореЗрдВ рдкреБрд╕реНрддрдХ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдЕрдкрдбреЗрдЯ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред

рд╣рдо рдПрдХ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ "рд░рд╛рдЬреНрдпреЛрдВ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рдХреГрддрд┐ рдореЗрдВ рдЙрдирдХреА рднреВрдорд┐рдХрд╛" рдФрд░ рдЙрдирдХреА рднреВрдорд┐рдХрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдВред

рдпрджрд┐ рдЖрдкрдХреЛ рдЗрд╕ рдкреБрд╕реНрддрдХ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЕрдзреНрдпрд╛рдп рдкрдврд╝рдирд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдЪреБрдирдирд╛ рдЪрд╛рд╣рд┐рдП! рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдмрд┐рдирд╛, рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХ рдЙрдиреНрдирдд рд╕реНрдерд┐рд░ рдкреИрдЯрд░реНрди рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИрдВред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдореЗрд░рд╛ рдЙрддреНрд╕рд╛рд╣ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рд╕рдордЭрдиреЗ рд╕реЗ рдЖрдк рдмрд╣реБрдд рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХреЗрдВрдЧреЗред


рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЖрдк рд╕реНрд╡рдд: рдкреВрд░реНрдг (рдЫрд╡рд┐ 4.1) рдХреЗ рд╕рд╛рде рдПрдХ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рддреЗ рд╕рдордп, рдлрд╝реАрд▓реНрдб рдХреЛ рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ рд╡реЗрдм рдкреЗрдЬ рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдЬрд╛рд░реА рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдкрдиреЗ рдЕрдм рддрдХ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЧреБрдгреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдЖрдк рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдЪрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╡рд░реНрддрдорд╛рди рдШрдЯрдХ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдШрдЯрдХ рдмрдирдиреЗ рдкрд░ рд╡реЗ рдкрд╛рд░рд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рдЫрд╡рд┐ рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЧреБрдг рд╡рд░реНрддрдорд╛рди рдШрдЯрдХ рдореЗрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рдШрдЯрдХ рдореЗрдВ рдЧреБрдгреЛрдВ рдХреЛ рддрдм рддрдХ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ рдЬрдм рддрдХ рдЖрдк рдШрдЯрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдорд╛рддрд╛-рдкрд┐рддрд╛ (рдЫрд╡рд┐ред 4.2) рд╕реЗ рдирдП рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдХрд╣реАрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдПрдХ рдирдИ рд╕реВрдЪреА рдХреЛ рджреГрд╢реНрдп рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЧреБрдг рдирд╣реАрдВ рдмрджрд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рджреГрд╢реНрдп рдХреЛ рдХреИрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП?

рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рд╕рд░реНрд╡рд░ рд╕реЗ рдирдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рд░ рдмрд╛рд░ рдирдП рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рддрддреНрд╡ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдкрдХреЛ рддрд░реНрдХ рдХреЛ рдШрдЯрдХ рдХреЗ рдмрд╛рд╣рд░ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ - рдФрд░ рдШрдЯрдХ рдХреЛ рдЖрддреНрдордирд┐рд░реНрднрд░ рд╣реЛрдирд╛ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЕрдЧрд░ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдХреЛ рдЖрддреНрдордирд┐рд░реНрднрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдлрд┐рд░ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ: рдШрдЯрдХ (createElement () рдпрд╛ JSX <NAME />) рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдП рдмрд┐рдирд╛ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдХреИрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП? рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬреЛ рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддреА рд╣реИред

рдЫрд╡рд┐

рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдХреЙрд▓рдмреИрдХ рдХреЛрдб рдШрдЯрдХ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рддрджрдиреБрд╕рд╛рд░ рдмрджрд▓ рджреЗрдЧрд╛ред рдЖрдкрдХреЛ рдпрд╣ рдХреЛрдб рдЦреБрдж рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд░рд╛рдЬреНрдп рдХреЗ рдЕрджреНрдпрддрди рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рддрдГ рд╣реА рдЖрдкрдХреЗ рд▓рд┐рдП рджреГрд╢реНрдп рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рджреЗрдЧреА (рдХреЗрд╡рд▓ рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛рдиреА рдЬрд╣рд╛рдВ рд░рд╛рдЬреНрдп рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде, рдЖрдк рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡, рд╕рд╛рд░реНрдердХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд░рд╛рдЬреНрдп рдПрдХ рдореВрд▓рднреВрдд рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдбреЗрдЯрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХ рдХреА рд╕реНрдерд┐рддрд┐ рдХреНрдпрд╛ рд╣реИ?


рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрдерд┐рддрд┐ рдПрдХ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдШрдЯрдХ рдбреЗрдЯрд╛ рднрдВрдбрд╛рд░рдг рд╣реИ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рддрд░реНрдХ рдХреЗ рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди рдлрд╝рдВрдХреНрд╢рди-рдЙрдиреНрдореБрдЦ рдмреНрд▓реЙрдХред "рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓рддрд╛" рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд░рд╛рдЬреНрдп рдХреЗ рдореВрд▓реНрдп рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рджреГрд╢реНрдп рдореЗрдВ рд░рд╛рдЬреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ (рд░реЗрдВрдбрд░ рдХрд░рдирд╛) рдФрд░ рдмрд╛рдж рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрджрд▓рдирд╛, рдЖрдк рджреГрд╢реНрдп рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд░реВрдкрдХ: рдпрджрд┐ рдЖрдк рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдШрдЯрдХ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕рдореЗрдВ рдЧреБрдг рдФрд░ рд░рд╛рдЬреНрдп рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (рдкреНрд░рд╕реНрддреБрддрд┐) рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реЛрдЧрд╛ред рдЧреБрдг рдФрд░ рд░рд╛рдЬреНрдп рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЦрдВрдб 4.3 рджреЗрдЦреЗрдВ)ред

рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдЙрдиреНрд╣реЗрдВ рдирд╛рдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рддреЗ рд╣реИрдВред рдирд╛рдо рдЗрд╕ рдХрд╛ рдПрдХ рдЧреБрдг рд╣реИ (рдпрд╛рдиреА, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреБрдВрдЬреА рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА - рдШрдЯрдХ рдХрд╛ рдЧреБрдг рдирд╣реАрдВ)ред рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрджрд╛рд╣рд░рдг, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП this.state.autocompleMatches рдпрд╛ this.state.inputFieldValue рд╣реИред

рд░рд╛рдЬреНрдп рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╢реНрдп рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрд╡рдд: рдкреВрд░реНрдг рдлрд╝реАрд▓реНрдб рдХреЗ рдкреБрд░рд╛рдиреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрдирд╛: рд╕рд░реНрд╡рд░ рдкрд░ XHR рдЕрдиреБрд░реЛрдз рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, рдбреЗрдЯрд╛ рдХреЛ рдлрд╝реАрд▓реНрдб рдореЗрдВ рджрд░реНрдЬ рдХрд░рдХреЗ рд╢реБрд░реВ рдХреА рдЬрд╛рддреА рд╣реИред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдЬрдм рджреГрд╢реНрдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рджреГрд╢реНрдп рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬрдм рдХреЛрдИ рд╕реНрдерд┐рддрд┐ рдмрджрд▓рддреА рд╣реИ, рддреЛ рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣рд┐рд╕реНрд╕реЗ рдмрджрд▓рддреЗ рд╣реИрдВ (рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрддреНрд╡реЛрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрддреНрд╡ рдХреЗ рдЧреБрдг рдорд╛рди)ред

DOM рдореЗрдВ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддрд╛ рд╣реИред рдпрд╣ рд╡рд░реНрдЪреБрдЕрд▓ DOM рдореЙрдбрд▓ (рдЦрдВрдб 1.1.1 рджреЗрдЦреЗрдВ) рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рд╕рдВрднрд╡ рд╣реИ, рдЬреЛ рд░рд┐рдПрдХреНрдЯ рд╕реБрд▓рд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдбреЗрд▓реНрдЯрд╛ (рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рд╕рдордЧреНрд░рддрд╛) рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рддрдереНрдп рдЖрдкрдХреЛ рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ рд╢реИрд▓реА рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд░рд┐рдПрдХреНрдЯ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рднреА рд░реВрдЯреАрди рдХрд░рддрд╛ рд╣реИред рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдореБрдЦреНрдп рдЪрд░рдг 5 рдЕрдзреНрдпрд╛рдп рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИред

рд░рд┐рдПрдХреНрдЯрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рдЬреНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдШрдЯрдХ рдЧреБрдг (this.props), рд╕рд╛рдзрд╛рд░рдг рдЪрд░ (inputValue) рдФрд░ рд╡рд░реНрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ (this.inputValue) рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рдореВрд▓реНрдпреЛрдВ (рд╡рд░реНрддрдорд╛рди рдШрдЯрдХ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ) рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рджреГрд╢реНрдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдирд┐рдкреЗрдЯ рдПрдВрдЯреАрдкреИрдЯрд░реНрди рд╣реИ, рдЬреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд░рд╛рдЬреНрдп рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрд╣реАрдВ рднреА рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рджреГрд╢реНрдп рддрд╛рдЬрд╝рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛:

// :   ! let inputValue = 'Texas' class Autocomplete extends React.Component { updateValues() тЖР {      ( ) this.props.inputValue = 'California' inputValue = 'California' this.inputValue = 'California' } render() { return ( <div> {this.props.inputValue} {inputValue} {this.inputValue} </div> ) } } 

рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХреЗ рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПред

рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ


рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ, рдЙрдиреНрд╣реЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдЗрдП рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░реЗрдВред

рд░рд╛рдЬреНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ


рд░рд╛рдЬреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдШрдЯрдХ рдХрд╛ рдПрдХ рдЧреБрдг рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рдЗрд╕ рд▓рд┐рдВрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕.state.nameред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рдЪрд░ рдХреЛ рдЬреЗрд╕реАрдПрдХреНрд╕ рдХреЛрдб рдореЗрдВ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ ({}) рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реА рддрд░рд╣, рд░реЗрдВрдбрд░ () рдореЗрдВ, рдЖрдк рдЗрд╕ (рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдЪрд░ рдпрд╛ рдЧреИрд░-рдорд╛рдирдХ рдШрдЯрдХ рдХреА рд╡рд░реНрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рддрд░рд╣) рд░реЗрдВрдбрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП {this.state.inputFieldValue}ред рдпрд╣ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЗрд╕ .props.name рдореЗрдВ рдЧреБрдгреЛрдВ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рдорд╛рди рд╣реИред

рдЫрд╡рд┐ рд╣рдо рдЕрдВрдЬреАрд░ рдореЗрдВ рдШрдбрд╝реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдиреЗ рдЬреЛ рд╕реАрдЦрд╛, рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред 4.3ред рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп рдПрдХ рд╕реНрд╡рд╛рдпрддреНрдд рдШрдЯрдХ рд╡рд░реНрдЧ рдмрдирд╛рдирд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХреЛрдИ рднреА рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкрд░реЗрд╢рд╛рдиреА рдХреЗ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдЖрдпрд╛рдд рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдШрдбрд╝реА рдХреЛ рд╡рд░реНрддрдорд╛рди рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд░рдЪрдирд╛ рд╣реИ:

 /clock index.html /jsx script.jsx clock.jsx /js script.js clock.js react.js react-dom.js 

рдореИрдВ рдЯреНрд░реИрдХрд┐рдВрдЧ рдЭрдВрдбреЗ (-w) рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (-d) рдХреЗ рд╕рд╛рде рдмреИрдмреЗрд▓ рд╕реАрдПрд▓рдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рднреА рдЬреЗрдПрд╕рдПрдХреНрд╕ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдШрдбрд╝реА / рдЬреЗрдПрд╕рдПрдХреНрд╕ рд╕реЗ рд▓рдХреНрд╖реНрдп рдШрдбрд╝реА / рдЬреЗрдПрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рдЪрд▓рдиреЗ рдкрд░ рдкреБрди: рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рдкреИрдХреЗрдЬ рдореЗрдВ npm рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдорд╛рдВрдб рдХреЛ рд╕рд╣реЗрдЬрд╛ рд╣реИред рдкреИрд░реЗрдВрдЯ рдлреЛрд▓реНрдбрд░ ch04 рдХреА json рдлрд╛рдЗрд▓ рдХреЛ ch04 рд╕реЗ npm рд░рди рдмрд┐рд▓реНрдб-рдХреНрд▓реЙрдХ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

 "scripts": { "build-clock": "./node_modules/.bin/babel clock/jsx -d clock/js -w" }, 

рдмреЗрд╢рдХ, рд╕рдордп рдЕрднреА рднреА рдЦрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ (рд╣рдо рдЗрд╕реЗ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ)ред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдЖрдкрдХреЛ рд▓рдЧрд╛рддрд╛рд░ рджреГрд╢реНрдп рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдк рд░рд╛рдЬреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рд╕рдордп рдХрд╛ рдирд╛рдо рджреЗрдВ рдФрд░ рд╕реВрдЪреА 4.1 рдореЗрдВ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ рд░рд╛рдЬреНрдп рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 4.1ред JSX рд░рд╛рдЬреНрдп рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛

 class Clock extends React.Component { render() { return <div>{this.state.currentTime}</div> } } ReactDOM.render( <Clock />, document.getElementById('content') ) 

рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдорд┐рд▓реЗрдЧрд╛: рдЕрдирдХреИрдкреНрдб рдЯрд╛рдЗрдкрд░реНрд░рд░: рдирд▓ рдХреА рд╕рдВрдкрддреНрддрд┐ 'рдХрд░рдВрдЯ рдЯрд╛рдЗрдо' рдХреЛ рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рдПрдХ рдбреВрдмрддреЗ рд╣реБрдП рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрд┐рд▓рд╛рд╕ рдардВрдбреЗ рдкрд╛рдиреА рдХреЗ рд╕рдорд╛рди рд▓рд╛рдн рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд╕рд╛рд░реНрдердХ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╕рдВрджреЗрд╢ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рд╕рдордп рдХрд╛ рдорд╛рди рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИред рдЧреБрдгреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рд░рд╛рдЬреНрдп рдорд╛рддрд╛-рдкрд┐рддрд╛ рдореЗрдВ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рд╕реЗрдЯрд╕реНрдЯреИрдЯ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдореЗрдВ () рднреА рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд▓реВрдк рдмрдирд╛рдПрдЧрд╛ (рд╕реЗрдЯрд╕реНрдЯреЗрдЯ -> рд░реЗрдВрдбрд░ -> рд╕реЗрдЯрд╕реНрдЯреИрдЯ ...) - рдФрд░ рд░рд┐рдПрдХреНрдЯ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд╕реВрдЪрдирд╛ рджреЗрдЧрд╛ред

рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рд╕реНрдерд╛ рдХрд╛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ


рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рд░реЗрдВрдбрд░ () рдореЗрдВ рд╕реНрдЯреЗрдЯ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рд╕реНрдЯреЗрдЯ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, ES6 рд╡рд░реНрдЧ React.Component рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╕реБрдкрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рд░рдЦреЗрдВ () рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде; рдЕрдиреНрдпрдерд╛, рдкреИрд░реЗрдВрдЯ (React.Component) рдореЗрдВ рддрд░реНрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛:

 class MyFancyComponent extends React.Component { constructor(props) { super(props) this.state = {...} } render() { ... } } 

рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдЕрдиреНрдп рддрд░реНрдХ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирдИ рддрд┐рдерд┐ () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд░рдВрдЯ рдЯрд╛рдЗрдо рдХрд╛ рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВред рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рд╕рд╣реА рддрд┐рдерд┐ / рд╕рдордп рдкреНрд░рд╛рд░реВрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА toLocaleString () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (ch04 / рдШрдбрд╝реА)ред

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 4.2ред рдШрдбрд╝реА рдШрдЯрдХ рдирд┐рд░реНрдорд╛рддрд╛

 class Clock extends React.Component { constructor(props) { super(props) this.state = {currentTime: (new Date()).toLocaleString()} } ... } 

рдЗрд╕ рдореВрд▓реНрдп рдХрд╛ рдорд╛рди рдПрдХ рд╡рд╕реНрддреБ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо ES6 рд╕реЗ рдирд┐рд░реНрдорд╛рддрд╛ () рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдПрдВрдЧреЗ; рдкрд░рд┐рд╢рд┐рд╖реНрдЯ D рдФрд░ ES6 рд╕рд╛рд░рд╛рдВрд╢ рдХреЛ github.com/azat-co/cheatsheets/tree/master/6 рдкрд░ рджреЗрдЦреЗрдВ ред рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрдиреНрдп рдУрдУрдкреА рднрд╛рд╖рд╛рдУрдВ рдХреА рддрд░рд╣, рдПрдХ рд░рдЪрдирд╛рдХрд╛рд░ (рдпрд╛рдиреА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ ()) рдХреЛ рддрдм рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдХрдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╡рд┐рдзрд┐ рдХрд╛ рдирд╛рдо рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП; рдИрдПрд╕ 6 рдХреЗ рдирд┐рдпрдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ () рд╡рд┐рдзрд┐ рдмрдирд╛рддреЗ рд╕рдордп, рд╕реБрдкрд░ () рдХреЙрд▓ рдХреЛ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХреЗ рдмрд┐рдирд╛ рдореВрд▓ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рджреВрд╕рд░реА рдУрд░, рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ () рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕реБрдкрд░ () рдХреЛ рдХреЙрд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред

рдирд╛рдо рдЯрд╛рдЗрдордЯрд╛рдЗрдо рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ; рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рдЙрд╕реА рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд░рд╛рдЬреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╛ рд╕рд░рдгрд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рд░рд╛рдЬреНрдп рдореЗрдВ рдкреБрд╕реНрддрдХ рд╡рд┐рд╡рд░рдг рдХреА рдПрдХ рд╕рд░рдгреА рдЬреЛрдбрд╝рддрд╛ рд╣реИ:

 class Content extends React.Component { constructor(props) { super(props) this.state = { githubName: 'azat-co', books: [ 'pro express.js', 'practical node.js', 'rapid prototyping with js' ] } } render() { ... } } 

рдХреНрд▓рд╛рд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд░рд┐рдПрдХреНрдЯ рдПрд▓рд┐рдореЗрдВрдЯ рдмрдирд╛рддреЗ рд╕рдордп рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ () рд╡рд┐рдзрд┐ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реАрдзреЗ рд░рд╛рдЬреНрдп рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ - рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ () рд╡рд┐рдзрд┐ рдореЗрдВред рдЗрд╕ рдХреЗ рд╕рд╛рде рд░рд╛рдЬреНрдп рдХреЛ рд╕реАрдзреЗ рд╕реЗрдЯ рдпрд╛ рдЕрдкрдбреЗрдЯ рди рдХрд░реЗрдВред = = рдХрд╣реАрдВ рдФрд░, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рдгрд╛рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рддреЛ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рдорд┐рд▓рддрд╛ рд╣реИ, рдЬреЛ рдмрд╣реБрдд рдЬрд▓реНрджреА рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ - рд╕рд┐рд░реНрдл 1 рд╕реЗрдХрдВрдб рдореЗрдВред рдХрд┐рд╕реЗ рдРрд╕реА рдШрдбрд╝реА рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╡рд░реНрддрдорд╛рди рд╕рдордп рдХреЛ рди рджрд┐рдЦрд╛рдП? рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рд╣реИред

рд╕реНрдерд┐рддрд┐ рдЕрджреНрдпрддрди


рдЗрд╕ред рд╡рд┐рдзрд┐ (рдбреЗрдЯрд╛, рдХреЙрд▓рдмреИрдХ) рд╡рд░реНрдЧ рдХреА рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд░рд╛рдЬреНрдп рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд░рд┐рдПрдХреНрдЯ рд╡рд░реНрддрдорд╛рди рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдХреЛ рдЬреЛрдбрд╝рддреА рд╣реИ рдФрд░ рдХреЙрд▓ рд░реЗрдВрдбрд░ () рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдХреЙрд▓рдмреИрдХ рдХрд╣рддрд╛ рд╣реИред

SetState () рдореЗрдВ рдХреЙрд▓рдмреИрдХ рдХреЙрд▓рдмреИрдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдзрд┐ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирдП рд░рд╛рдЬреНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рдХреЙрд▓рдмреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдирдпрд╛ рд░рд╛рдЬреНрдп рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдмрд╕ рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ рд╕реЗрдЯрд╕реНрдЯреИрдЯ () рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд┐рдП рдмрд┐рдирд╛ рд░рд╛рдЬреНрдп рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдСрдкрд░реЗрд╢рди рдХрд░рддреЗ рд╕рдордп рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ: рдХрд╛рд░реНрдпрдХреНрд░рдо рд░рд╛рдЬреНрдп рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд░рд╛рдЬреНрдп рдкреБрд░рд╛рдирд╛ рд░рд╣рддрд╛ рд╣реИред
рдЕрдм рддрдХ, рд╣рдордиреЗ рд░рд╛рдЬреНрдп рд╕реЗ рд╕рдордп рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рд╣реИред рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╣рд░ рджреВрд╕рд░реЗ, рд╕рд╣реА рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯрд╛рдЗрдорд░ рдлрд╝рдВрдХреНрд╢рди рд╕реЗрдЯ рдЗрдиреНрдЯрд░рд╡рд▓ () (http://mng.bz/P2d6) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреЛ рд░рд╛рдЬреНрдп рдХреЛ рд╣рд░ n рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдЧрд╛ред рд╕реЗрдЯрдЗрдВрдЯрд░рд╡рд╛рд▓ () рд╡рд┐рдзрд┐ рд▓рдЧрднрдЧ рд╕рднреА рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдпрд╛ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг:

 setInterval(()=>{ console.log('Updating time...') this.setState({ currentTime: (new Date()).toLocaleString() }) }, 1000) 

рдЙрд▓рдЯреА рдЧрд┐рдирддреА рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ setInterval () рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдо рдХреЗрд╡рд▓ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рд▓реЙрдиреНрдЪрдХреЙрдХ () рд╡рд┐рдзрд┐ рдмрдирд╛рддреЗ рд╣реИрдВ; рд▓реЙрдиреНрдЪрдХреЙрдХ () рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдШрдЯрдХ рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 4.3 (ch04 / рдШрдбрд╝реА / jsx / clock.jsx) рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЫрд╡рд┐

рд╕реЗрдЯрд╕реНрдЯреИрдЯ () рд╡рд┐рдзрд┐ рдХрд╣реАрдВ рднреА рд▓реЙрдиреНрдЪ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рди рдХрд┐ рдХреЗрд╡рд▓ рд▓реЙрдиреНрдЪрдХреЙрдХ () рд╡рд┐рдзрд┐ рдореЗрдВ (рдЬрд┐рд╕реЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ), рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред рдЖрдорддреМрд░ рдкрд░, рд╕реЗрдЯрд╕реНрдЯреИрдЯ () рд╡рд┐рдзрд┐ рдХреЛ рдПрдХ рдШрдЯрдирд╛ рд╣реИрдВрдбрд▓рд░ рд╕реЗ рдпрд╛ рдХреЙрд▓рдмреИрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдпрд╛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

TIP рдЗрд╕ рдЖрджреЗрд╢ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдХреЛрдб рдореЗрдВ рд░рд╛рдЬреНрдп рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ред рдЗрд╕ рдкреНрд░рдХрд╛рд░ред рдирд╛рдо = 'рдирдпрд╛ рдирд╛рдо' рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ DOM рдореЙрдбрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕реЗрдЯрд╕реНрдЯреЗрдЯ () рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕реАрдзрд╛ рд░рд╛рдЬреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдПрдВрдЯреАрдкреИрдЯрд░реНрди рд╣реИ рдФрд░ рдЗрд╕реЗ рдЯрд╛рд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╕реЗрдЯрд╕реНрдЯреЗрдЯ () рд╡рд┐рдзрд┐ рдХреЗрд╡рд▓ рдЙрди рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреА рд╣реИ рдЬреЛ рдЗрд╕реЗ (рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдпрд╛ рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдкреВрд░реНрдг рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рдмрд┐рдирд╛)ред рдпрд╣ рд╣рд░ рдмрд╛рд░ рдкреВрд░реЗ рд░рд╛рдЬреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдХреЗрд╡рд▓ рддреАрди рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЕрдиреНрдп рджреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣реЗрдВрдЧреЗред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, userEmail рдФрд░ userId рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛:

 constructor(props) { super(props) this.state = { userName: 'Azat Mardan', userEmail: 'hi@azat.co', userId: 3967 } } updateValues() { this.setState({userName: 'Azat'}) } 

рдпрджрд┐ рдЖрдк рддреАрдиреЛрдВ рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрди рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдирдП рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реЗрдЯрд╕реНрдЯреИрдЯ () рдореЗрдВ рдкрд╛рд╕ рдХрд░рдХреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред (рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдореЗрдВ, рдЬреЛ рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ .replaceState () рд╡рд┐рдзрд┐ рдХрднреА-рдХрднреА рдкрд╛рдИ рдЬрд╛рддреА рд╣реИ; рдпрд╣ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ deprecated1 рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдирд╛рдо рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдиреЗ рдкреВрд░реЗ рд░рд╛рдЬреНрдп рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдкрдиреА рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ред)

рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдХреЙрд▓рд┐рдВрдЧ рд╕реЗрдЯрд╕реНрдЯреИрдЯ () рд░реЗрдВрдбрд░ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИ ()ред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд┐рдирдореЗрдВ рдХреЛрдб рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЖрдк рдЗрд╕ .forceUpate () рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдлрд┐рд░ рд╕реЗ рд░реЗрдВрдбрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рднреА, рдРрд╕реЗ рдирд┐рд░реНрдгрдп рдЕрд╡рд╛рдВрдЫрдиреАрдп рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ (рд░рд╛рдЬреНрдп рдХреЗ рдмрдЬрд╛рдп) рдкрд░ рднрд░реЛрд╕рд╛ рдШрдЯрдХреЛрдВ рдХреЛ рдХрдо рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдмрд╛рд╣рд░реА рдХрд╛рд░рдХреЛрдВ (рддрдВрдЧ рдмрдВрдзрди) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд░рд╛рдЬреНрдп рд╡рд╕реНрддреБ рдХреЛ рдЗрд╕ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдореЗрдВ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред JSX рдореЗрдВ, рдЖрдЙрдЯрдкреБрдЯ рдорд╛рди рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ ({}) рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, рдПрдХ рджреГрд╢реНрдп рдореЗрдВ рдПрдХ рд░рд╛рдЬреНрдп рд╕рдВрдкрддреНрддрд┐ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЬреЛ рдХрд┐ рд░реЗрдВрдбрд░ рд╡рд┐рдзрд┐ рдХреЗ рдмрджрд▓реЗ рдореЗрдВ рдЖрджреЗрд╢ рд╣реИ), рд╕рдВрдХреЗрддрди {this.state.Nn} рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬрд╛рджреВ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдПрдХ рджреГрд╢реНрдп рдореЗрдВ рд░рд╛рдЬреНрдп рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ, рдЕрдЧрд░ / рдФрд░ рдЖрджреЗрд╢ рдореЗрдВ, рдПрдХ рдмрдЪреНрдЪреЗ рдХреЗ рдЧреБрдг рдорд╛рди рдпрд╛ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ), рдФрд░ рдлрд┐рд░ рд╕реЗрдЯрд╕реНрдЯреЗрдЯ () рдирдП рдорд╛рдиреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░реЗрдВред рдмрд╛рд╣! рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ HTML рдорд╛рд░реНрдХрдЕрдк рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреА рд╣реИред рдЖрдк рдЗрд╕реЗ DevTools рдХрдВрд╕реЛрд▓ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдБ "рдЕрдкрдбреЗрдЯ ..." рдФрд░ "рд░реЗрдВрдбрд░рд┐рдВрдЧ ..." рд▓реВрдк рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдорд╣рд╛рди рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдкреВрд░реНрдг рдиреНрдпреВрдирддрдо рдЖрд╡рд╢реНрдпрдХ DOM рддрддреНрд╡реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ред

┬╗рдкреБрд╕реНрддрдХ рдХреА рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рдХрд╛рд╢рдХ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ
┬╗ рд╕рд╛рдордЧреНрд░реА
┬╗ рдЕрдВрд╢

рдлреЗрд░реАрд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХреВрдкрди рдкрд░ 20% рдХреА рдЫреВрдЯ - рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛

рдкреБрд╕реНрддрдХ рдХреЗ рдкреЗрдкрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рднреБрдЧрддрд╛рди рдкрд░, рдкреБрд╕реНрддрдХ рдХрд╛ рдПрдХ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдИ-рдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред

Source: https://habr.com/ru/post/hi446440/


All Articles