рдЖрдЗрд╡реА рдХрд╛ рдПрдХ рдЕрдзреНрдпрдпрди, рдирдпрд╛ рдХреЛрдгреАрдп рд╕рдВрдХрд▓рдХ

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

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



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

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

рд╡реИрд╕реЗ, рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдирдП рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдирд╛рдо рдЖрдЗрд╡реА рдХреНрдпреЛрдВ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛? рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╢рдмреНрдж "IV" рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдЬреЛрд░ рд╕реЗ рдкрдврд╝реЗрдВ, рдЬреЛ рд╕рдВрдЦреНрдпрд╛ 4 рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд░реЛрдорди рдЕрдВрдХреЛрдВ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред "4" рдХреЛрдгреАрдп рд╕рдВрдХрд▓рдХ рдХреА рдЪреМрдереА рдкреАрдврд╝реА рд╣реИред

рдЖрдЗрд╡реА рдЖрд╡реЗрджрди


рдЖрдЗрд╡реА рдЕрднреА рднреА рдЧрд╣рди рд╡рд┐рдХрд╛рд╕ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реИ, рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдпрд╣рд╛рдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реНрд╡рдпрдВ рдЕрднреА рддрдХ рдореБрдХрд╛рдмрд▓рд╛ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд░реЗрдВрдбрд░рд░ рд╡реА 3 рдХрд╛ рдЕрдореВрд░реНрдд рдЙрдкрдпреЛрдЧ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдлреА рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╣реИ рдФрд░ рдХреЛрдгреАрдп 6.x рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдЗрд╡реА рдЕрднреА рднреА рдХрд╛рдлреА рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдлрд┐рд░ рднреА рд╣рдо рдЙрд╕рдХреЗ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ? рдПрдХ рдирдпрд╛ рдХреЛрдгреАрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдХрд░:

ng new ivy-internals 

рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдирдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд tsconfig.json рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝рдХрд░ рдЖрдЗрд╡реА рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

 "angularCompilerOptions": { "enableIvy": true } 

рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдо рдирдП рдмрдирд╛рдП рдЧрдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ ngc рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рдХрдВрдкрд╛рдЗрд▓рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:

 node_modules/.bin/ngc 

рд╡рд╣ рд╕рдм рд╣реИред рдЕрдм рдЖрдк dist/out-tsc рдореЗрдВ рд╕реНрдерд┐рдд рдЙрддреНрдкрдиреНрди рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, AppComponent рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯреБрдХрдбрд╝реЗ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:

 <div style="text-align:center"> <h1>   Welcome to {{ title }}! </h1> <img width="300" alt="Angular Logo" src="тАж"> </div> 

рдпрд╣рд╛рдВ рдХреБрдЫ рд▓рд┐рдВрдХ рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ:


рдЗрд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдЬреЗрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб dist/out-tsc/src/app/app.component.js рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 i0.╔╡E(0, "div", _c0); i0.╔╡E(1, "h1"); i0.╔╡T(2); i0.╔╡e(); i0.╔╡E(3, "img", _c1); i0.╔╡e(); i0.╔╡e(); i0.╔╡E(4, "h2"); i0.╔╡T(5, "Here are some links to help you start: "); i0.╔╡e(); 

рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдореЗрдВ рд╣реИ рдХрд┐ рдЖрдЗрд╡реА рдШрдЯрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рднреА рдпрд╣реА рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:


рдХреЛрдгреАрдп рд╕рдВрдХрд▓рдХ рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рдХреЛрдб

рдРрд╕рд╛ рдЕрд╣рд╕рд╛рд╕ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрдЗрд╡реА рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рдЬреНрдпрд╛рджрд╛ рд╕рд░рд▓ рд╣реИред рдЖрдк рдШрдЯрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣ src/app/app.component.html ), рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕рдореЗрдВ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрди рдЙрддреНрдкрдиреНрди рдХреЛрдб рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдВрдЧреЗред

рдкрд╛рд░реНрд╕ рдЙрддреНрдкрдиреНрди рдХреЛрдб


рдЖрдЗрдП рдЬрдирд░реЗрдЯ рдХреЛрдб рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП i0.╔╡E рдФрд░ i0.╔╡T рдЬреИрд╕реЗ рдХреЙрд▓ рдХреЗ рдЕрд░реНрде рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреНрд░рд╢реНрди рдХреЗ рдЙрддреНрддрд░ рдХреА i0.╔╡T

рдпрджрд┐ рдЖрдк рдЬрдирд░реЗрдЯ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдирд┐рдореНрди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдорд┐рд▓реЗрдЧреА:

 var i0 = require("@angular/core"); 

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

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


рд╡реА.рдПрд╕. рдХреЛрдб рдореЗрдВ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рднрд▓реЗ рд╣реА рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдпрд╣рд╛рдВ рдкрд╛рд░реНрд╕ рдХреА рдЧрдИ рд╣реЛ, рд▓реЗрдХрд┐рди рд╡реАрдПрд╕ рдХреЛрдб рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХреЙрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдФрд░ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐, рд╡рд┐рдзрд┐ рдирд╛рдо рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╕рдВрдпреЛрдЬрди Ctrl + рдХреНрд▓рд┐рдХ (рдореИрдХ рдкрд░ Cmd + рдХреНрд▓рд┐рдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд╛рдо elementStart ред

рдЗрд╕ рддрдХрдиреАрдХ рдиреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╕рдВрднрд╡ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдзрд┐ рдирд╛рдо text , рд╡рд┐рдзрд┐ рдирд╛рдо ╔╡e рд╣реИред рдЗрд╕ рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде, рд╣рдо рдЙрддреНрдкрдиреНрди рдХреЛрдб рдХреЛ "рдЯреНрд░рд╛рдВрд╕рд▓реЗрдЯ" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдРрд╕реА рдЪреАрдЬрд╝ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкрдврд╝рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧреАред рдпрд╣рд╛рдБ рдЗрд╕ рддрд░рд╣ рдХреЗ "рдЕрдиреБрд╡рд╛рдж" рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЕрдВрд╢ рд╣реИ:

 var core = require("angular/core"); //... core.elementStart(0, "div", _c0); core.elementStart(1, "h1"); core.text(2); core. (); core.elementStart(3, "img", _c1); core.elementEnd(); core.elementEnd(); core.elementStart(4, "h2"); core.text(5, "Here are some links to help you start: "); core.elementEnd(); 

рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдХреЛрдб HTML рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд╛рда рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ:

 <div style="text-align:center"> <h1>   Welcome to {{ title }}! </h1> <img width="300" alt="Angular Logo" src="тАж"> </div> 

рдпрд╣рд╛рдВ рдХреБрдЫ рд▓рд┐рдВрдХ рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ:


рдЗрди рд╕рднреА рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЖрд╕рд╛рди рд╣реИ:

  • рдкреНрд░рддреНрдпреЗрдХ рдЦреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ HTML рдЯреИрдЧ рдореЗрдВ core.elementStart() рдХреЙрд▓ рд╣реЛрддрд╛ рд╣реИред
  • рд╕рдорд╛рдкрди рдЯреИрдЧ core.elementEnd() рд▓рд┐рдП рдХреЙрд▓ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВред
  • рдкрд╛рда рдиреЛрдбреНрд╕ core.text() рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реВрдк рд╣реИрдВред

elementStart рдФрд░ text elementStart рдХрд╛ рдкрд╣рд▓рд╛ рддрд░реНрдХ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореВрд▓реНрдп рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдмрдврд╝рддрд╛ рд╣реИред рдпрд╣ рд╕рдВрднрд╡рддрдГ рдХрд┐рд╕реА рд╕рд░рдгреА рдореЗрдВ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдВрдЧреБрд▓рд░ рд╕реНрдЯреЛрд░ рдмрдирд╛рдП рдЧрдП рддрддреНрд╡реЛрдВ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рддрд╛ рд╣реИред

рддреАрд╕рд░рд╛ рддрд░реНрдХ elementStart рд╡рд┐рдзрд┐ рд╕реЗ рднреА рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрдкрд░реЛрдХреНрдд рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рддрд░реНрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ рдФрд░ DOM рдиреЛрдб рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред рдЖрдк рдЗрд╕реЗ _c0 рдХреЗ рдорд╛рди рдХреЛ _c0 рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдореЗрдВ div рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдЙрдирдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рд╣реИ:

 var _c0 = ["style", "text-align:center"]; 

NgComponentDef рдиреЛрдЯ


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

рдШрд░ рдХрд╛ рдмрдирд╛ рдЖрдЗрд╡реА


рдЕрдм рдЬрдм рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдЙрддреНрдкрдиреНрди рдХреЛрдб рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд╣рдо рд╕реНрдХреНрд░реИрдЪ рд╕реЗ, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдШрдЯрдХ рдХреЛ рдЙрд╕реА RendererV3 API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ Ivy рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

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

рдЖрдЗрдП рдПрдХ рд╕рд░рд▓ рдШрдЯрдХ рд▓рд┐рдЦрдХрд░ рд╢реБрд░реВ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЖрдЗрд╡реА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЗ рд╕рдорд╛рди рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдиреБрд╡рд╛рдж рдХрд░реЗрдВ:

 import { Component } from '@angular/core'; @Component({ selector: 'manual-component', template: '<h2><font color="#3AC1EF">Hello, Component</font></h2>', }) export class ManualComponent { } 

рдХрдВрдкрд╛рдЗрд▓рд░ @component рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреЗ рдЗрдирдкреБрдЯ рдХреЛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ, рдирд┐рд░реНрджреЗрд╢ рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдпрд╣ рд╕рднреА рдШрдЯрдХ рд╡рд░реНрдЧ рдХреА рд╕реНрдерд┐рд░ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдЗрд╡реА рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо @component рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреЛ @component рдФрд░ рдЗрд╕реЗ рд╕реНрдерд┐рд░ ngComponent рд╕рдВрдкрддреНрддрд┐ рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

 import * as core from '@angular/core'; export class ManualComponent { static ngComponentDef = core.╔╡defineComponent({   type: ManualComponent,   selectors: [['manual-component']],   factory: () => new ManualComponent(),   template: (rf: core.╔╡RenderFlags, ctx: ManualComponent) => {     //       }, }); } 

рд╣рдо ╔╡defineComponent рдХреЙрд▓ рдХрд░рдХреЗ рд╕рдВрдХрд▓рд┐рдд рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд ╔╡defineComponent ред рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдореЗрдВ рдШрдЯрдХ рдХрд╛ рдкреНрд░рдХрд╛рд░ (рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛), рд╕реАрдПрд╕рдПрд╕ рдЪрдпрдирдХрд░реНрддрд╛ (рдпрд╛ рдЪрдпрдирдХрд░реНрддрд╛) рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдШрдЯрдХ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, manual-component HTML рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдШрдЯрдХ рдХрд╛ рдирд╛рдо рд╣реИ), рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░рдЦрд╛рдирд╛ рдШрдЯрдХ, рдФрд░ рдлрд┐рд░ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЯреЗрдореНрдкрд▓реЗрдЯ рдШрдЯрдХ рдХреЗ рджреГрд╢реНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдШрдЯрдХ рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╣рдордиреЗ рдКрдкрд░ рдкрд╛рдП рд╣реИрдВ: , ╔╡e , ╔╡e рдФрд░ ╔╡T ред

     template: (rf: core.╔╡RenderFlags, ctx: ManualComponent) => {     core.╔╡E(0, 'h2');                 //    h2     core.╔╡T(1, 'Hello, Component');   //       core.╔╡e();                        //    h2   }, 

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

рдкрд╣рд▓рд╛ рдЖрд╡реЗрджрди


рд╕реНрдХреНрд░реАрди рдкрд░ рдШрдЯрдХреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЛрдгреАрдп ╔╡renderComponent рдирд╛рдордХ рдПрдХ рд╡рд┐рдзрд┐ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ index.html рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рддрддреНрд╡ рдЪрдпрдирдХрд░реНрддрд╛, <manual-component> рдЕрдиреБрд░реВрдк рдПрдХ HTML рдЯреИрдЧ рд╣реИ, рдФрд░ рдлрд┐рд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдирд┐рдореНрди рдЬреЛрдбрд╝реЗрдВ:

 core.╔╡renderComponent(ManualComponent); 

рд╡рд╣ рд╕рдм рд╣реИред рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдиреНрдпреВрдирддрдо рд╕реНрд╡-рдирд┐рд░реНрдорд┐рдд рдХреЛрдгреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдб рдХреА рдХреЗрд╡рд▓ 16 рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВред рдЖрдк StackBlitz рдкрд░ рддреИрдпрд╛рд░ рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рддрдВрддреНрд░ рдмрджрд▓реЗрдВ


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

рдШрдЯрдХ рдХреЛ рдмрджрд▓реЗрдВ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрд╡рд╛рдЧрдд рдкрд╛рда рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХреЗред рдпрд╣реА рд╣реИ, рдШрдЯрдХ рд╣рдореЗрд╢рд╛ Hello, Component рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдШрдЯрдХ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ Hello рдмрд╛рдж рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рда рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдмрджрд▓рдиреЗ рджреЗрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

рд╣рдо name рдЧреБрдг рдФрд░ рдШрдЯрдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:

 export class ManualComponent { name = 'Component'; updateName(newName: string) {   this.name = newName; } // ... } 

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рдм рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдЖрдЧреЗ рд╣реИред

рдЕрдЧрд▓рд╛, рд╣рдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗ, рддрд╛рдХрд┐ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкрд╛рда рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ name рд╕рдВрдкрддреНрддрд┐ рдХреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:

 template: (rf: core.╔╡RenderFlags, ctx: ManualComponent) => { if (rf & 1) {   // :        core.╔╡E(0, 'h2');   core.╔╡T(1, 'Hello, ');   core.╔╡T(2);   // <--   name   core.╔╡e(); } if (rf & 2) {   // :       core.╔╡t(2, ctx.name);  // ctx -     } }, 

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

рдЗрд╕рд▓рд┐рдП, рдЬрдм рдкрд╣рд▓реА рдмрд╛рд░ рдШрдЯрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдо рд╕рднреА рддрддреНрд╡ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░, рдЬрдм рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдХреЗрд╡рд▓ рд╡рд╣реА рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП ╔╡t рдЖрдВрддрд░рд┐рдХ рд╡рд┐рдзрд┐ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ (рдиреЛрдЯ рд▓реЛрдЕрд░рдХреЗрд╕ рд▓реЗрдЯрд░ t ), рдЬреЛ textBinding рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП textBinding рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ:


рдлрдВрдХреНрд╢рди рдЯреЗрдХреНрд╕реНрдЯрдмрд╛рдЗрдВрдбрд┐рдВрдЧ

рддреЛ, рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЕрджреНрдпрддрди рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИ, рджреВрд╕рд░рд╛ рдорд╛рди рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рдХрдорд╛рдВрдб core.╔╡T(2); рд╕рд╛рде рдЗрдВрдбреЗрдХреНрд╕ 2 рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА рдкрд╛рда рддрддреНрд╡ рдмрдирд╛рддреЗ рд╣реИрдВред core.╔╡T(2); ред рдпрд╣ name рд▓рд┐рдП рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рдХрдорд╛рдВрдб core.╔╡t(2, ctx.name); рд╕рд╛рде рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ core.╔╡t(2, ctx.name); рд╕рдВрдмрдВрдзрд┐рдд рдЪрд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдкрд░ред

рдлрд┐рд▓рд╣рд╛рд▓, рдЗрд╕ рдШрдЯрдХ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдЕрднреА рднреА рдкрд╛рда рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ Hello, Component , рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдо name рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдкрд╛рда рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╣реЛрдЧрд╛ред

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдпрд╣рд╛рдВ рдПрдХ рдЗрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдбреЗрдЯрд╛ рдПрдВрдЯреНрд░реА рдлрд╝реАрд▓реНрдб updateName() рдЬреЛ рдШрдЯрдХ рд╡рд┐рдзрд┐ рдХреЛ updateName() :

 template: (rf: core.╔╡RenderFlags, ctx: ManualComponent) => { if (rf & 1) {   core.╔╡E(0, 'h2');   core.╔╡T(1, 'Hello, ');   core.╔╡T(2);   core.╔╡e();   core.╔╡T(3, 'Your name: ');   core.╔╡E(4, 'input');   core.╔╡L('input', $event => ctx.updateName($event.target.value));   core.╔╡e(); } // ... }, 

рдЗрд╡реЗрдВрдЯ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд▓рд╛рдЗрди core.╔╡L('input', $event => ctx.updateName($event.target.value)); ред рдЕрд░реНрдерд╛рддреН, ╔╡L рд╡рд┐рдзрд┐ рдШреЛрд╖рд┐рдд рд╢реНрд░реЛрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ ╔╡L рдХреЗ рд▓рд┐рдП рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдкрд╣рд▓рд╛ рддрд░реНрдХ рдИрд╡реЗрдВрдЯ рдХрд╛ рдирд╛рдо рд╣реИ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, input рд╡рд╣ рдИрд╡реЗрдВрдЯ рд╣реИ рдЬрд┐рд╕реЗ <input> рддрддреНрд╡ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рджреМрд░рд╛рди рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рджреВрд╕рд░рд╛ рддрд░реНрдХ рдХреЙрд▓рдмреИрдХ рд╣реИред рдпрд╣ рдХреЙрд▓рдмреИрдХ рдИрд╡реЗрдВрдЯ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдо рдШрдЯрдирд╛ рдХреЗ рд▓рдХреНрд╖реНрдп рддрддреНрд╡ рд╕реЗ рдореМрдЬреВрджрд╛ рдореВрд▓реНрдп рдХреЛ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН <input> рддрддреНрд╡ рд╕реЗ, рдФрд░ рдШрдЯрдХ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред

рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд HTML рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ:

 Your name: <input (input)="updateName($event.target.value)" /> 

рдЕрдм рдЖрдк <input> рддрддреНрд╡ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдШрдЯрдХ рдореЗрдВ рдкрд╛рда рдХреИрд╕реЗ рдмрджрд▓рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдШрдЯрдХ рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдЖрдмрд╛рдж рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рдореЗрдВ рдПрдХ рдФрд░ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрдм рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 template: (rf: core.╔╡RenderFlags, ctx: ManualComponent) => { if (rf & 1) { ... } if (rf & 2) {   core.╔╡t(2, ctx.name);   core.╔╡p(4, 'value', ctx.name); } } 

рдпрд╣рд╛рдВ рд╣рдо рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдПрдХ рдФрд░ рдмрд┐рд▓реНрдЯ-рдЗрди рдореЗрдердб рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреЗ рд╣реИрдВ, ╔╡p , рдЬреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдПрд▓рд┐рдореЗрдВрдЯ рдХреА рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрдВрдбреЗрдХреНрд╕ 4 рдХреЛ рд╡рд┐рдзрд┐ рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ input рддрддреНрд╡ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рдЗрдВрдбреЗрдХреНрд╕ рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕ рддрддреНрд╡ рдХреА value рдкреНрд░реЙрдкрд░реНрдЯреА рдореЗрдВ ctx.name рд╡реИрд▓реНрдпреВ рдбрд╛рд▓рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ ctx.name рд╣реИрдВред

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

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

* NgIf рдФрд░ * ngFor рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


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

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ npm рдкреИрдХреЗрдЬ @angular/common рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ *ngIf ред рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рдЗрд╕ рдкреИрдХреЗрдЬ рд╕реЗ рдирд┐рд░реНрджреЗрд╢ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 import { NgIf } from '@angular/common'; 

рдЕрдм, рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ NgIf рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ рдХреБрдЫ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ @angular/common рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЖрдЗрд╡реА рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдХрдо рд╕реЗ рдХрдо рд╕рд╛рдордЧреНрд░реА рд▓рд┐рдЦрддреЗ рд╕рдордп, рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдпрд╣ рд╕рдВрднрд╡рддрдГ рдЗрд╕рд╕реЗ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред ngcc рдХреА рд╢реБрд░реВрдЖрдд )ред

рд╣рдо ╔╡defineDirective рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдкрд░рд┐рдЪрд┐рдд ╔╡defineComponent рд╡рд┐рдзрд┐ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдпрд╣ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ:

 (NgIf as any).ngDirectiveDef = core.╔╡defineDirective({ type: NgIf, selectors: [['', 'ngIf', '']], factory: () => new NgIf(core.╔╡injectViewContainerRef(), core.╔╡injectTemplateRef()), inputs: {ngIf: 'ngIf', ngIfThen: 'ngIfThen', ngIfElse: 'ngIfElse'} }); 

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

 static ngComponentDef = core.╔╡defineComponent({ directives: [NgIf], // ... }); 

рдЕрдЧрд▓рд╛, рд╣рдо рдХреЗрд╡рд▓ *ngIf рджреНрд╡рд╛рд░рд╛ *ngIf рд╣реБрдП рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдЙрдкрдкрдЯреНрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдорд╛рди рд▓реАрдЬрд┐рдП рдЖрдкрдХреЛ рдПрдХ рдЫрд╡рд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪрд▓рд┐рдП рдЗрд╕ рдлрдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдлрдВрдХреНрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ:

 function ifTemplate(rf: core.╔╡RenderFlags, ctx: ManualComponent) { if (rf & 1) {   core.╔╡E(0, 'div');   core.╔╡E(1, 'img', ['src', 'https://pbs.twimg.com/tweet_video_thumb/C80o289UQAAKIqp.jpg']);   core.╔╡e(); } } 

рдпрд╣ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдлрд╝рдВрдХреНрд╢рди рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХ div рддрддреНрд╡ рдХреЗ рдЕрдВрджрд░ img рддрддреНрд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдХрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдо рдШрдЯрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ ngIf рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рдПрдХ рд╕рд╛рде рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

 template: (rf: core.╔╡RenderFlags, ctx: ManualComponent) => { if (rf & 1) {   // ...   core.╔╡C(5, ifTemplate, null, ['ngIf']); } if (rf & 2) {   // ...   core.╔╡p(5, 'ngIf', (ctx.name === 'Igor')); } function ifTemplate(rf: core.╔╡RenderFlags, ctx: ManualComponent) {   // ... } }, 

рдХреЛрдб рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдирдИ рд╡рд┐рдзрд┐ рдкрд░ рдХреЙрд▓ рдХреЛ рдиреЛрдЯ рдХрд░реЗрдВ ( core.╔╡C(5, ifTemplate, null, ['ngIf']); )ред рдпрд╣ рдПрдХ рдирдпрд╛ рдХрдВрдЯреЗрдирд░ рддрддреНрд╡ рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╛рдиреА рдПрдХ рдРрд╕рд╛ рддрддреНрд╡ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реЛрддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рддрд░реНрдХ рддрддреНрд╡ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИ, рд╣рдо рдкрд╣рд▓реЗ рд╣реА рдРрд╕реЗ рд╕реВрдЪрдХрд╛рдВрдХ рджреЗрдЦ рдЪреБрдХреЗ рд╣реИрдВред рджреВрд╕рд░рд╛ рддрд░реНрдХ рд╣реИ рд╕рдмрдкреИрдЯрд░реНрди рдлрд╝рдВрдХреНрд╢рди рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЕрднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рдХрдВрдЯреЗрдирд░ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рддреАрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдЯреИрдЧ рдирд╛рдо рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдпрд╣рд╛рдВ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЗрд╕ рддрддреНрд╡ рд╕реЗ рдЬреБрдбрд╝реЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ ngIf рдЕрдВрджрд░ рдЖрддрд╛ ngIf ред

рд▓рд╛рдЗрди рдореЗрдВ core.╔╡p(5, 'ngIf', (ctx.name === 'Igor')); рддрддреНрд╡ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рддрд╛рд░реНрдХрд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ ctx.name === 'Igor' рдХреЗ рдореВрд▓реНрдп рдореЗрдВ ngIf рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдмрд╛рдВрдзрдХрд░ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдШрдЯрдХ рдХреА name рд╕рдВрдкрддреНрддрд┐ Igor рдмрд░рд╛рдмрд░ рд╣реИред

рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдирд┐рдореНрди HTML рдХреЛрдб рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ:

 <div *ngIf="name === 'Igor'"> <img align="center" src="..."> </div> 

рдпрд╣рд╛рдВ рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдирдпрд╛ рд╕рдВрдХрд▓рдХ рд╕рдмрд╕реЗ рдХреЙрдореНрдкреИрдХреНрдЯ рдХреЛрдб рдХрд╛ рдЙрддреНрдкрд╛рджрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдм рдЬреЛ рд╣реИ, рдЙрд╕рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдпрд╣ рдЗрддрдирд╛ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИред

рдЖрдк рдпрд╣рд╛рдВ рдПрдХ рдирдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ NgIf рдЕрдиреБрднрд╛рдЧ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, Your name рдХреНрд╖реЗрддреНрд░ рдореЗрдВ Igor рдирд╛рдо рджрд░реНрдЬ рдХрд░реЗрдВред

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


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

рдпрд╣рд╛рдВ , рдпрд╣рд╛рдВ рдФрд░ рдпрд╣рд╛рдВ - рддреАрди рд╕рд╛рдордЧреНрд░реА рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЖрдЗрд╡реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдпрд╣рд╛рдБ Render3 рдХреЗ рд▓рд┐рдП рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣реИред

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдЖрдк рдЖрдЗрд╡реА рдХреА рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕рд╛ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ?

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


All Articles