рдХреЛрдгреАрдп 9 рдФрд░ рдЖрдЗрд╡реА: рдЖрд▓рд╕реА рдШрдЯрдХ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ

рдХреЛрдгреАрдп рдореЗрдВ рдЖрд▓рд╕реА рдШрдЯрдХ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ? рд╢рд╛рдпрдж рд╣рдо рдХреЛрдгреАрдп рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдирд╣реАрдВ, рд╣рдо рдШрдЯрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХреЛрдгреАрдп рдХрд╛ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреЗрд╡рд▓ рдЖрд▓рд╕реА рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдЗрд╡реА рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдирдП рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред



рдЖрд▓рд╕реА рд▓реЛрдб рд╣рдо рдЕрдм рддрдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреЗ рдереЗ: рдорд╛рд░реНрдЧреЛрдВ


рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдПрдХ рдорд╣рд╛рди рддрдВрддреНрд░ рд╣реИред рдХреЛрдгреАрдп рдореЗрдВ, рдЖрдк рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рд░реНрдЧреЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдХреЗ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдгреАрдп рджрд╕реНрддрд╛рд╡реЗрдЬ рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

const routes: Routes = [     { path: 'customer-list',       loadChildren: () => import('./customers/customers.module').then(m => m.CustomersModule) }     ]; 

рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, customers.module рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдЯреБрдХрдбрд╝рд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ рддрдм рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ customer-list рдорд╛рд░реНрдЧ рдХреЗ рд╕рд╛рде рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдореБрдЦреНрдп рдмрдВрдбрд▓ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ рдЖрд╡реЗрджрди рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред

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

рдЕрдм рддрдХ, рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛ рдкрд╛рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдЗрд╡реА рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде рдпрд╣ рд╕рдм рдмрджрд▓ рдЧрдпрд╛ред

рдЖрдЗрд╡реА рдФрд░ "рдЗрд▓рд╛рдХреЗ" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛


рдореЙрдбреНрдпреВрд▓ рд╣рд░ рдХреЛрдгреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреА рдореВрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛ рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдирд┐рд░реНрдорд╛рдг рдЦрдВрдб рд╣реИрдВред рдореЙрдбреНрдпреВрд▓ рдШрдЯрдХ, рдирд┐рд░реНрджреЗрд╢, рдкрд╛рдЗрдк, рд╕реЗрд╡рд╛рдУрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВред

рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдЖрдзреБрдирд┐рдХ рдХреЛрдгреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред рдЗрд╕рдХрд╛ рдПрдХ рдХрд╛рд░рдг рдпрд╣ рддрдереНрдп рд╣реИ рдХрд┐ ViewEngine рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

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

рдЖрдЗрд╡реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрддреНрдкрдиреНрди es2015 рдмрдВрдбрд▓ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдХреЗ рдЗрд╕реЗ рд╕рдордЭрд╛рддреЗ рд╣реИрдВред


Es2015- рдмрдВрдбрд▓ рдЖрдЗрд╡реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрддреНрдкрдиреНрди

Component code рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ Ivy рдкреНрд░рдгрд╛рд▓реА рдиреЗ рдШрдЯрдХ рдХреЛрдб рдХреЛ рд╕рд╣реЗрдЬ рд▓рд┐рдпрд╛ рд╣реИред рдпрд╣рд╛рдВ рдХреБрдЫ рдЦрд╛рд╕ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдЗрд╡реА рдХреЛрдб рдореЗрдВ рдХреБрдЫ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХрд╛ рдкрд╣рд▓рд╛ рдЯреБрдХрдбрд╝рд╛ рдПрдХ Component factory рд░реВрдк рдореЗрдВ рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХрд╛рд░рдЦрд╛рдиреЗ рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдШрдЯрдХ рдХреЛ рдХреИрд╕реЗ рддрддреНрдХрд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПред Component metadata рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рдЖрдЗрд╡реА рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд░рдЦрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ type рдФрд░ selectors , рдЕрд░реНрдерд╛рдд, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдШрдЯрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЖрдЗрд╡реА рдпрд╣рд╛рдВ template рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдпрд╣ Compiled version of your template рдЕрдиреБрднрд╛рдЧ рдХреЗ Compiled version of your template рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдЗрдП рд╣рдо рдЗрд╕ рджрд┐рд▓рдЪрд╕реНрдк рддрдереНрдп рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рджреЗрдВред

template рдлрд╝рдВрдХреНрд╢рди рд╣рдорд╛рд░реЗ HTML рдХреЛрдб рдХрд╛ рд╕рдВрдХрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИред рд╡рд╣ рдбреЛрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЗрд╡реА рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЕрд▓рдЧ рд╣реИ рдХрд┐ ViewEngine рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

ViewEngine рд╕рд┐рд╕реНрдЯрдо рдХреЛрдб рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреЛрдгреАрдп рдХреЛрдб рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдХрд░реЗрдЧрд╛ред

рдФрд░ рдЖрдЗрд╡реА рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдЬреЛ рдШрдЯрдХ рдХреЛрдгреАрдп рдХрдорд╛рдВрдб рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рд╕рдм рдХреБрдЫ рдХреЗ рдкреНрд░рднрд╛рд░реА рд╣реИред рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЯреНрд░реА-рд╢реЗрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдХреЛрдгреАрдп рдЖрдзрд╛рд░ рдХреЛрдб рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЖрд▓рд╕реА рдШрдЯрдХ рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрджрд╛рд╣рд░рдг


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

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢рд╣рд░ рдХреА рдПрдХ рдЫрд╡рд┐ рдФрд░ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдЖрдкрдХреЛ рдЗрд╕ рд╢рд╣рд░ рдХрд╛ рдирд╛рдо рдЪреБрдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдмрдЯрди рддреБрд░рдВрдд рдмрджрд▓ рдЬрд╛рдПрдЧрд╛, рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрддреНрддрд░ рд╕рд╣реА рдерд╛ рдпрд╛ рдЧрд▓рддред рдпрджрд┐ рдмрдЯрди рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рд╣рд░реЗ рд░рдВрдЧ рдХреА рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рдЙрддреНрддрд░ рд╕рд╣реА рдерд╛ред рдпрджрд┐ рдкреГрд╖реНрдарднреВрдорд┐ рд▓рд╛рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрддреНрддрд░ рдЧрд▓рдд рдерд╛ред

рд╡рд░реНрддрдорд╛рди рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред


рдХреНрд╡рд┐рдЬрд╝ рдбреЗрдореЛ

рдкреНрд░реЛрдЧреНрд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ QuizCardComponent рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ QuizCardComponent рд╣реИрдВред

рдЖрд▓рд╕реА рдШрдЯрдХ рд▓реЛрдбрд┐рдВрдЧ рдЕрд╡рдзрд╛рд░рдгрд╛


рдЖрдЗрдП рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ QuizCardComponent рдШрдЯрдХ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВред


QuizCardComponent рдШрдЯрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдХреНрд╡рд┐рдЬрд╝ Start quiz рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдХреНрд╡рд┐рдЬрд╝ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдШрдЯрдХ рдХреЗ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдШрдЯрдХ рд╣рдорд╛рд░реЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕реЗ рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред

рд╣рдо рдПрдХ "рдЖрд▓рд╕реА" рдШрдЯрдХ рдХреА рдкреНрд░рд╢реНрдирд╛рдВрдХрд┐рдд рдШрдЯрдирд╛рдУрдВ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реИрдВ рдЙрд╕реА рддрд░рд╣ рд╣рдо рдПрдХ рдирд┐рдпрдорд┐рдд рдШрдЯрдХ рдХреА рдШрдЯрдирд╛рдУрдВ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░реЗрдВрдЧреЗред рдЕрд░реНрдерд╛рддреН, рдШрдЯрдирд╛ рдХреА рдШрдЯрдирд╛ рдХреЗ рдмрд╛рдж, рд╣рдо рд╕реНрдХреНрд░реАрди рдкрд░ рдЕрдЧрд▓реЗ рдХрд╛рд░реНрдб рдХреЛ рдкреНрд░рд╢реНрди рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг


рдХрд┐рд╕реА рдШрдЯрдХ рдХреЗ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо QuizCardComponent рд╕рд░рд▓реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдкреНрд░рд╢реНрди рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдлрд┐рд░ рд╣рдо рдЗрд╕рдореЗрдВ рдПрдВрдЧреБрд▓рд░ рдордЯреЗрд░рд┐рдпрд▓ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдШрдЯрдХ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдо рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдШрдЯрдирд╛рдУрдВ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВрдЧреЗред

рдЖрдЗрдП QuizCardComponent рдШрдЯрдХ рдХреЗ рд╕рд░рд▓реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдирд┐рдореНрди рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИ:

 <h1>Here's the question</h1> <ul>    <li><b>Image: </b> {{ question.image }}</li>    <li><b>Possible selections: </b> {{ question.possibleSelections.toString() }}</li>    <li><b>Correct answer: </b> {{ question.correctAnswer }}</li> </ul> 

рдкрд╣рд▓рд╛ рдХрджрдо рдПрдХ рдХрдВрдЯреЗрдирд░ рддрддреНрд╡ рдмрдирд╛рдирд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдпрд╛ рддреЛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддрддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ <div> , рдпрд╛ - ng-container рд╕рд╣рд╛рд░рд╛ рд▓реЗрдВ, рдЬреЛ рд╣рдореЗрдВ HTML- рдХреЛрдб рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрддрд░ рдХреЗ рдмрд┐рдирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдХрдВрдЯреЗрдирд░ рддрддреНрд╡ рдХреА рдШреЛрд╖рдгрд╛ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо "рдЖрд▓рд╕реА" рдШрдЯрдХ рдбрд╛рд▓рддреЗ рд╣реИрдВ:

 <mat-toolbar color="primary">  <span>City quiz</span> </mat-toolbar> <button *ngIf="!quizStarted"        mat-raised-button color="primary"        class="start-quiz-button"        (click)="startQuiz()">Start quiz</button> <ng-container #quizContainer class="quiz-card-container"></ng-container> 

рдШрдЯрдХ рдореЗрдВ рдЖрдкрдХреЛ рдХрдВрдЯреЗрдирд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо @ViewChild рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдореЗрдВ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо ViewContainerRef рдкрдврд╝рдирд╛ рдЪрд╛рд╣рддреЗ ViewContainerRef ред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреЛрдгреАрдп 9 рдореЗрдВ, @ViewChild рдПрдиреЛрдЯреЗрд╢рди рдореЗрдВ static рд╕рдВрдкрддреНрддрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ false рд╕реЗрдЯ рд╣реИ:

 @ViewChild('quizContainer', {read: ViewContainerRef}) quizContainer: ViewContainerRef; 

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

ComponentFactoryResolver рдирд┐рдХрд╛рдп рдПрдХ рд╕рд░рд▓ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╣реИ рдЬреЛ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди ComponentFactory рдХрдХреНрд╖рд╛рдПрдВ рдЬреЛ рдШрдЯрдХреЛрдВ рдХреЛ рддреНрд╡рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ:

 constructor(private quizservice: QuizService,            private cfr: ComponentFactoryResolver,            private injector: Injector) { } 

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╣ рд╕рдм рдХреБрдЫ рд╣реИ рдЬреЛ рд▓рдХреНрд╖реНрдп рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред startQuiz рдкрджреНрдзрддрд┐ рдХреА рд╕рд╛рдордЧреНрд░реА рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдШрдЯрдХ рдХреЗ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

 const {QuizCardComponent} = await import('./quiz-card/quiz-card.component'); const quizCardFactory = this.cfr.resolveComponentFactory(QuizCardComponent); const {instance} = this.quizContainer.createComponent(quizCardFactory, null, this.injector); instance.question = this.quizservice.getNextQuestion(); 

рд╣рдо QuizCardComponent рдХреА рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП import ECMAScript рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдЖрдпрд╛рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдПрдХ рд╡рд╛рджрд╛ рд▓реМрдЯрд╛рддреА рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рддреЛ async/await рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ .then рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ .then ред рд╡рд╛рджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдШрдЯрдХ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

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

ComponentFactory рдХрд╛рд░рдЦрд╛рдирд╛ рд╣рдореЗрдВ ComponentFactory рд░реАрдл рджреЗрддрд╛ рд╣реИред рд╣рдо рдХрдВрдЯреЗрдирд░ рдХреЗ createComponent рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП createComponent рдФрд░ Injector рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред

createComponent рд╡рд┐рдзрд┐ ComponentRef рдЬрд╣рд╛рдБ рд╕рдореНтАНрдорд┐рд▓рд┐рдд рд╣реИ, рдШрдЯрдХ ComponentRef рджреЗрддрд╛ рд╣реИред рд╣рдо рдШрдЯрдХ @Input рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП instance рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ @Input ред

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

рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рдШрдЯрдХ рдХреЗ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рдЖрд▓рд╕реА рдШрдЯрдХ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ

Start quiz рдмрдЯрди рджрдмрд╛рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдШрдЯрдХ рдХрд╛ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдХрд╛ Network рдЯреИрдм рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк quiz-card-quiz-card-component.js рдлрд╝рд╛рдЗрд▓ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдП рдЧрдП рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдШрдЯрдХ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдкреНрд░рд╢реНрди рдХрд╛рд░реНрдб рджреЗрдЦрддрд╛ рд╣реИред

рдШрдЯрдХ рд╡рд┐рд╕реНрддрд╛рд░


рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо QuizCardComponent рдШрдЯрдХ рд▓реЛрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдЕрднреА рддрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдирд╣реАрдВ рд╣реИред

рдЖрдЗрдП рдЗрд╕реЗ рдХреЛрдгреАрдп рд╕рд╛рдордЧреНрд░реА рдХреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдШрдЯрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВ:

 <mat-card class="quiz-card">  <mat-card-header>    <div mat-card-avatar class="quiz-header-image"></div>    <mat-card-title>Which city is this?</mat-card-title>    <mat-card-subtitle>Click on the correct answer below</mat-card-subtitle>  </mat-card-header>  <img class="image" mat-card-image [src]="'assets/' + question.image" alt="Photo of a Shiba Inu">  <mat-card-actions class="answer-section">    <button [disabled]="answeredCorrectly !== undefined" *ngFor="let selection of question.possibleSelections"            mat-stroked-button color="primary"            [ngClass]="{              'correct': answeredCorrectly && selection === question.correctAnswer,              'wrong': answeredCorrectly === false && selection === question.correctAnswer             }"            (click)="answer(selection)">      {{selection}}    </button>  </mat-card-actions> </mat-card> 

рд╣рдордиреЗ рдШрдЯрдХ рдореЗрдВ рдХреБрдЫ рд╕реБрдВрджрд░ рд╕рд╛рдордЧреНрд░реА рдШрдЯрдХреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рд╣реИред рд╕рдВрдмрдВрдзрд┐рдд рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдЙрдиреНрд╣реЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ AppModule рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпреЗ рдореЙрдбреНрдпреВрд▓ "рд▓рд╛рд▓рдЪреА" рдореЛрдб рдореЗрдВ рд▓реЛрдб рд╣реЛрдВрдЧреЗред рдФрд░ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЕрд╕реЗрдВрдмрд▓реА рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧреА, рдирд┐рдореНрди рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде:

 ERROR in src/app/quiz-card/quiz-card.component.html:9:1 - error TS-998001: 'mat-card' is not a known element: 1. If 'mat-card' is an Angular component, then verify that it is part of this module. 2. If 'mat-card' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. 

рдХреНрдпрд╛ рдХрд░реЗрдВ? рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдордЭ рдЪреБрдХреЗ рд╣реИрдВ, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рд▓ рд╣реИред рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВрдЧреЗред рд╣рдо QuizCardComponent ( quizcard.component.ts рдлрд╝рд╛рдЗрд▓ рдореЗрдВ) рдХреЗ рд╕рдорд╛рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рдореЙрдбреНрдпреВрд▓ quizcard.component.ts :

 @NgModule({  declarations: [QuizCardComponent],  imports: [CommonModule, MatCardModule, MatButtonModule] }) class QuizCardModule { } 

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреЛрдИ export рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рд╣реИред

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

рд╣рдо рдирдП рдореЙрдбреНрдпреВрд▓ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд▓рд╛рд▓рдЪреА рдореЛрдб рдореЗрдВ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдЗрд╕реЗ рдЖрдпрд╛рдд рди рдХрд░ рд╕рдХреЗрдВред

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдЬрдм рдЖрдк Start quiz рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХреИрд╕рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред


рд╕рдВрд╢реЛрдзрд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рдЕрджреНрднреБрдд! QuizCardComponent рдШрдЯрдХ QuizCardComponent рдЖрд▓рд╕реА рдореЛрдб рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ ViewContainer рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рднрд░реА рд╣реБрдИ рд╣реИрдВред

рд╣рдо рд╕рдВрдмрдВрдзрд┐рдд npm рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП webpack-bundle-analyze рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдВрдбрд▓ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдЖрдкрдХреЛ рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╡реЗрдмрдкреИрдХ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдореА рдпреЛрдЬрдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред


рдЖрд╡реЗрджрди рдмрдВрдбрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рдЖрд╡реЗрджрди рдХреЗ рдореБрдЦреНрдп рдмрдВрдбрд▓ рдХрд╛ рдЖрдХрд╛рд░ рд▓рдЧрднрдЧ 260 Kb рд╣реИред рдЕрдЧрд░ рд╣рдордиреЗ рдЗрд╕рдХреЗ рд╕рд╛рде QuizCardComponent рдШрдЯрдХ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХрд╛ рдЖрдХрд╛рд░ рд▓рдЧрднрдЧ 270 Kb рд╣реЛрдЧрд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╣рдо рдореБрдЦреНрдп рдмрдВрдбрд▓ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ 10 Kb рддрдХ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ, рдХреЗрд╡рд▓ рдПрдХ рдШрдЯрдХ рдХреЛ рдЖрд▓рд╕реА рдореЛрдб рдореЗрдВ рд▓реЛрдб рдХрд░ рд░рд╣реЗ рдереЗред рдЕрдЪреНрдЫрд╛ рдкрд░рд┐рдгрд╛рдо!

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

рд╣рд╛рд▓рд╛рдВрдХрд┐ QuizCardComponent MatButtonModule рдФрд░ QuizCardComponent рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ MatCardModule рддреИрдпрд╛рд░ рдХреЛрдб MatCardModule ред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо MatButtonModule рднреА MatButtonModule рдЙрдкрдпреЛрдЧ MatButtonModule рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ, Start quiz рдмрдЯрди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдирддреАрдЬрддрди, рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рдмрдВрдбрд▓ рдХреЗ рдПрдХ рдФрд░ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИред

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

рдмрдЯрди, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рд╕рд╣реА рдпрд╛ рдЧрд▓рдд рдЙрддреНрддрд░ рд╣реИ, рджрдмрд╛рдиреЗ рдкрд░ рд╣рд░рд╛ рдпрд╛ рд▓рд╛рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ? рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВред рдФрд░ рд╣рдореЗрдВ рдпрд╣ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдХ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рдмрд╛рдж, рджреВрд╕рд░реЗ рдкреНрд░рд╢реНрди рдХрд╛ рдПрдХ рдХрд╛рд░реНрдб рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВред

рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ


рдЬрдм рдЖрдк рдЖрд▓рд╕реА рдореЛрдб рдореЗрдВ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдШрдЯрдХреЛрдВ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЬрд╡рд╛рдм рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рдЬрдм рдЖрдк рдЙрддреНрддрд░ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХ рдирдпрд╛ рдкреНрд░рд╢реНрди рдХрд╛рд░реНрдб рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ QuizCardComponent рдШрдЯрдХ QuizCardComponent рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк EventEmitter рд╡рд░реНрдЧ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ EventEmitter , рддреЛ рдЖрдк рдпрд╣ EventEmitter рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ Subject рд╡рдВрд╢рдЬ рд╣реИ:

 export declare class EventEmitter<T extends any> extends Subject<T> 

рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ EventEmitter рдореЗрдВ рдПрдХ subscribe рд╡рд┐рдзрд┐ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ:

 instance.questionAnswered.pipe(    takeUntil(instance.destroy$) ).subscribe(() => this.showNewQuestion()); 

рдпрд╣рд╛рдБ рд╣рдо questionAnswered рдзрд╛рд░рд╛ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ showNextQuestion рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ lazyLoadQuizCard рддрд░реНрдХ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд lazyLoadQuizCard рд╣реИ:

 async showNewQuestion() {  this.lazyLoadQuizCard(); } 

рдШрдЯрдХ рдХреЗ рдирд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╕рджрд╕реНрдпрддрд╛ рдХреЛ рдЦрд╛рд▓реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП takeUntil(instance.destroy$) . takeUntil(instance.destroy$) рдирд┐рд░реНрдорд╛рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрджрд┐ ngOnDestroy рдШрдЯрдХ рдЬреАрд╡рди рдЪрдХреНрд░ рдХрд╛ ngOnDestroy рд╣реБрдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ destroy$ рдХрд░реЗрдВ next рдФрд░ complete рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЪреВрдВрдХрд┐ рдШрдЯрдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓реЛрдб рд╣реИ, рд╕рд┐рд╕реНрдЯрдо рдЕрддрд┐рд░рд┐рдХреНрдд HTTP рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╣рдо рдХреЛрдб рдЯреБрдХрдбрд╝рд╛ рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реИ, рдПрдХ рдирдпрд╛ рдШрдЯрдХ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдбрд╛рд▓реЗрдВред

рдШрдЯрдХ рдЬреАрд╡рди рдЪрдХреНрд░ рд╣реБрдХ


рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ QuizCardComponent рдШрдЯрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд▓рдЧрднрдЧ рд╕рднреА рдШрдЯрдХ рдЬреАрд╡рди рдЪрдХреНрд░ рд╣реБрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд╣рд▓рд╛рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдПрдХ рд╣реБрдХ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рдЖрдк рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛


рдШрдЯрдХ рдЬреАрд╡рди рдЪрдХреНрд░ рд╣реБрдХ

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

ngOnChanges рдЙрджрд╛рд╣рд░рдг рдХреЗ ngOnChanges рд╣реБрдХ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрд╡рдпрдВ рдПрдХ SimpleChange рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 (instance as any).ngOnChanges({    question: new SimpleChange(null, instance.question, true) }); 

рд╣рдо рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ ngOnChanges рдШрдЯрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╣рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ SimpleChange рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдкрд╣рд▓рд╛ рд╣реИ, рдкрд┐рдЫрд▓рд╛ рдорд╛рди null , рдФрд░ рд╡рд░реНрддрдорд╛рди рдорд╛рди рдПрдХ рдкреНрд░рд╢реНрди рд╣реИред

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

рдпрд╣рд╛рдБ рд╣рдо рдЬрд┐рд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдереЗ, рдЙрд╕рдХреЗ рд▓рд┐рдП рд╕реЛрд░реНрд╕ рдХреЛрдб рдпрд╣рд╛рдБ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдкрд░рд┐рдгрд╛рдо


рдЖрд▓рд╕реА рдХрдВрдкреЛрдиреЗрдВрдЯ рд▓реЛрдбрд┐рдВрдЧ рд╕реЗ Angular Developers рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░рдлреЙрд░реНрдореЗрдВрд╕ рдХреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рдмреЗрд╣рддрд░реАрди рдЕрд╡рд╕рд░ рдорд┐рд▓рддреЗ рд╣реИрдВред рдЙрдирдХреЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдЖрд▓рд╕реА рдореЛрдб рдореЗрдВ рд▓реЛрдб рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрд╣реБрдд рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рд╣реИрдВред рдкрд╣рд▓реЗ, рдЬрдм рдЖрд▓рд╕реА рдореЛрдб рдореЗрдВ рдХреЗрд╡рд▓ рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрддрдиреА рд╕рдЯреАрдХрддрд╛ рдирд╣реАрдВ рдереАред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдШрдЯрдХ рдореЗрдВ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рднреА рдзреНрдпрд╛рди рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдпрд╣ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред

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

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рдХреЛрдгреАрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЖрд▓рд╕реА рдШрдЯрдХ рд▓реЛрдбрд┐рдВрдЧ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ?

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


All Articles