
рдХреИрд░реЛрд▓рд┐рди рдУрдбреЗрди рдХреЗ рд╕рд╣рдпреЛрдЧ рд╕реЗ рдХреНрд░рд┐рд╕реНрдЯреЛрдлрд╝рд░ рд╕реЗрд▓реНрдмреЗрдХ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд┐рддред рдЬреВрди 2019 рдореЗрдВ рдУрд╕реНрд▓реЛ рдореЗрдВ ReactJS рдмреИрдардХ рдореЗрдВ рдЗрд╕реА рдирд╛рдо рдФрд░ рд╕рдорд╛рди рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡реНрдпрд╛рдЦреНрдпрд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ред
рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ - рдж 10 рдХрдВрдкреЛрдиреЗрдВрдЯ рдХрдорд╛рдВрдбреНрд╕ рдХрд╛ рдореВрд▓ рдирд╛рдо рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрджрд╛рд╣рд░рдг рдФрд░ рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓реЗрдЦ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЯреИрдЧ рдХреЗ рддрд╣рдд рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд▓рд┐рдЦреА рд╣реИ ред
рдРрд╕реЗ рдШрдЯрдХ рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ рдЬреЛ рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЖрдкрдХреЛ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпреЗ рдкреНрд░реЙрдк рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдПрдкреАрдЖрдИ рдХреЛ рд╕рдВрдкреВрд░реНрдг рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкрд░рд┐рдЪрдп рджреЗрдВрдЧреЗ, рд╕рд╛рде рд╣реА рджрд╕ рдЖрдЬреНрдЮрд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рдЙрди рдШрдЯрдХреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЗ рд╕рд╛рдереА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рд╕рдиреНрди рд╣реЛрдВрдЧреЗред

рдПрдкреАрдЖрдИ рдХреНрдпрд╛ рд╣реИ?
рдПрдХ рдПрдкреАрдЖрдИ - рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ - рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдХреЛрдб рдХреЗ рджреЛ рдЯреБрдХрдбрд╝реЗ рдорд┐рд▓рддреЗ рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЗ рдХреЛрдб рдФрд░ рджреБрдирд┐рдпрд╛ рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдкрд░реНрдХ рд╕рддрд╣ рд╣реИред рд╣рдо рдЗрд╕ рд╕рддрд╣ рдХреЛ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╣рддреЗ рд╣реИрдВред рдпрд╣ рдХреНрд░рд┐рдпрд╛рдУрдВ рдпрд╛ рдбреЗрдЯрд╛ рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрдЯ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрдЧ рдФрд░ рдХреЛрдб рдХреЗ рдмреАрдЪ рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рднреА рдПрдХ рдПрдкреАрдЖрдИ рд╣реИред рдЖрдк рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдпрд╛ рдЙрд╕рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрд╕реА рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП, рдЬреЛ рдЖрдкрдХреЗ рдШрдЯрдХ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рдЙрд╕рдХрд╛ рдПрдкреАрдЖрдИ рд╣реИ ред рдЗрд╕ рддрд░рд╣ рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЖрдкрдХреЗ рдШрдЯрдХ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╣реИрдВред
рдХреБрдЫ рдмреЗрд╕реНрдЯ рдПрдкреАрдЖрдИ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреНрд░реИрдХреНрдЯрд┐рд╕
рдЗрд╕рд▓рд┐рдП, рдПрдкреАрдЖрдИ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдХреМрди рд╕реЗ рдирд┐рдпрдо рдФрд░ рд╡рд┐рдЪрд╛рд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ? рдареАрдХ рд╣реИ, рд╣рдордиреЗ рдереЛрдбрд╝рд╛ рд╢реЛрдз рдХрд┐рдпрд╛, рдФрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдорд╣рд╛рди рд╕рдВрд╕рд╛рдзрди рд╣реИрдВред рд╣рдордиреЗ рджреЛ рдЪреБрдиреЗ - рдЬреЛрд╢ рдЯреНрдпреВрдмрд░ - "рдХреНрдпрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдПрдкреАрдЖрдИ рдмрдирд╛рддрд╛ рд╣реИ?" рдФрд░ рдПрдХ рд╣реА рд╢реАрд░реНрд╖рдХ рдХреЗ рд╕рд╛рде рд░реЙрди рдХреБрд░реАрд░ рджреНрд╡рд╛рд░рд╛ рд▓реЗрдЦ - рдФрд░ рдЗрди рдЪрд╛рд░ рдкреНрд░рдерд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛ рдерд╛ред
рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг
рдПрдкреАрдЖрдИ рдмрдирд╛рддреЗ рд╕рдордп рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдпрдерд╛рд╕рдВрднрд╡ рд╕реНрдерд┐рд░ рд░рдЦрд╛ рдЬрд╛рдПред рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдиреНрдпреВрдирддрдо рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдкрдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рд╣реИ, рддреЛ рд╡рд┐рд╕реНрддреГрдд рдЕрдкрдбреЗрдЯ рдЧрд╛рдЗрдб рд▓рд┐рдЦрдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдФрд░ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ, рддреЛ рдПрдХ рдореЙрдб рдХреЛрдб рд▓рд┐рдЦреЗрдВ рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╡рд░реНрдгрдирд╛рддреНрдордХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢
рдЬрдм рднреА рдЖрдкрдХреЗ рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рд╕рдВрднрд╡ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реБрдЖ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпрджрд┐ рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ "рджреБрд░реБрдкрдпреЛрдЧ" рдЬреИрд╕реЗ рд╕рдВрджреЗрд╢реЛрдВ рд╕реЗ рдбрд░рд╛рддреЗ рд╣реИрдВ рдФрд░ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХрд╛ рдПрдкреАрдЖрдИ рдПрдХ рдмреБрд░рд╛ рдкреНрд░рднрд╛рд╡ рдЫреЛрдбрд╝ рджреЗрдЧрд╛ред
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡рд░реНрдгрдирд╛рддреНрдордХ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд▓рд┐рдЦреЗрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдпрд╣ рддрдп рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИрдВ рдХрд┐ рд╡реЗ рдЖрдкрдХреЗ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВред
рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЖрд╢реНрдЪрд░реНрдп рдХрдо рдХрд░реЗрдВ
рдбреЗрд╡рд▓рдкрд░реНрд╕ рдирд╛рдЬреБрдХ рдкреНрд░рд╛рдгреА рд╣реИрдВ, рдФрд░ рдЬрдм рд╡реЗ рдЖрдкрдХреЗ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдбрд░рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЕрдкрдиреЗ рдПрдкреАрдЖрдИ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд╣рдЬ рдмрдирд╛рдпреЗрдВред рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ рдпрджрд┐ рдЖрдк рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдФрд░ рдореМрдЬреВрджрд╛ рдирд╛рдордХрд░рдг рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред
рд╕рд╛рде рд╣реА, рдЖрдкрдХрд╛ рдХреЛрдб рд╣рдореЗрд╢рд╛ рд╕реБрд╕рдВрдЧрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк рдЧреБрдгреЛрдВ рдХреЗ рддрд╛рд░реНрдХрд┐рдХ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╕реНрдерд╛рди рдкрд░ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдЖрдЧреЗ рдЫреЛрдбрд╝ рджреЗрдВ, рддреЛ рдпрд╣ рд▓реЛрдЧреЛрдВ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░реЗрдЧрд╛ред
API рднреВрддрд▓ рдХреЛ рдЫреЛрдЯрд╛ рдХрд░реЗрдВ
рдЖрдкрдХрд╛ рдПрдкреАрдЖрдИ рднреА рдХрдо рд╕реЗ рдХрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдорд╣рд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдПрдкреАрдЖрдИ (рдПрдкреАрдЖрдИ рд╕рддрд╣) рдХреА рд╕рддрд╣ рдЬрд┐рддрдиреА рдЫреЛрдЯреА рд╣реИ, рдЙрддрдиреА рд╣реА рдХрдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЖрдкрдХрд╛ рдПрдкреАрдЖрдИ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛!
рдЖрдкрдХреЗ API рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╣рдореЗрд╢рд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реЛрддрд╛ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдкреБрд░рд╛рдиреЗ рд╕реЗ рдирдП рдПрдкреАрдЖрдИ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИред
рд╡реЗрдм рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рджрд╕ рдЖрдЬреНрдЮрд╛рдПрдБ

рддреЛ, рдпреЗ рдЪрд╛рд░ рд╕реБрдирд╣рд░реЗ рдирд┐рдпрдо REST API рдХреЗ рд▓рд┐рдП рдФрд░ рдкрд╛рд╕реНрдХрд▓ рдкрд░ рдкреБрд░рд╛рдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ - рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЖрдзреБрдирд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХреИрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП?
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдХрд╣рд╛, рдШрдЯрдХреЛрдВ рдХрд╛ рдЕрдкрдирд╛ рдПрдкреАрдЖрдИ рд╣реИред рд╣рдо рдЙрдиреНрд╣реЗрдВ props
рдХрд╣рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЙрдирдХреА рдорджрдж рд╕реЗ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рд╕рдВрд░рдЪрдирд╛ рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рди рд╣реЛ?
рд╣рдордиреЗ рджрд╕ рд╕реНрд╡рд░реНрдг рдирд┐рдпрдореЛрдВ рдХреА рдпрд╣ рд╕реВрдЪреА рдмрдирд╛рдИ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдмрдирд╛рддреЗ рд╕рдордп рд╕рд░реНрд╡реЛрддреНрддрдо рд░реВрдк рд╕реЗ рдЕрдиреБрд╕рд░рдг рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╡реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдВрдЧреЗред
1. рдШрдЯрдХреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬ
рдпрджрд┐ рдЖрдк рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЕрдкрдиреЗ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡рд╣ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдШрдЯрдХ рдмреЗрдХрд╛рд░ рд╣реИред рдЦреИрд░, рд▓рдЧрднрдЧ рдмреЗрдХрд╛рд░ рд╣реИ, рдЖрдк рд╣рдореЗрд╢рд╛ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд▓реЛрдЧ рдРрд╕рд╛ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред
рдЖрдкрдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрди рддреАрдиреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ:
рдкрд╣рд▓реЗ рджреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рддреАрд╕рд░рд╛ рдЖрдкрдХреЛ рдПрдордбреАрдПрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐: рд╢реБрд▓реНрдХ рд░реВрдк рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдЪреБрдирддреЗ рд╣реИрдВ, рд╣рдореЗрд╢рд╛ рдПрдкреАрдЖрдИ рджреЛрдиреЛрдВ рдХреЛ рд╣реА рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░реЗрдВ рдФрд░ рдЖрдкрдХреЗ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдФрд░ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП ред рдЕрдВрддрд┐рдо рднрд╛рдЧ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдпреЛрдЬрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ - рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рджрд┐рдП рдЧрдП рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрдЯрди рдпрд╛ рд▓реЗрдЖрдЙрдЯ рдЧреНрд░рд┐рдб рдХрд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
2. рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
рдПрдЪрдЯреАрдПрдордПрд▓ рдПрдХ рдЕрд░реНрдердкреВрд░реНрдг рддрд░реАрдХреЗ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рдВрд░рдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рднрд╛рд╖рд╛ рд╣реИред рдХреЗрд╡рд▓ рдпрд╣рд╛рдБ, рд╣рдорд╛рд░реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдШрдЯрдХреЛрдВ рдореЗрдВ <div />
рдЯреИрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ - рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдШрдЯрдХ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдХреНрдпрд╛ рд╣реЛрдВрдЧреЗ, рд╢рд╛рдпрдж <article />
, рдпрд╛ <section />
, рдпрд╛ <aside />
- рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдерд┐рддрд┐ рдЖрджрд░реНрд╢ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИред
рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдмрд╕ рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдкреНрд░реЛрдк as
рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рджреЗрдВ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдбреЛрдо рддрддреНрд╡ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
function Grid({ as: Element, ...props }) { return <Element className="grid" {...props} /> } Grid.defaultProps = { as: 'div', };
рд╣рдо Element
рдЪрд░ рдХреЗ as
рдкреНрд░реЛрдк рдХрд╛ рдирд╛рдо рдмрджрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рдЬреЗрдПрд╕рдПрдХреНрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЕрд░реНрдердкреВрд░реНрдг HTML рдЯреИрдЧ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдбрд┐рдлрд╝реЙрд▓реНрдЯ div
рдорд╛рди рджреЗрддреЗ рд╣реИрдВред
рдЬрдм <Grid />
рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдХреЗрд╡рд▓ рд╕рд╣реА рдЯреИрдЧ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
function App() { return ( <Grid as="main"> <MoreContent /> </Grid> ); }
рдпрд╣ рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рд░рд┐рдПрдХреНрдЯрд░ рд░рд╛рдЙрдЯрд░ <Link />
рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП <Button />
рдШрдЯрдХ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
<Button as={Link} to="/profile"> Go to Profile </Button>
3. рдмреВрд▓рд┐рдпрди рдкреНрд░реЙрдкреНрд╕ рд╕реЗ рдмрдЪреЗрдВ
рддрд╛рд░реНрдХрд┐рдХ рд╕рд╣рд╛рд░рд╛, рдЬреИрд╕реЗ, рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рдирд╛ рдореВрд▓реНрдп рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рд╣реА рд╕реБрдВрджрд░ рджрд┐рдЦрддрд╛ рд╣реИ:
<Button large>BUY NOW!</Button>
рд▓реЗрдХрд┐рди рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рддрд╛рд░реНрдХрд┐рдХ рдЧреБрдг рдХреЗрд╡рд▓ рджреЛ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВред рдкрд░ рдпрд╛ рдмрдВрдж рджрд┐рдЦрд╛рдИ рдпрд╛ рдЫрд┐рдкрд╛ рд╣реБрдЖред 1 рдпрд╛ 0ред
рдЬрдм рднреА рдЖрдк рдЖрдХрд╛рд░, рд╡рд┐рдХрд▓реНрдк, рд░рдВрдЧ рдпрд╛ рдРрд╕реА рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рддрд╛рд░реНрдХрд┐рдХ рдЧреБрдгреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рд╡рд┐рдХрд▓реНрдк рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдФрд░ рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реИрдВред
<Button large small primary disabled secondary> ?? </Button>
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рддрд╛рд░реНрдХрд┐рдХ рдЧреБрдг рдЕрдХреНрд╕рд░ рдмрджрд▓рддреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкреИрдорд╛рдиреЗ рдкрд░ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЙрди рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдПрдХ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдЪрдпрди рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдФрд░ рдмрди рд╕рдХрддреЗ рд╣реИрдВ, рдПрдиреБрдорд░реЗрдЯреЗрдб рд╡реИрд▓реНрдпреВрдЬрд╝ рдЬреИрд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
<Button variant="primary" size="large"> </Button>
рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рддрд╛рд░реНрдХрд┐рдХ рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! disabled
рдкреНрд░рдЪрд╛рд░, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдКрдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рдерд╛, рдЕрднреА рднреА рддрд╛рд░реНрдХрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдХреНрдпреЛрдВрдХрд┐ рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рдХреЗ рдмреАрдЪ рдХреЛрдИ рдордзреНрдп рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд╣реИред рдмрд╕ рдмреВрд▓рд┐рдпрди рдЧреБрдгреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреЗрдВред
4. props.children
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред props.children
рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдЧреБрдг рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рджреВрд╕рд░реЛрдВ рд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреЗ рдХреНрд░рдо рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ key
рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдФрд░ рд╡рд┐рд╢реЗрд╖ children
ред
рд╕рдм рдХреБрдЫ рдЬреЛ рдЖрдк рдШрдЯрдХ рдХреЗ рдЙрджреНрдШрд╛рдЯрди рдФрд░ рд╕рдорд╛рдкрди рдЯреИрдЧ рдХреЗ рдмреАрдЪ props.children
, рдЙрд╕реЗ props.children
рдЕрдВрджрд░ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдпрдерд╛рд╕рдВрднрд╡ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреНрдпреЛрдВ? рдХреНрдпреЛрдВрдХрд┐ content
рд▓рд┐рдП рдкреНрд░реЙрдк content
рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдХреЗрд╡рд▓ рд╕рд╛рдзрд╛рд░рдг рдорд╛рди рд▓реЗрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдЯреЗрдХреНрд╕реНрдЯред
<TableCell content="Some text" /> // <TableCell>Some text</TableCell>
props.children
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХрдИ рдлрд╛рдпрджреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдирд┐рдпрдорд┐рдд HTML рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреЗ рд╕рдорд╛рди рд╣реИред рджреВрд╕рд░реЗ, рдЖрдк рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЬреЛ рдЪрд╛рд╣реЗрдВ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рдЕрдкрдиреЗ рдХрдВрдкреЛрдиреЗрдВрдЯ рдореЗрдВ leftIcon
рдФрд░ rightIcon
leftIcon
рдЬреИрд╕реЗ рдкреНрд░реЙрдкреНрд╕ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп - рдмрд╕ рдЙрдиреНрд╣реЗрдВ props.children
рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░реЗрдВред
<TableCell> <ImportantIcon /> Some text </TableCell>
рдЖрдк рддрд░реНрдХ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдШрдЯрдХ рдХреЛ рдХреЗрд╡рд▓ рд╕рд╛рджреЗ рдкрд╛рда рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рд╣реИред рдХреБрдЫ рдмрд┐рдВрджреБ рддрдХред props.children
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ props.children
, рдЖрдк рдЧрд╛рд░рдВрдЯреА рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреА рдПрдкреАрдЖрдИ рдмрджрд▓рддреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдЧреАред
5. рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдЖрдВрддрд░рд┐рдХ рддрд░реНрдХ рд╕реЗ рдЪрд┐рдкрдХреЗ рд░рд╣рдиреЗ рджреЗрдВ
рдХрднреА-рдХрднреА рд╣рдо рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЖрдВрддрд░рд┐рдХ рддрд░реНрдХ рдФрд░ рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдШрдЯрдХ рдмрдирд╛рддреЗ рд╣реИрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрд╡рдд: рдкреВрд░реНрдг рдпрд╛ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдЖрд░реЗрдЦред
рдЗрд╕ рддрд░рд╣ рдХреЗ рдШрдЯрдХ рдЕрдХреНрд╕рд░ рдЕрддреНрдпрдзрд┐рдХ рдПрдкреАрдЖрдИ рд╕реЗ рдкреАрдбрд╝рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдПрдХ рдХрд╛рд░рдг рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреА рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде рдЬрдорд╛ рд╣реЛрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдо рд╕рд┐рд░реНрдл рдПрдХ рдПрдХрд▓, рдорд╛рдирдХреАрдХреГрдд рд╕рд╣рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдШрдЯрдХ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдпрд╛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ?
рдХреЗрдВрдЯ рдбреЛрдбреНрд╕ рдиреЗ рд░рд╛рдЬреНрдп рд░реЗрдбреНрдпреВрд╕рд░ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдкрд░ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рд▓реЗрдЦ рд▓рд┐рдЦрд╛ред рдпрд╣рд╛рдВ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рд╣реИ , рдФрд░ рдпрд╣ рднреА, рдпрд╣рд╛рдВ рдПрдХ рд▓реЗрдЦ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рд░рд┐рдПрдХреНрдЯ рд╣реБрдХ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП ред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рдЖрдкрдХреЗ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯреЗрдЯ рд░рд┐рдбреНрдпреВрд╕рд░ рдлрд╝рдВрдХреНрд╢рди рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреИрдЯрд░реНрди рд╣реИ, рдЬреЛ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЖрдкрдХреЗ рдШрдЯрдХ рдХреЗ рдЕрдВрджрд░ рдХреА рдЧрдИ рд╕рднреА рдХреНрд░рд┐рдпрд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдЖрдк рд░рд╛рдЬреНрдп рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░реЙрдкрд░ рдХреЗ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╢рд╛рдирджрд╛рд░ рддрд░реАрдХрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
function MyCustomDropdown(props) { const stateReducer = (state, action) => { if (action.type === Dropdown.actions.CLOSE) { buttonRef.current.focus(); } }; return ( <> <Dropdown stateReducer={stateReducer} {...props} /> <Button ref={buttonRef}>Open</Button> </> }
рд╡реИрд╕реЗ, рдЖрдк рдШрдЯрдирд╛рдУрдВ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреЗ рд╕рд░рд▓ рддрд░реАрдХреЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ onClose
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдШрдЯрдХ рдХреЛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ "рд░рд╛рдЬреНрдп рд░рд┐рдбреНрдпреВрд╕рд░" рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
6. рд╢реЗрд╖ рдкреНрд░реЙрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕рд╛рд░ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдПрдХ рдирдпрд╛ рдШрдЯрдХ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рджреАрд░реНрдШрд╡реГрддреНрдд рдХреЛ рд╢реЗрд╖ рдкреНрд░реЙрдкреНрд╕ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЙрд╕ рддрддреНрд╡ рдкрд░ рднреЗрдЬрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдШрдЯрдХ рдореЗрдВ рдкреНрд░реЙрдкрд░ рдЬреЛрдбрд╝рдирд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдмрд╕ рдЖрдзрд╛рд░ рдШрдЯрдХ рдпрд╛ рддрддреНрд╡ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЬрдм рдЖрдкрдХреЗ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдирдП рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рдпрд╛ ARIA рдЯреИрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдХрдИ рдЫреЛрдЯреЗ рд╕рдВрд╕реНрдХрд░рдг рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рдЖрдкрдХреЗ API рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рдмрдирд╛ рджреЗрдЧрд╛ред
рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
function ToolTip({ isVisible, ...rest }) { return isVisible ? <span role="tooltip" {...rest} /> : null; }
рдЬрдм рднреА рдЖрдкрдХрд╛ рдШрдЯрдХ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдк рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рдпрд╛ onClick
рд╣реИрдВрдбрд▓рд░, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреЛрдИ рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░ рднреА рдРрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рд╡рд░реНрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдмрд╕ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ npm classnames рд▓рд╛рдЗрдмреНрд░реЗрд░реА (рдпрд╛ рд╕рд┐рд░реНрдл рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрдХреНрд╖реЗрдкрдг) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдк рдХреНрд▓рд╛рд╕ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
import classNames from 'classnames'; function ToolTip(props) { return ( <span {...props} className={classNames('tooltip', props.tooltip)} /> }
рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░реНрд╕ рдФрд░ рдЕрдиреНрдп рдХреЙрд▓рдмреИрдХ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдПрдХ рдЫреЛрдЯреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ:
function combine(...functions) { return (...args) => functions .filter(func => typeof func === 'function') .forEach(func => func(...args)); }
рдпрд╣рд╛рдВ рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдирдпрд╛ рдХреЙрд▓рдмреИрдХ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рд╕рдорд╛рди рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдЙрди рд╕рднреА рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
function ToolTip(props) { const [isVisible, setVisible] = React.useState(false); return ( <span {...props} className={classNames('tooltip', props.className)} onMouseIn={combine(() => setVisible(true), props.onMouseIn)} onMouseOut={combine(() => setVisible(false), props.onMouseOut)} /> ); }
7. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдкреНрд░реЙрдкреНрд╕ рдХреЛ рдкрд░реНрдпрд╛рдкреНрдд рдбрд┐рдлреЙрд▓реНрдЯреНрд╕ (рдЪреВрдХ) рджреЗрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдЕрдирд┐рд╡рд╛рд░реНрдп рд╕рд╣рд╛рд░рд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рдХрд░ рджреЗрдВрдЧреЗред рдпрд╣ рдЖрдкрдХреЗ рдПрдкреАрдЖрдИ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░реЗрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, onClick
рд╣реИрдВрдбрд▓рд░ рд▓реЗрдВред рдпрджрд┐ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рдЗрд╕ рд╣реИрдВрдбрд▓рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЦрд╛рд▓реА рдлрд╝рдВрдХреНрд╢рди (рдиреВрдк-рдлрд╝рдВрдХреНрд╢рди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдХ рд░рд┐рдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЕрдиреНрдпрдерд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рди рд╣реЛред рдпрд╣ рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдХрд┐ рдЖрдк рд╣рдореЗрд╢рд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рди рдХрд┐ рдХреБрдЫ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдпрд╛ рдЕрд╢рдХреНрддред
8. HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
рдПрдХ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдЪрдЯреАрдПрдордПрд▓ рдХрд╛ рдЕрдкрдирд╛ рдПрдХ рд╕рд╣рд╛рд░рд╛ рд╣реИ - рдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ, рдФрд░ рдпрд╣ рд╕реНрд╡рдпрдВ HTML рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рд╣реИред рддреЛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЗрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд░рд╣реЗрдВ?
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдПрдкреАрдЖрдИ рд╕рддрд╣ рдХреЛ рдХрдо рдХрд░рдирд╛ рдФрд░ рдЗрд╕рдХреА рддреАрд╡реНрд░рддрд╛ рдЖрдкрдХреЗ рдШрдЯрдХреЛрдВ рдХреЗ рдПрдкреАрдЖрдИ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рддрд░реАрдХреЗ рд╣реИрдВред рддреЛ рдЕрдкрдиреЗ screenReaderLabel
рдкреНрд░реЙрдк рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдореМрдЬреВрджрд╛ screenReaderLabel
aria-label
рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рди рдХрд░реЗрдВ?
рдЕрдкрдиреЗ "рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА" рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рд╕реЗ рджреВрд░ рд░рд╣реЗрдВ ред рдЖрдк рдореМрдЬреВрджрд╛ API рдХреА рдЬрдЧрд╣ рднреА рдирд╣реАрдВ рд▓реЗрддреЗ - рдЖрдк рдмрд╕ рдЗрд╕рдХреЗ рдКрдкрд░ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдЬреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред рд▓реЛрдЧ рдЕрднреА рднреА рдЖрдкрдХреЗ рд╕реНрдХреНрд░реАрди рдХреЗ рд╕рд╛рде aria-label
рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВрд░реЗрд▓реЗрдмреЗрд▓ screenReaderLabel
- рдФрд░ рдлрд┐рд░ рдЕрдВрддрд┐рдо рдореВрд▓реНрдп рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдХрднреА рднреА рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ рдореЗрдВ HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рдорд╣рд╛рди рдЙрджрд╛рд╣рд░рдг <button />
рддрддреНрд╡ рдХрд╛ type
рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдЗрд╕реЗ submit
(рдбрд┐рдлрд╝реЙрд▓реНрдЯ), button
рдпрд╛ reset
рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдмрдЯрди рдХреЗ рджреГрд╢реНрдп рдкреНрд░рдХрд╛рд░ ( primary
, cta
, рдЖрджрд┐) рдХреЛ рдирд┐рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреНрд░реЛрдк рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░реЛрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рддреЛ рдЖрдкрдХреЛ рд╕рд╣реА type
рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдУрд╡рд░рд░рд╛рдЗрдб рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдУрд░ рд╕реЗ рднреНрд░рдо, рд╕рдВрджреЗрд╣ рдФрд░ рдЭреБрдВрдЭрд▓рд╛рд╣рдЯ рдкреИрджрд╛ рд╣реЛрдЧреАред
рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ - рдореИрдВрдиреЗ рдпрд╣ рдЧрд▓рддреА рдмрд╛рд░-рдмрд╛рд░ рдХреА - рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
9. рд╕рд╣рд╛рд░рд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ (рдпрд╛ рд╕рд┐рд░реНрдл рдкреНрд░рдХрд╛рд░) рд▓рд┐рдЦреЗрдВ
рдХреЛрдИ рднреА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЖрдкрдХреЗ рдХреЛрдб рдХреЗ рдЕрдВрджрд░ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд░реАрдк prop-types
рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдкрдХреЗ рдПрдкреАрдЖрдИ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╢рд╛рдирджрд╛рд░ рддрд░реАрдХрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЖрдк рдЕрдкрдиреЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рд╣рд╛рд░рд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдкреНрд░рд╛рд░реВрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк рдЙрдиреНрд╣реЗрдВ JSDoc рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕реБрдзрд╛рд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреНрд░реЙрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдЕрдорд╛рдиреНрдп рдпрд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдорд╛рди рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд░рди рдЯрд╛рдЗрдо рдкрд░ рдЖрдкрдХреЛ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдорд┐рд▓реЗрдЧреАред рдпрд╣ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдмрд╣реБрдд рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЙрддреНрдкрд╛рджрди рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдлрд╝реНрд▓реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рд░рд┐рдПрдХреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рднрд╛рд╖рд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдПрдкреАрдЖрдИ рдкреНрд░рд▓реЗрдЦрди рдорд┐рд▓рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдХрд╛рд╕ рд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рдорд░реНрдерди рдХреЛ рдФрд░ рдмрдврд╝рд╛рддрд╛ рд╣реИ рдФрд░ рдХрд╛рд░реНрдп рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рд╕реНрд╡рдпрдВ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЕрднреА рднреА рдЙрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЯрд╛рдЗрдк рдкрд░рд┐рднрд╛рд╖рд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рдЙрдирдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
10. рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╛рдЗрди
рдЕрдВрдд рдореЗрдВ, рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рдпрдоред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХрд╛ рдПрдкреАрдЖрдИ рдФрд░ рдЖрдкрдХреЗ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИ рдЬреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдХрд┐рд╕реА рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдХрд╛рдо рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЙрд╕реЗ рдЕрдиреБрдЪрд┐рдд рдЙрдкрдпреЛрдЧ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдирд╛ рд╣реИред рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░реЗрдВ, рдФрд░ рдпрд╣ рднреА, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди, рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐ рдЖрдкрдХреЗ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рддрд░реАрдХреЗ рд╣реИрдВред
рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп, рдЕрдкрдиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд▓рд┐рдВрдХ рджреЗрдВ рдпрд╛ рд╕рд░рд▓ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдПрдВред рдЬрд┐рддрдиреА рддреЗрдЬреА рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЖрдкрдХреЗ рдШрдЯрдХ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЙрддрдирд╛ рд╣реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВрдЧреЗред
рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдЗрди рд╕рднреА рд▓рдВрдмреА рддреНрд░реБрдЯрд┐ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЕрдВрддрд┐рдо рдкреИрдХреЗрдЬ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдореГрдд рдХреЛрдб рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдЪрдорддреНрдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рджреМрд░рд╛рди рдпрд╣ рд╕рднреА рдкрд╛рда рдФрд░ рддреНрд░реБрдЯрд┐ рдХреЛрдб рд╣рдЯрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЬреЛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрддрд╛ рд╣реИ рд╡рд╣ рд╣реИ рд░рд┐рдПрдХреНрдЯ рд╣реАред рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЖрдк рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП рдХреБрдВрдЬреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рднреВрд▓ рдЧрдП, рдпрд╛ рдЖрдкрдиреЗ рдЬреАрд╡рди рдЪрдХреНрд░ рд╡рд┐рдзрд┐ рдХреЛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд▓рд┐рдЦрд╛, рдпрд╛ рд╢рд╛рдпрдж рдЖрдк рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рднреВрд▓ рдЧрдП рдпрд╛ рд╣реБрдХ рдХреЛ рдЕрдирд┐рд╢реНрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдХрд╣рд╛ - рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рддреНрд░реБрдЯрд┐ рд╡рд╛рд▓реЗ рд╕рдВрджреЗрд╢ рдорд┐рд▓реЗрдВрдЧреЗред рдЖрдкрдХреЗ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЖрдкрд╕реЗ рдХрдо рдЕрдкреЗрдХреНрд╖рд╛ рдХреНрдпреЛрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП?
рддреЛ рдЕрдкрдиреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░реЗрдВред рднрд╡рд┐рд╖реНрдп рд╕реЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдбрд┐рдЬрд╛рдЗрди рдХрд░реЗрдВред рдЬрдм рдЖрдк рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВ, рддреЛ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░реЗрдВ, рдЬрд┐рд╕реЗ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реЛрдЧрд╛! рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╛рдЗрдиред
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░
рд╣рдо рдХреНрд▓рд╛рд╕рд┐рдХ рдПрдкреАрдЖрдИ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рд╕реАрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдХреА рдпреБрдХреНрддрд┐рдпреЛрдВ, рдЪрд╛рд▓, рдирд┐рдпрдореЛрдВ рдФрд░ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдРрд╕реЗ рдШрдЯрдХреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди, рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдЖрд╕рд╛рди, рд╕рд╣рдЬ рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдмрд╣реБрдд рд╣реА рд▓рдЪреАрд▓реЗ рд╣реИрдВред