рдХреЛрдгреАрдп 6+ рдкреВрд░реНрдг рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдЧрд╛рдЗрдб рд╣реИред рдкреНрд░реЛрд╡рд╛рдЗрдбрд░реНрд╕ рдмрдирд╛рдо рдкреНрд░рджрд╛рддрд╛: []

рдЫрд╡рд┐

рдХреЛрдгреАрдп 6 рдиреЗ рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ ( рдкреНрд░рджрд╛рди ) рдореЗрдВ рд╕реЗрд╡рд╛ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдмреЗрд╣рддрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкреЗрд╢ рдХрд┐рдпрд╛ред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдХреЛрдгреАрдп 7 рдкрд╣рд▓реЗ рд╣реА рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ, рдпрд╣ рд╡рд┐рд╖рдп рдЕрднреА рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред GitHub, Slack рдФрд░ Stack Overflow рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдмрд╣реБрдд рднреНрд░рдо рд╣реИ, рддреЛ рдЖрдЗрдП рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ:


  1. рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди
  2. рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдПрдВрдЧреБрд▓рд░ ( рдкреНрд░рджрд╛рддрд╛рдУрдВ: [] ) рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреБрд░рд╛рдирд╛ рддрд░реАрдХрд╛;
  3. рдХреЛрдгреАрдп рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдирдпрд╛ рддрд░реАрдХрд╛ ( рдмрд╢рд░реНрддреЗ: 'рд░реВрдЯ' | SomeModule );
  4. рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ ;
  5. рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдирдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ;
  6. рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рджреЗрдирд╛ред

рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди


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

- рдХреЛрдгреАрдп рдкреНрд░рд▓реЗрдЦрди

рдФрдкрдЪрд╛рд░рд┐рдХ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдЕрдЪреНрдЫреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдЗрдП рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреНрдпрд╛ рд╣реИ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред

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

рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд╣реИ:

constructor(private http: HttpClient) 

рдпрджрд┐ рдЖрдк рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ HttpClient рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдлрд┐рд░ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

 const myService = new MyService(httpClient) 

рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ httpClient рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛рдБ ? рдЗрд╕реЗ рднреА рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 const httpClient = new HttpClient(httpHandler) 

рд▓реЗрдХрд┐рди рдЕрдм httpHandler рдХрд╣рд╛рдВ рд╕реЗ рд▓рд╛рдПрдВ ? рдФрд░ рдЗрд╕реА рддрд░рд╣, рдЬрдм рддрдХ рдХрд┐ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХрдХреНрд╖рд╛рдПрдВ рддрддреНрдХрд╛рд▓ рди рд╣реЛрдВред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдиреБрдЕрд▓ рдирд┐рд░реНрдорд╛рдг рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред

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

рдХреЛрдгреАрдп рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреБрд░рд╛рдирд╛ рддрд░реАрдХрд╛ (рдкреНрд░рджрд╛рддрд╛: [])


рдЖрд╡реЗрджрди рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЛрдгреАрдп рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд╕реНрддреБ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рд╣рдо рдШрдЯрдХреЛрдВ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдПрдВрдЧреБрд▓рд░ 6 рдЬрд╛рд░реА рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЛ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рд╕реЗрд╡рд╛рдПрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдерд╛ : [] рд╕рдЬреНрдЬрд╛рдХрд╛рд░ @NgModule , @Component рдФрд░ @Directive ред

рдЫрд╡рд┐

рдпрд╣рд╛рдБ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рддреАрди рдореБрдЦреНрдп рдЙрдкрдпреЛрдЧ рд╣реИрдВ : [] :

  1. рддреБрд░рдВрдд рд▓реЛрдб рдХрд┐рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ ( рдЙрддреНрд╕реБрдХ ) рдХреЗ @NgModule рдбреЗрдХреЛрд░реЗрдЯрд░ рдореЗрдВ;
  2. рджреЗрд░реА рд▓реЛрдбрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ ( рдЖрд▓рд╕реА ) рдХреЗ @NgModule рдбреЗрдХреЛрд░реЗрдЯрд░ рдореЗрдВ;
  3. рд╕рдЬреНрдЬрд╛рдХрд╛рд░реЛрдВ рдореЗрдВ @Component рдФрд░ @ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ ред

рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ (рдИрдЧрд░)


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

рдЖрд╕реНрдердЧрд┐рдд рд▓реЛрдб рдореЙрдбреНрдпреВрд▓ (рдЖрд▓рд╕реА)


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

@ рдШрдЯрдХ рдФрд░ @ рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


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

рдЫрд╡рд┐

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, RandomService рдХреЛ рдореЙрдбреНрдпреВрд▓ рд╕реНрддрд░ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рдирд╣реАрдВ рд╣реИ,
рд▓реЗрдХрд┐рди рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкрдВрдЬреАрдХреГрдд : [] рд░реИрдВрдбрдо рдХреЙрдордкреЛрдиреЗрдВрдЯ рдШрдЯрдХ рдХрд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ <randm> </ randm> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╣рд░ рдмрд╛рд░ рдПрдХ рдирдпрд╛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдирдВрдмрд░ рдорд┐рд▓реЗрдЧрд╛ред

рдХреЛрдгреАрдп рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдирдпрд╛ рддрд░реАрдХрд╛ (рдмрд╢рд░реНрддреЗ: 'рд░реВрдЯ' | SomeModule)


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

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

рд╕реЗрд╡рд╛ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдореВрд▓ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ( рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛: 'рд░реВрдЯ' ) рдпрд╛ рдХрд┐рд╕реА рднреА рдореЙрдбреНрдпреВрд▓ рдореЗрдВ ( рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛: SomeModule )ред рдкреНрд░рджрд╛рди рдХреА рдЧрдИ: 'рд░реВрдЯ' AppModule рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо рд╣реИред

рдЫрд╡рд┐

рдЖрдЗрдП рдирдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ:

  1. рдЖрд╡реЗрджрди рдХреЗ рдореВрд▓ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди ( рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛: 'рд░реВрдЯ' );
  2. рддреБрд░рдВрдд рд▓реЛрдб рдХрд┐рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ ( рдЙрддреНрд╕реБрдХ ) рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди;
  3. рд╡рд┐рд▓рдВрдмрд┐рдд рд▓реЛрдбрд┐рдВрдЧ ( рдЖрд▓рд╕реА ) рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред

рдЖрд╡реЗрджрди рдХреЗ рдореВрд▓ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛: 'рд░реВрдЯ')


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

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

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

рд╡рд┐рд▓рдВрдмрд┐рдд рд▓реЛрдбрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ (рдЖрд▓рд╕реА) рдФрд░ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛: 'рд░реВрдЯ'


рдпрджрд┐ рдЖрдк рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕реЗрд╡рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ : рдЖрд▓рд╕реА рдореЙрдбреНрдпреВрд▓ рдореЗрдВ 'рд░реВрдЯ' ?

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

рд╕рд╛рд╡рдзрд╛рди! рдХрдИ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ рд╕реЗрд╡рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдЫрд┐рдкреА рдирд┐рд░реНрднрд░рддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реБрд▓рдЭрд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред

рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдиреАрдЪреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред

рддреБрд░рдВрдд рд▓реЛрдб рдореЙрдбреНрдпреВрд▓ (рдЙрддреНрд╕реБрдХ) рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди


рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдорд╛рдорд▓рд╛ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╣рдо provideIn: 'root' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред EagerModule рдореЗрдВ рдПрдХ рд╕реЗрд╡рд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд░реЛрдХ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред

рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реЗрд╡рд╛ рдХреЗ рджрд╛рдпрд░реЗ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдкреБрд░рд╛рдиреЗ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ : [] рд╡рд┐рдзрд┐, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рдкрддреНрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ, рддреЛ рджрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ: рд╕рднреА рдЙрддреНрд╕реБрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ 'рд░реВрдЯ'ред

рдиреЛрдЯред рд╡рд┐рд▓рдВрдмрд┐рдд рд▓реЛрдбрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ (рдЖрд▓рд╕реА) рдХрд╛ рд▓рд╛рдн


рдХреЛрдгреАрдп рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЖрд╡реЗрджрди рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд╛рдн рджреЗрддрд╛ рд╣реИ:

  1. рдЖрд╡реЗрджрди рдХреЗ рдореБрдЦреНрдп рдмрдВрдбрд▓ рдХрд╛ рдЫреЛрдЯрд╛ рдЖрдХрд╛рд░, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдЖрд╡реЗрджрди рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ рдФрд░ рддреЗрдЬреА рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ;
  2. рд╡рд┐рд▓рдВрдмрд┐рдд рд▓реЛрдбрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ-рдерд▓рдЧ рд╣реИ рдФрд░ рдПрдХ рдмрд╛рд░ рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рд░реНрдЧ рдХреЗ рд▓реЛрдбрдЪрд┐рд▓реНрдбреЗрди рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдЖрд╡реЗрджрди рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред

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

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

рд╡рд┐рд▓рдВрдмрд┐рдд рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛: LazyModule)


рдЫрд╡рд┐

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

рджрд┐рд▓рдЪрд╕реНрдк рддрдереНрдп: рдпрджрд┐ рдЖрдк рдЖрд╡реЗрджрди рдХреЗ рдореБрдЦреНрдп рднрд╛рдЧ рдореЗрдВ рдЖрд▓рд╕реА рд╕реЗрд╡рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрд╕реЗрдВрдмрд▓реА (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдУрдЯреА) рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧреА, рд▓реЗрдХрд┐рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди "рдЖрд▓рд╕реА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкреНрд░рджрд╛рддрд╛ рдирд╣реАрдВ" рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЪрдХреНрд░реАрдп рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛


рдЫрд╡рд┐

рдЖрдк рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  1. LazyModule рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдПрдБ;
  2. рд╣рдо LazyService рд╕реЗрд╡рд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ provideIn рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ : LazyModule ;
  3. рд╣рдо LazyComponent рдШрдЯрдХ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ LazyModule рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ;
  4. LazyService рдХреЛ LazyComponent рдШрдЯрдХ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ;
  5. рд╣рдореЗрдВ рдЪрдХреНрд░реАрдп рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред

рдпреЛрдЬрдирд╛рдмрджреНрдз рд░реВрдк рд╕реЗ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ: рд╕реЗрд╡рд╛ -> рдореЙрдбреНрдпреВрд▓ -> рдШрдЯрдХ -> рд╕реЗрд╡рд╛ ред

рдЖрдк рдПрдХ рд╕рдмрдореЙрдбрд▓ LazyServiceModule рдмрдирд╛рдХрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ LazyModule рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХреА рдЬрд╛рдПрдЧреА ред рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕рдмрдореЙрдбреНрдпреВрд▓ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред
рдЫрд╡рд┐

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд╛рдн рджреЗрдВрдЧреЗ:

  1. рдпрд╣ рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕реЗрд╡рд╛ рдХреА рд╢реБрд░реВрдЖрдд рдХреЛ рд░реЛрдХ рджреЗрдЧрд╛;
  2. рдПрдХ рдмрдВрдбрд▓ рдореЗрдВ рд╕реЗрд╡рд╛ рддрднреА рдЬреЛрдбрд╝реА рдЬрд╛рдПрдЧреА рдЬрдм рдпрд╣ рдХрд┐рд╕реА рдШрдЯрдХ рдпрд╛ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЕрдиреНрдп рд╕реЗрд╡рд╛ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╣реЛред

рдШрдЯрдХ рдореЗрдВ рдПрдХ рд╕реЗрд╡рд╛ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ (рдкреНрд░рджрд╛рди рдХреА рдЧрдИ: SomeComponent)


рдХреНрдпрд╛ рдирдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ @Component рдпрд╛ @Directive рдореЗрдВ рдХрд┐рд╕реА рд╕реЗрд╡рд╛ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ?

рдлрд┐рд▓рд╣рд╛рд▓ рдирд╣реАрдВ!

рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрднреА рднреА рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ : [] @ omponent рдпрд╛ @Directive рдбреЗрдХреЛрд░реЗрдЯрд░ рдореЗрдВ ред

рдЫрд╡рд┐

рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдирдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕


рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ


рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдП рдЧрдП: рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП 'рд░реВрдЯ' рдЕрдЪреНрдЫрд╛ рд╣реИред рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдХреЗрд╡рд▓ рд╕реАрдзреЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдп рдХреЛ рдореБрдЦреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдЕрдВрддрд┐рдо рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛ рд╣реИред

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

рдЖрд╕реНрдердЧрд┐рдд рдбрд╛рдЙрдирд▓реЛрдб рдореЙрдбреНрдпреВрд▓ (рдЖрд▓рд╕реА)


рдЕрд▓рдЧ рд╕реЗ рджрд┐рдП рдЧрдП рдЗрдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ : рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП LazyServicesModule рдореЙрдбреНрдпреВрд▓ рдФрд░ рдЗрд╕реЗ LazyModule рдореЗрдВ рдкреНрд▓рдЧ рдХрд░реЗрдВред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкреНрд▓рдЧ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред рдпрд╣ рд╕реАрдорд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдПрдХ рд╕реНрдХреЗрд▓реЗрдмрд▓ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред

рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ, рдореБрдЦреНрдп рдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЙрдбреНрдпреВрд▓ (рдкреНрд░реЛрд╡рд┐рдВрдб рдЗрди: 'рд░реВрдЯ' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдореЗрдВ рдЖрдХрд╕реНрдорд┐рдХ рдкрд░рд┐рдЪрдп рднреНрд░рдо рдХреА рд╕реНрдерд┐рддрд┐ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ!

provideIn : 'root' рд╕рд╣реА рдврдВрдЧ рд╕реЗ рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЬрдм provideIn рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ : LazyServideModule рд╣рдореЗрдВ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдкрд░ "рд▓рд╛рдкрддрд╛ рдкреНрд░рджрд╛рддрд╛" рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ рдФрд░ рд╣рдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдореБрдЦреНрдп рднрд╛рдЧ рдореЗрдВ рд╕реЗрд╡рд╛ рдХреЛ рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╕реНрдерд╛рди рдкрд░ рд▓реЗ рдЬрд╛рдПрдВред

рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: []?


рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реЗрд╡рд╛ рдХреЛ рдХреЗрд╡рд▓ SomeModule.forRoot (someConfig) рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред

рдЫрд╡рд┐

рджреВрд╕рд░реА рдУрд░, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдк provideIn: 'root' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЧрд╛рд░рдВрдЯреА рджреЗрдЧрд╛ рдХрд┐ рд╕реЗрд╡рд╛ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдЖрд╡реЗрджрди рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред

рдирд┐рд╖реНрдХрд░реНрд╖


  1. рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ : 'рд░реВрдЯ' рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрд╡рд╛ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреВрд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред
  2. рдореБрдЦреНрдп рдмрдВрдбрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП, provideIn рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ : 'root' , рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛: EagerlyImportedModule ред рдЕрд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ : [] рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреЗ рд▓рд┐рдПред
  3. рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдмрдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдПрдВ рддрд╛рдХрд┐ рдЙрдирдХреЗ рджрд╛рдпрд░реЗ рдХреЛ рд╕реАрдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп LazyServiceModule ред
  4. рд╡реГрддреНрддрд╛рдХрд╛рд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП LazyServiceModule рдореЙрдбреНрдпреВрд▓ рдХреЛ LazyModule рдореЗрдВ рдкреНрд▓рдЧ рдХрд░реЗрдВред
  5. рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ : [ omponent рдФрд░ @Directive рд╕рдЬреНрдЬрд╛рдХрд╛рд░ рдореЗрдВ ] рдкреНрд░рддреНрдпреЗрдХ рдирдП рдШрдЯрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рд╕реЗрд╡рд╛ рдЖрд╡реГрддреНрддрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рд╕рднреА рдмрд╛рд▓ рдШрдЯрдХреЛрдВ рдореЗрдВ рдПрдХ рд╕реЗрд╡рд╛ рдЙрджрд╛рд╣рд░рдг рднреА рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред
  6. рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдФрд░ рднреНрд░рд╛рдордХ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рджрд╛рдпрд░реЗ рдХреЛ рд╕реАрдорд┐рдд рдХрд░реЗрдВред

рд╕рдВрджрд░реНрдн


рдореВрд▓ рд▓реЗрдЦред
рдХреЛрдгреАрдп рд░реВрд╕реА рднрд╛рд╖реА рд╕рдореБрджрд╛рдп рд╣реИред
рд░реВрд╕ рдореЗрдВ рдХреЛрдгреАрдп рдмреИрдардХ

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


All Articles