
рдЖрдЬ рд╣рдо рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдХреЛрдгреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ (
рдЬреАрдердм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА ) рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ
рдСрдирдкрд╢ рд░рдгрдиреАрддрд┐ рдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХ рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рд░реВрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдЙрджреНрдпрдо рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИред
рд╣рдо рдлреНрд▓рдХреНрд╕, Redux, NgRx рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдХреЛрдгреАрдп рдФрд░ RJJS рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдЙрдкрд▓рдмреНрдз рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдПрдБред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпреЗ рдЙрдкрдХрд░рдг рдПрдХ рдЪрд╛рдВрджреА рдХреА рдЧреЛрд▓реА рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рд╕рд░рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЬрдЯрд┐рд▓рддрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо
рдлреНрд▓рдХреНрд╕ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдореЗрдВ рд╕реЗ
рдПрдХ , рдФрд░
рд░реЗрдбрдХреНрд╕ рдХреЗ
рд▓реЗрдЦрдХ рдФрд░ рдПрдирдЬреАрдЖрд░рдПрдХреНрд╕ рдХреЗ
рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреА рдЧрдИ рд╣реИред
рд▓реЗрдХрд┐рди рдпреЗ рдЙрдкрдХрд░рдг рд╣рдорд╛рд░реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛рдПрдБ рджреЗрддреЗ рд╣реИрдВ:
- рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рдирд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣;
- рд╕рдорд░реНрдерди рдбрд┐рдЬрд╛рдЗрди рджреНрд╡рд╛рд░рд╛ OnPush;
- рдбреЗрдЯрд╛ рдХреА рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдпрддрд╛, рд╕рдВрдЪрд┐рдд рджреБрд╖реНрдкреНрд░рднрд╛рд╡реЛрдВ рдХреА рдХрдореА рдФрд░ рдЕрдиреНрдп рд╕реБрдЦрдж рдЪреАрдЬреЗрдВред
рд╣рдо рд╕рдорд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдкреЗрд╢ рдХрд┐рдП рдмрд┐рдирд╛ред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рддрдХ рджреЗрдЦреЗрдВрдЧреЗ, рдпрд╣ рдПрдХ рдХрд╛рдлреА рд╕рд░рд▓ рдХрд╛рд░реНрдп рд╣реИ - рдпрджрд┐ рдЖрдк рд▓реЗрдЦ рд╕реЗ рдХреЛрдгреАрдп рдФрд░ рдСрдирдкрд╢ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рд╕рд░рд▓ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВред
рд▓реЗрдЦ рдПрдХ рдирдП рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдкреИрдЯрд░реНрди рдХреА рдкреЗрд╢рдХрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдкрд╛рдардХ рдХреЗ рд╕рд╛рде рдХрдИ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЗрд╕рдХреА рд╕рднреА рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рддреБрд░рдВрдд рджрд┐рдорд╛рдЧ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рдХрд╕рд┐рдд рд╕рдорд╛рдзрд╛рди рдлреНрд▓рдХреНрд╕ / Redux / NgRx рдХреЗ рд╡рд┐рдкрд░реАрдд рдпрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ ред
рд▓реЗрдЦ рдХреЗ рдПрдХ рдЖрд░рд╛рдорджрд╛рдпрдХ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд╢рдмреНрджреЛрдВ рдХреЛ рд╕реНрдорд╛рд░реНрдЯ, рдкреНрд░рд╕реНрддреБрддрд┐рдХрд░рдг рдФрд░ рдХрдВрдЯреЗрдирд░ рдШрдЯрдХреЛрдВ рдХреА рд╕рдордЭ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИредрдХрд╛рд░реНрдп рдпреЛрдЬрдирд╛
рдЖрд╡реЗрджрди рдХрд╛ рддрд░реНрдХ, рд╕рд╛рде рд╣реА рд╕рд╛рдордЧреНрд░реА рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдХрд╛ рдХреНрд░рдо, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдбреЗрдЯрд╛ (GET) рдФрд░ рд▓реЗрдЦрди (PUT / POST)
- рдХрдВрдЯреЗрдирд░ рдШрдЯрдХ рдореЗрдВ рдзрд╛рд░рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЛрдб рд╕реНрдерд┐рддрд┐
- рд░рд╛рдЬреНрдп рдХреЛ рдСрдирдкрд╢ рдШрдЯрдХреЛрдВ рдХреЗ рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░реЗрдВ
- рдШрдЯрдХ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдгреАрдп рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ
- рд╕рдордЭрд╛рдпрд╛ рдбреЗрдЯрд╛ рд╕рдВрдкрд╛рджрди
OnPush рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ Angular рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЗрд╡рд▓ рдЪрд╛рд░ рддрд░реАрдХреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдкреВрд░реЗ рд▓реЗрдЦ рдореЗрдВ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЙрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рддреЛ рдЪрд▓рд┐рдП рдЪрд▓рддреЗ рд╣реИрдВред
рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ
рдЖрдорддреМрд░ рдкрд░, рдлреНрд░рдВрдЯрдПрдВрдб рдФрд░ рдмреИрдХрдПрдВрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдЕрдиреБрдмрдВрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдЕрдиреНрдпрдерд╛ рд╕рднреА рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрдпреЛрдВ?)ред
рд╣рдо рдЬрд┐рд╕ рдбреЗрдореЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрд╕рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмреИрдХрдПрдВрдб рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдкреВрд░реНрд╡-рддреИрдпрд╛рд░ рд╡рд┐рд╡рд░рдг рдлрд╝рд╛рдЗрд▓
swagger.json рд╣реИ ред рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдиреБрдмрдВрдзреЛрдВ рдХреЛ
sw2dts рдЙрдкрдпреЛрдЧрд┐рддрд╛ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрддреНрдкрдиреНрди рдЕрдиреБрдмрдВрдзреЛрдВ рдореЗрдВ рджреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЧреБрдг рд╣реЛрддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкрдврд╝рдирд╛ рдФрд░ рд▓рд┐рдЦрдирд╛ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдмрдВрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╕рдореНрдореЗрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпрдп "рд░рд╛рдЬреНрдп" рдХреЗ рд╕рд╛рде рдЕрдиреБрдмрдВрдз рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпрдп "рдореЙрдбрд▓" рдХреЗ рд╕рд╛рде рдЕрдиреБрдмрдВрдз рд▓рд┐рдЦрддреЗ рд╣реИрдВред
рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЕрдиреБрдмрдВрдзреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдХреЗ, рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рд╕рд╛рдЭрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рддрдХ, рдХреЗрд╡рд▓ рдкрдарди рдХреЗ рд░рд╛рдЬреНрдп рдХреЛ рдШрдЯрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдЪрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдореЙрдбрд▓ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╢реБрд░реВ рдореЗрдВ рд░рд╛рдЬреНрдп рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЖрдмрд╛рджреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рдореМрдЬреВрдж рд╣реИред рд╕рдВрдкрд╛рджрди рдХреЗ рдЕрдВрдд рдореЗрдВ, рдореЙрдбрд▓ рдмреИрдХрдПрдВрдб рдкрд░ рдХрдорд╛рдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред
рджреВрд╕рд░рд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рд░рд╛рдЬреНрдп рдХреНрд╖реЗрддреНрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрддрд░ рдкрд░ рдкреНрд░рддрд┐рд░рдХреНрд╖рд╛ рд╕рд╣рд╛рдпрддрд╛ рдорд┐рд▓рддреА рд╣реИред рдЕрдм рд╣рдо рдЧрд▓рддреА рд╕реЗ рд░рд╛рдЬреНрдп рдХреЛ рдХреЛрдб рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ [(ngModel)] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдмрд╛рдВрдз рд╕рдХрддреЗ рд╣реИрдВ - рдЬрдм AOT рдореЛрдб рдореЗрдВ рдЖрд╡реЗрджрди рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреАред
рдХрдВрдЯреЗрдирд░ рдШрдЯрдХ рдореЗрдВ рдзрд╛рд░рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЛрдб рд╕реНрдерд┐рддрд┐
рд░рд╛рдЬреНрдп рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рд╛рдзрд╛рд░рдг рдХреЛрдгреАрдп рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╡реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдВрдЧреЗ:
- рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рдЙрджрд╛рд╣рд░рдг рд░рд╛рдЙрдЯрд░ рд╕реЗ рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдЖрдИрдбреА рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ HttpClient рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИред
- рдПрдХ рдирдИ рдЗрдХрд╛рдИ рдмрдирд╛рддреЗ рд╕рдордп рдПрдХ рдЦрд╛рд▓реА рд░рд╛рдЬреНрдп рдХреА рд╢реБрд░реБрдЖрддред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИрдВ рдпрд╛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмреИрдХрдПрдВрдб рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдмреИрдХрдПрдВрдб рдкрд░ рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓рдиреЗ рд╡рд╛рд▓реЗ рдСрдкрд░реЗрд╢рди рдХреЛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдкрд╣рд▓реЗ рд╕реЗ рд▓реЛрдб рдХреА рдЧрдИ рд╕реНрдерд┐рддрд┐ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░рдирд╛ред
- рдкреБрд╢ рд╕реВрдЪрдирд╛ рджреНрд╡рд╛рд░рд╛ рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рд╕рд╣-рд╕рдВрдкрд╛рджрди рдбреЗрдЯрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реЗрд╡рд╛ рд╕реНрдерд╛рдиреАрдп рд░рд╛рдЬреНрдп рдФрд░ рдмреИрдХрдПрдВрдб рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд░рд╛рдЬреНрдп рдХрд╛ рд╡рд┐рд▓рдп рдХрд░рддреА рд╣реИред
рдбреЗрдореЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ, рд╣рдо рдкрд╣рд▓реЗ рджреЛ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рд╕рдмрд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдиреЗрдВрдЧреЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпреЗ рдкрд░рд┐рджреГрд╢реНрдп рд╕рд░рд▓ рд╣реИрдВ рдФрд░ рд╕реЗрд╡рд╛ рдХреЛ рд╕рд░рд▓ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЬрдЯрд┐рд▓рддрд╛ рд╕реЗ рд╡рд┐рдЪрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд▓реЗрдЦ рдХрд╛ рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИред
рдПрдХ рд╕реЗрд╡рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдХреБрдЫ-Unit.service.ts ред
рдпрд╣ рдХрдВрдЯреЗрдирд░ рдШрдЯрдХ рдФрд░ рд▓реЛрдб рд╕реНрдерд┐рддрд┐ рдореЗрдВ DI рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрд╡рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
route.params .pipe( pluck('id'), filter((id: any) => { return !!id; }), switchMap((id: string) => { return myFormService.get(id); }) ) .subscribe(state => { this.state = state; });
рд▓реЗрдХрд┐рди рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ:
- рдЖрдкрдХреЛ рдмрдирд╛рдИ рдЧрдИ рд╕рджрд╕реНрдпрддрд╛ рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рдореЗрдореЛрд░реА рд▓реАрдХ рд╣реЛ рдЬрд╛рдПрдЧреАред
- рдпрджрд┐ рдЖрдк рдШрдЯрдХ рдХреЛ OnPush рд░рдгрдиреАрддрд┐ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдирд╛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛ред
Async рдкрд╛рдЗрдк рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИред рд╡рд╣ рдСрдмреНрдЬрд░реНрд╡рдмрд▓ рдХреЛ рд╕реАрдзреЗ рд╕реБрдирддрд╛ рд╣реИ рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрдбрд╝рдиреЗ рдкрд░ рдЙрд╕рд╕реЗ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рдПрд╕рд┐рдВрдХреНрд╕ рдкрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рд░ рдмрд╛рд░ рдЬрдм рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓ рдПрдХ рдирдпрд╛ рдорд╛рди рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреЛрдгреАрдп рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИред
Async рдкрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг
рдХреБрдЫ-рдирд┐рдХрд╛рдп ред
Com рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдФрд░ рдШрдЯрдХ рдХреЛрдб рдореЗрдВ, рд╣рдордиреЗ рдХрд╕реНрдЯрдо рдЖрд░рдПрдХреНрд╕рдЬреЗрдПрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдореЗрдВ рджреЛрд╣рд░рд╛рдпрд╛ рддрд░реНрдХ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рдПрдХ рдЦрд╛рд▓реА рд╕реНрдерд┐рддрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЬреЛрдбрд╝рд╛, рджреЛрдиреЛрдВ рд░рд╛рдЬреНрдп рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдорд░реНрдЬ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдзрд╛рд░рд╛ рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ рдФрд░ рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдПрдХ рдлреЙрд░реНрдо рддреИрдпрд╛рд░ рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рд╣рдо рдмрд╛рдж рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗ:
this.state$ = merge( route.params.pipe( switchIfNotEmpty("id", (requestId: string) => requestService.get(requestId) ) ), route.params.pipe( switchIfEmpty("id", () => requestService.getEmptyState()) ) ).pipe( tap(state => { this.form = new SomeEntityFormGroup(state); }) );
рдпрд╣ рд╡рд╣ рд╕рдм рд╣реИ рдЬреЛ рдХрдВрдЯреЗрдирд░ рдШрдЯрдХ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдФрд░ рд╣рдордиреЗ рдкрд┐рдЧреНрдЧреА рдмреИрдВрдХ рдореЗрдВ рдкрд╣рд▓рд╛ рддрд░реАрдХрд╛ рдСрдирдкрд╢ рдШрдЯрдХ - рдПрд╕рд┐рдВрдХреНрд╕ рдкрд╛рдЗрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ред рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред
рд░рд╛рдЬреНрдп рдХреЛ рдСрдирдкрд╢ рдШрдЯрдХреЛрдВ рдХреЗ рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░реЗрдВ
рдЬрдм рдЖрдкрдХреЛ рдПрдХ рдЬрдЯрд┐рд▓ рд╕реНрдерд┐рддрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдо рдЫреЛрдЯреЗ рдШрдЯрдХреЛрдВ рдХрд╛ рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рдмрдирд╛рддреЗ рд╣реИрдВ - рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЬрдЯрд┐рд▓рддрд╛ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВред
рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдШрдЯрдХреЛрдВ рдХреЛ рдбреЗрдЯрд╛ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рд╕рдорд╛рди рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдкрдирд╛ рдЯреБрдХрдбрд╝рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
рдЪреВрдВрдХрд┐ рд╣рдо OnPush рдХреЗ рд░реВрдк рдореЗрдВ рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЖрдЗрдП рдПрдХ рдкрд▓ рдХреЗ рд▓рд┐рдП рдкрдЪреЗрдВ рдФрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИ рдФрд░ Angular OnPush рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ - рдЕрдиреБрднрд╛рдЧ рдХреЗ рдЕрдВрдд рддрдХ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред
рдЖрд╡реЗрджрди рдХреЗ рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди, рдХреЛрдгреАрдп рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдбрд┐рдЯреЗрдХреНрдЯрд░ рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдШрдЯрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рднреА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ "рдпрд╛рдж" рдХрд░рддрд╛ рд╣реИред рд░рди рд╕рдордп рдореЗрдВ, рдЙрддреНрдкрдиреНрди рд╡рд░реНрдЧ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓реВрдк рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣реАрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЪреЗрдХ рдиреЗ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдХрд┐рд╕реА рднреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рддреЛ рдХреЛрдгреАрдп рдШрдЯрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХреЛрдгреАрдп рд╣рдорд╛рд░реЗ рдШрдЯрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рди рдШрдЯрдХреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗрд╡рд▓ рдЯреНрд░рд┐рдЧрд░ рдпрд╛ AJAX рдЕрдиреБрд░реЛрдз рдЬреЛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╡рд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдВрджрд░ рд╣рд░ рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрдкреВрд░реНрдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реИ - рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡рд┐рдВрдбреЛ рд╕реНрдХреНрд░реЙрд▓ рдмрд╛рд░-рдмрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдШрдЯрдХреЛрдВ рдХреЗ рдкреВрд░реЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╕реНрд░реЛрдд рдирд┐рд╣рд┐рдд рд╣реИ - рдШрдЯрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛрдЧрд╛, рдЙрддрдирд╛ рд╣реА рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрдЧрд╛ рдбрд┐рдЯреЗрдХреНрдЯрд░ рдЬрд╛рдВрдЪред рдФрд░ рдЕрдЧрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдШрдЯрдХ рд╣реИрдВ рдФрд░ рдЪреЗрдХ рдЕрдХреНрд╕рд░ рдЪрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдХрд░реЗрдВ?
рдпрджрд┐ рдШрдЯрдХ рдХрд┐рд╕реА рднреА рд╡реИрд╢реНрд╡рд┐рдХ рдкреНрд░рднрд╛рд╡ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рд╡реИрд╕реЗ, рдЗрд╕ рддрд░рд╣ рд╕реЗ рдШрдЯрдХреЛрдВ рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ), рддреЛ рдЗрд╕рдХреА рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдирд┐рдореНрди рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ:
- рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ ( @Input );
- рдШрдЯрдХ рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдПрдБ ( @Output )ред
рд╣рдо рдЕрдм рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛ рдмрд┐рдВрджреБ рд╕реНрдердЧрд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдШрдЯрдХ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗрд╡рд▓ рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред
рдпрджрд┐ рдШрдЯрдХ рдХреЗ рд╕рднреА рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ, рддреЛ рд╣рдо рдШрдЯрдХ рдХреЛ рдСрдирдкрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░, рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдХреЛрдгреАрдп рдЬрд╛рдБрдЪ рдХрд░реЗрдЧрд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдЪреЗрдХ рдХреЗ рдмрд╛рдж рд╕реЗ рдШрдЯрдХ рдХреЗ рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдмрджрд▓ рдЧрдП рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред рдФрд░, рдпрджрд┐ рд╡реЗ рдирд╣реАрдВ рдмрджрд▓реЗ рд╣реИрдВ, рддреЛ рдХреЛрдгреАрдп рдШрдЯрдХ рдФрд░ рдЕрдкрдиреЗ рд╕рднреА рдмрд╛рд▓ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЫреЛрдбрд╝ рджреЗрдЧрд╛ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рд╣рдо OnPush рд░рдгрдиреАрддрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдкрдиреЗ рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдПрдХ рдкреВрд░реА рд╢реНрд░реЗрдгреА рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрдВрдЧреЗред
рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ рд░рд╛рдЬреНрдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд╕реНрддреБрдУрдВ рдХреЛ рднреА рдмрд╛рд▓ рдШрдЯрдХреЛрдВ рдХреЗ рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рд╣рдо рдмрд╛рд▓ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдСрдирдкрд╢ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ рдФрд░ рд╡реЗ рд░рд╛рдЬреНрдп рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдВрдЧреЗред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпреЗ
readonly -info.component рдФрд░
nested-items.component рдШрдЯрдХ рд╣реИрдВрдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ OnPush рдкреНрд░рддрд┐рдорд╛рди рдореЗрдВ рдШрдЯрдХреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдгреАрдп рд╕реЗ рдмрд╛рдд рдХрд░реЗрдВ
рдкреНрд░рд╕реНрддреБрддрд┐ рдХреА рд╕реНрдерд┐рддрд┐ - рдпреЗ рдШрдЯрдХ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ: рд╕рдВрдХреЗрддрдХ рд▓реЛрдб рдХрд░рдирд╛, рддрддреНрд╡реЛрдВ рдХреА рджреГрд╢реНрдпрддрд╛ рдХреЗ рдЭрдВрдбреЗ рдпрд╛ рдПрдХ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкрд╣реБрдВрдЪ, рддреАрди рдлрд╝реАрд▓реНрдб рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдирд╛рдо рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рд╕реЗ рдЪрд┐рдкрдХреЗ рд╣реБрдП, рдЖрджрд┐ред
рд╣рд░ рдмрд╛рд░ рдПрдХ рдШрдЯрдХ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИ, рд╣рдореЗрдВ рдХреЛрдгреАрдп рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд╡рд╣ UI рдкрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХреЗред
рдШрдЯрдХ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕реНрд░реЛрдд рдХреНрдпрд╛ рд╣реИ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдХреЛрдгреАрдп рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред
рдкреНрд░рд╕реНрддреБрддрд┐ рд╕реНрдерд┐рддрд┐, рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ
рдпрд╣ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╡рд┐рдХрд▓реНрдк рд╣реИред рд╣рдо рдкреНрд░рд╕реНрддреБрддрд┐ рд╕реНрдЯреЗрдЯ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рди рд▓реЙрдЬрд┐рдХ рдХреЛ ngOnChanges рд╣реБрдХ рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ @ рдЗрдирдкреБрдЯ-рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдмрджрд▓рдХрд░ рд╕реНрд╡рдпрдВ рд╣реА рдкреНрд░рд╛рд░рдВрдн рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдбреЗрдореЛ рдореЗрдВ, рдпрд╣
readonly-info.component рд╣реИ ред
export class ReadOnlyInfoComponent implements OnChanges { @Input() public state: Backend.SomeEntityState; public traits: ReadonlyInfoTraits; public ngOnChanges(changes: { state: SimpleChange }): void { this.traits = new ReadonlyInfoTraits(changes.state.currentValue); } }
рд╕рдм рдХреБрдЫ рдмреЗрд╣рдж рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдмрд┐рдВрджреБ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдШрдЯрдХ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рд╕реНрдерд┐рддрд┐ рдЬрдЯрд┐рд▓ рд╣реИ, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрджрд┐ рдЗрд╕рдХреЗ рдХреБрдЫ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдЧрдгрдирд╛ рджреВрд╕рд░реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рднреА рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдШрдЯрдХ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ ngOnChanic рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВред рдбреЗрдореЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рдПрдХ рдЙрджрд╛рд╣рд░рдг
ReadonlyInfoComponentTraits рд╡рд░реНрдЧ рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдмрджрд▓рдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдбреЗрдЯрд╛ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдмрдЪрд╛рддреЗ рд╣реИрдВред
рдЙрд╕реА рд╕рдордп, рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ: рд╢рд╛рдпрдж рдШрдЯрдХ рдореЗрдВ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдПрдХ рдХрдард┐рди рд╕реНрдерд┐рддрд┐ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рддрд░реНрдХ рд╣реИред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдлрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдЯрдХ рдХрд╛ рдПрдХ рдкреНрд░рдпрд╛рд╕ рд╣реИ, рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╣реБрдд рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╣реИрдВред
рдШрдЯрдХ рдореВрд▓ рдШрдЯрдирд╛рдПрдБ
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЖрдЙрдЯрдкреБрдЯ рдЗрд╡реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рддреАрд╕рд░рд╛ рддрд░реАрдХрд╛ рднреА рд╣реИред рдХреЛрдгреАрдп рдпрдереЛрдЪрд┐рдд рд░реВрдк рд╕реЗ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рдШрдЯрдХ рдХрд┐рд╕реА рдШрдЯрдирд╛ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХреЗ рд░рд╛рдЬреНрдп рдореЗрдВ рдХреБрдЫ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХреЛрдгреАрдп рд╕рднреА рдШрдЯрдХ рдЖрдЙрдЯрдкреБрдЯ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реБрдирддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рд╣реЛрдиреЗ рдкрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред
рдбреЗрдореЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЙрджрд╛рд╣рд░рдг рдШрдЯрдХ
submit- button.component рд╣реИ , рдЬреЛ рдПрдХ
рдлреЙрд░реНрдорд╡реЗрдЯреЗрдб рдИрд╡реЗрдВрдЯ рдлреЗрдВрдХрддрд╛ рд╣реИред рдХрдВрдЯреЗрдирд░ рдШрдЯрдХ рдЗрд╕ рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рд░реНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЕрдкрдиреЗ рдЗрдЪреНрдЫрд┐рдд рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдИрд╡реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЕрд░реНрдерд╛рдд, рдЙрдиреНрд╣реЗрдВ рдореВрд▓ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдПрдВ, рди рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдЕрдиреНрдпрдерд╛, рдпрд╣ рд╕рдВрднрд╡ рд╣реИ, рдорд╣реАрдиреЛрдВ рдФрд░ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рдж, рдпрд╣ рдпрд╛рдж рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдШрдЯрдирд╛ рдпрд╣рд╛рдВ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреНрдпреЛрдВ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВ, рд╕рдм рдХреБрдЫ рддреЛрдбрд╝ рджреЗрдВред
рд╕реНрдорд╛рд░реНрдЯ рдШрдЯрдХреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди
рдХрднреА-рдХрднреА рдПрдХ рдШрдЯрдХ рдХреА рд╕реНрдерд┐рддрд┐ рдЬрдЯрд┐рд▓ рддрд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ: рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░реВрдк рд╕реЗ рд╕реЗрд╡рд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛, рдПрдХ рд╡реЗрдм рд╕реЙрдХреЗрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛, рд╕реЗрдЯрдЗрдВрдЯрд░рд╡рд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓ рд░рд╣реЗ рдЪреЗрдХ, рд▓реЗрдХрд┐рди рдЖрдк рдХрднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХреНрдпрд╛ рд╣реИред рдРрд╕реЗ рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрдорд╛рд░реНрдЯ рдШрдЯрдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХрдо рд╕реНрдорд╛рд░реНрдЯ рдШрдЯрдХ рдЬреЛ рдХрдВрдЯреЗрдирд░ рдШрдЯрдХ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╣ рдЬреАрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдЖрдк рдЙрдирдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдШрдЯрдХ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдПрдХ рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдКрдкрд░ рдмрддрд╛рдП рдЧрдП
async рдкрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рд╕реНрд░реЛрдд рдПрдХ рд╕реЗрд╡рд╛ рдХреЙрд▓ рдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рд░реВрдк рд╕реНрдерд┐рддрд┐ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЕрд╡рд▓реЛрдХрди рд╣реИред рдпрджрд┐ рд░рд╛рдЬреНрдп рдХреБрдЫ рдФрд░ рдЬрдЯрд┐рд▓ рд╕реЗ рдмрдирддрд╛ рд╣реИ, рддреЛ рдЖрдк
RxJS рдХреА рд╕рдВрд░рдЪрдирд╛ рд╕реЗ
Promise ,
websocket ,
рдЯрд╛рдЗрдорд░ ,
рдЕрдВрддрд░рд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛
Subject рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдЖрдк рдПрдХ рд╕реНрдЯреНрд░реАрдо рддреИрдпрд╛рд░ рдХрд░реЗрдВред
рдпрджрд┐ рдХреЛрдИ рднреА рд╡рд┐рдХрд▓реНрдк рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ
рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдкрд╣рд▓реЗ рд╕реЗ рдЕрдзреНрдпрдпрди рдХрд┐рдП рдЧрдП рддреАрди рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдмреБрд▓реЗрдЯрдкреНрд░реВрдл рд╡рд┐рдХрд▓реНрдк рд╣реИ -
ChangeDetectorRef рдХрд╛ рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧ
рдХрд░рдирд╛ ред рд╣рдо рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдФрд░ рдирд┐рд╢рд╛рди рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рд╡реНрдпрд╛рдкрдХ рдкреНрд░рд▓реЗрдЦрди рд╕рднреА рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕рдХреЗ рдХрд╛рдо рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
ChangeDetectorRef рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рдорд╛рдорд▓реЛрдВ рддрдХ рд╕реАрдорд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрднреА рднреА рдЖрдВрддрд░рд┐рдХ рдХреЛрдгреАрдп рд░рд╕реЛрдИ рд╣реИред
рд╣рд░ рд╕рдордп рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдХреБрдЫ рд╣реА рдорд╛рдорд▓реЗ рдорд┐рд▓рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ:
- рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд╕рд╛рде рдореИрдиреБрдЕрд▓ рдХрд╛рдо - рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдШрдЯрдХреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдмрд╕ рдорд╛рдорд▓рд╛ рд╣реИ "рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ"ред
- рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдЬрдЯрд┐рд▓ рд╕рдВрдмрдВрдз - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдкрдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдПрдХ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдЙрдЪреНрдЪрддрд░ рдШрдЯрдХ рдпрд╛ рдШрдЯрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреА рдХрд┐рд╕реА рдЕрдиреНрдп рд╢рд╛рдЦрд╛ рдореЗрдВ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬрдЯрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИ? рддреЛ рдпрд╣ рд╣реИред рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдХреЛ рдХреЗрд╡рд▓ рд░рд┐рдлреИрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рди рдХреЗрд╡рд▓ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд╕рд╛рде рджрд░реНрдж рд▓рд╛рдПрдЧрд╛ред
- рдЦреБрдж рдХреЛ рдХреЛрдгреАрдп рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХрд╕реНрдЯрдо рдХрдВрдЯреНрд░реЛрд▓рд╡реИрд▓рд┐рдпрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рдЖрдк рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдг рдореВрд▓реНрдп рдХреЛ рдПрдВрдЧреБрд▓рд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рджреНрд╡рд╛рд░рд╛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЪрдХреНрд░ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдбреЗрдореЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдзрд╛рд░ рд╡рд░реНрдЧ
OnPushControlValueAccessor рд╣реИ , рдЬреЛ рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рд░рд┐рд╕ рд╣реИ - рдХрд╕реНрдЯрдо
рд░реЗрдбрд┐рдпреЛ-рдмрдЯрди.рдХреЙрдо ред
рдЕрдм рд╣рдордиреЗ рд╕рднреА рдЪрд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рдСрдирдкрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЪрд╛рд░ рддрд░реАрдХреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рд╣реИ: рдХрдВрдЯреЗрдирд░, рд╕реНрдорд╛рд░реНрдЯ, рдкреНрд░рд╕реНрддреБрддрд┐ред рд╣рдо рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ - рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рд░реВрдкреЛрдВ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рд╕рдВрдкрд╛рджрдиред
рд╕рдордЭрд╛рдпрд╛ рдбреЗрдЯрд╛ рд╕рдВрдкрд╛рджрди
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд░реВрдкреЛрдВ рдореЗрдВ рдХрдИ рд╕реАрдорд╛рдПрдБ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рдХрд┐ рдХреЛрдгреАрдп рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рд╣реБрдИ рдереАред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╡реЗ рд░рд╛рдЬреНрдп рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рддрд░реАрдХреЗ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рд░реВрдк рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд┐рдиреА-рд╕реНрдЯреЛрд░ рд╣реИ рдЬреЛ рд░рд╛рдЬреНрдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рдЕрдВрдЬрд╛рдо рджреЗрддрд╛ рд╣реИ: рдбреЗрдЯрд╛ рдФрд░ рд╕реНрдерд┐рддрд┐ рдЕрдХреНрд╖рдо / рд╡реИрдз / рд▓рдВрдмрд┐рддред
рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХрд╛ рдпрдерд╛рд╕рдВрднрд╡ рд╕рдорд░реНрдерди рдХрд░реЗрдВ рдФрд░ рдкреНрд░рд╕реНрддреБрддрд┐-рддрд░реНрдХ рдФрд░ рд░реВрдк рдХреЗ рддрд░реНрдХ рдХреЛ рдорд┐рд▓рд╛рдиреЗ рд╕реЗ рдмрдЪреЗрдВред
рдбреЗрдореЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ, рдЖрдк
рд╡реНрдпрдХреНрддрд┐рдЧрдд рдлреЙрд░реНрдо рдХреНрд▓рд╛рд╕реЗрд╕ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЙрдирдХреЗ рдХрд╛рдо рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрдЯ рдХрд░рддрд╛ рд╣реИ: рд╕рддреНрдпрд╛рдкрди, рдмрд╛рд▓ рдлреЙрд░реНрдордЧреНрд░реБрдкреНрд╕ рдмрдирд╛рдирд╛, рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреА рдЕрдХреНрд╖рдо рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ред
рд╣рдо рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рд╕рдордп рдХрдВрдЯреЗрдирд░ рдШрдЯрдХ рдореЗрдВ рд░реВрдЯ рдлреЙрд░реНрдо рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд░рд╛рдЬреНрдп рд░рд┐рдмреВрдЯ рдХреЗ рд╕рд╛рде, рдлреЙрд░реНрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкрд┐рдЫрд▓реЗ рд▓реЛрдб рдХреА рдЧрдИ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрдЪреЗ рдлреЙрд░реНрдо рд▓реЙрдЬрд┐рдХ рдореЗрдВ рдХреЛрдИ рд╕рдВрдЪрд┐рдд рдкреНрд░рднрд╛рд╡ рди рд╣реЛред
рдкреНрд░рдкрддреНрд░ рдХреЗ рдЕрдВрджрд░, рд╣рдо рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЬреЛ рдбреЗрдЯрд╛ рдЙрдирд╕реЗ рдЖрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рд░рд╛рдЬреНрдп рдЕрдиреБрдмрдВрдз рд╕реЗ рдореЙрдбрд▓ рдЕрдиреБрдмрдВрдз рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рд░реВрдкреЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрд╕рдВрднрд╡ рд╣реЛ, рдореЙрдбрд▓реЛрдВ рдХреЗ рдЕрдиреБрдмрдВрдз рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдирддреАрдЬрддрди, рдлреЙрд░реНрдо рдХреА рдореВрд▓реНрдп рд╕рдВрдкрддреНрддрд┐ рд╣рдореЗрдВ рдмреИрдХрдПрдВрдб рдкрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдореЙрдбрд▓ рджреЗрддреА рд╣реИред
рдпрджрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд░рд╛рдЬреНрдп рдпрд╛ рдореЙрдбрд▓ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдареАрдХ рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рдПрдХ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреА, рдЬрд┐рд╕рдореЗрдВ рд╣рдореЗрдВ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝рдиреЗ / рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рд░рд╛рдЬреНрдп рдФрд░ рдореЙрдбрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рд╕рдВрд░рдЪрдирд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдПрдХ рдореЗрдВ рдЕрд░реНрдерд╣реАрди рдореИрдкрд┐рдВрдЧ рдХреЛ рджреВрд╕рд░реЗ рдореЗрдВ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддреА рд╣реИред
рдХреБрд▓, рдкреНрд░рдкрддреНрд░ рддрд░реНрдХ рдХреЛ рдШрдЯрдХреЛрдВ рдореЗрдВ рдкреНрд░рд╕реНрддреБрддрд┐ рддрд░реНрдХ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдмрдврд╝рд╛рдП рдмрд┐рдирд╛ "рд╕реНрд╡рдпрдВ рдХреЗ рджреНрд╡рд╛рд░рд╛" рд░рд╣рддрд╛ рд╣реИред
рдпрд╣ рд▓рдЧрднрдЧ рд╕рднреА рд╣реИред рдЬрдм рд╣рдо рдЖрд╡реЗрджрди рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рд╕реЗ рдлреЙрд░реНрдо рд▓реЙрдЬрд┐рдХ рдХреЛ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рддреЛ рдмреЙрд░реНрдбрд░ рдХреЗрд╕ рдмрдЪреЗ рд╣реИрдВ:
- рдкреНрд░рд╕реНрддреБрддрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рдгреА рд░реВрдк рдореЗрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдХреА рджреГрд╢реНрдпрддрд╛ред рд╣рдо рдШрдЯрдирд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдХрд░ рдШрдЯрдХ рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдкрд╣рд▓реЗ рдЪрд░реНрдЪрд╛ рдХрд┐рдП рдЧрдП рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд▓рдХреНрд╖рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдмреИрдХрдПрдВрдб рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдШрдЯрдХ рдореЗрдВ AsyncValidatorFn рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕реЗрд╡рд╛ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдлреЙрд░реНрдо рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдкрд╛рд╕ рднреЗрдЬрддреЗ рд╣реИрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рднреА "рд╕реАрдорд╛ рд░реЗрдЦрд╛" рддрд░реНрдХ рд╕рдмрд╕реЗ рдкреНрд░рдореБрдЦ рд╕реНрдерд╛рди рдкрд░ рд╣реИ - рдШрдЯрдХреЛрдВ рдореЗрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЖрдЗрдП рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдЕрдзреНрдпрдпрди рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рд╛ рдФрд░ рдХреНрдпрд╛ рдЕрдиреНрдп рдмрд┐рдВрджреБ рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, OnPush рд░рдгрдиреАрддрд┐ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╣рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рд╣рдо рдЦреЗрд▓ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЛ рдХреЛрдгреАрдп рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЙрд╕реЗ рдирд╣реАрдВред
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЗ рджреЛ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рд╕реБрдЦрдж рдПрд╣рд╕рд╛рд╕ рдорд┐рд▓рддрд╛ рд╣реИред рдЕрдм рдХреЛрдИ рдЬрд╛рджреВ рдирд╣реАрдВ рд╣реИ рдХрд┐ "рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ"ред рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рдордп рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЕрдВрддрд░реНрдЬреНрдЮрд╛рди рдзреАрд░реЗ-рдзреАрд░реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдХреЛрдб рдХреЛ рдЦреЛрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдкрд╛рдпрд╛ рдмрдЧ рдХреЗ рдХрд╛рд░рдг рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рджреВрд╕рд░реЗ, рдЕрдм рд╣рдореЗрдВ рдЖрд╡реЗрджрди рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рджреЗрдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рд╣рдореЗрд╢рд╛ рд╕рдмрд╕реЗ "рдкреНрд░рддреНрдпрдХреНрд╖" рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рдиред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рд╢реВрдиреНрдп рддрдХ рд▓рд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ, рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдЖрд╡реЗрджрди рдмрдврд╝рддрд╛ рд╣реИ, рдпрд╣ рд╡рд┐рд╢рд╛рд▓ рдЬрдЯрд┐рд▓рддрд╛ рдХрд╛ рдПрдХ рд░рд╛рдХреНрд╖рд╕ рдмрди рдЬрд╛рддрд╛ рд╣реИ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдЗрд╕ рдЬрдЯрд┐рд▓рддрд╛ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдЦреЛ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдЕрдм рд░рд╣рд╕реНрдпрдордп рд╕рдВрд╕реНрдХрд╛рд░реЛрдВ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред
рдирд┐рдпрдВрддреНрд░рд┐рдд рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ "рдЬрд╛рджреВ" рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдПрдХ рдкреВрд░реЗ рд╡рд░реНрдЧ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдХрдо рдХрд░рддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрдХреНрд░реАрдп рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдпрд╛ рд╕рдВрдЪрд┐рдд рджреБрд╖реНрдкреНрд░рднрд╛рд╡реЛрдВ рд╕реЗред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯ рд░рд╣реЗ рд╣реИрдВ, рдЬрдм рдЖрд╡реЗрджрди рдХреЗрд╡рд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЖрд╡реЗрджрди рдХреЛ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╣рдордиреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдЕрдЪреНрдЫреЗ рдкреНрд░рднрд╛рд╡реЛрдВ рдХрд╛ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ред рдЕрдм, рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░, рдЬреИрд╕реЗ рдХрд┐
profiler.timeChangeDetection , рд╣рдо рдХрд┐рд╕реА рднреА рд╕рдордп рдпрд╣ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рдЕрднреА рднреА рдареАрдХ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдм
рдирд╛рдЬрд╝реЛрди рдХреЛ
рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рди рдХрд░рдирд╛ рдПрдХ рдкрд╛рдк рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдкреВрд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд▓реЛрдб рдирд╣реАрдВ рдХрд░рдиреЗ рджреЗрдЧрд╛ред рджреВрд╕рд░реЗ, рдпрд╣ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рд╕реЗ рдЙрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЬрд╛рджреВ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛ред
рдпрд╣реАрдВ рдкрд░ рд╣рдо рдЕрдкрдиреА рдХрд╣рд╛рдиреА рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
рд╣рдо рд╕рдВрдкрд░реНрдХ рдореЗрдВ рд░рд╣реЗрдВрдЧреЗ!