рдореБрдЭреЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЖрд╡реЗрджрди рдПрдВрдЧреБрд▓рд░, рдФрд░ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдШрдЯрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рд╣реИред рддреЛ, рдЖрдкрдХреЛ рдХрдо рд▓рд╛рдЧрдд рдХреЗ рд╕рд╛рде рдПрдХ рдХреЛрдгреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред
рддреНрдпрд╛рдЧ
рдореИрдВ рдХреЛрдгреАрдп рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рд╣реВрдВред рдореИрдВрдиреЗ 2017 рдореЗрдВ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдлрд┐рд░ рдПрдВрдЧреБрд▓рд░рдбрд╛рд░реНрдЯ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рджреЗрдЦрд╛, рдФрд░ рдЕрдм рдореБрдЭреЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдЖрдзреБрдирд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдорд░реНрдерди рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрдгрдп рдЕрдЬреАрдм рд╣реИрдВ рдпрд╛ "рджреВрд╕рд░реА рджреБрдирд┐рдпрд╛ рд╕реЗ" рд╣реИрдВ, рддреЛ рдпрд╣ рдЖрдкрдХреЛ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рд▓реЗрдЦ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЕрднреА рддрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИред рдЕрдкрдиреЗ рдЬреЛрдЦрд┐рдо рдкрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╕рдорд╕реНрдпрд╛
рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ Angular 8. Plus рдкрд░ рдХрд╛рдлреА рдмрдбрд╝реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рдПрдХ рджрд░реНрдЬрди рд╕реЗ рдЕрдзрд┐рдХ (React рдкрд░ рднреА) рдмрдирд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдкрд░ рдХреБрдЫ рдЫреЛрдЯреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИрдВред рд╕рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдВрдкрдиреА рдХреА рдЖрдВрддрд░рд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╣реА рд╢реИрд▓реА рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХрдорд╛рддреНрд░ рддрд╛рд░реНрдХрд┐рдХ рддрд░реАрдХрд╛ рдПрдХ рдШрдЯрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдирд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдк рдЬрд▓реНрджреА рд╕реЗ рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдк рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд░ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ - рдпрд╣ рдХреЛрдгреАрдп рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкрд╣рд▓рд╛ рд╡реНрдпрдХреНрддрд┐ рдирд╣реАрдВ рд╣реВрдВред Google рдкрд░ "рдХреЛрдгреАрдп рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛" рдХреЗ рд▓рд┐рдП рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдкрд╣рд▓реА рдЪреАрдЬрд╝ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╣реИ ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдХреЛрдИ рдкреНрд░рд▓реЗрдЦрди рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд░реАрдбрдореА рдореЗрдВ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ Microsoft рджреНрд╡рд╛рд░рд╛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЯреАрдо рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрдкрдХреЗ рдЬреЛрдЦрд┐рдо рдкрд░ рд╣реА рд╣реИред рдореИрдВ рдРрд╕реЗ рдЕрд╕реНрдкрд╖реНрдЯ рдкреИрдХреЗрдЬ рдХреЛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдиреА рдмрд╛рдЗрдХ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ @ рдХреЛрдгреАрдп-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ / рдХреЛрд░
рдирд┐рд░реНрдгрдп
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ DOM рдкреЗрдбрд╝ рдХрд╛ рдкреНрд░рдмрдВрдзрдиред рд╣рдо рдХрд┐рд╕реА рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рддрддреНрд╡ рдХреЛ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ DOM рдиреЛрдб рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
const Hello = () => <p>Hello, React!</p>; render(<Hello />, document.getElementById('#hello'));
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, render
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реИред рдпрд╣реА рд╣реИ, рдбреЛрдо рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдФрд░ рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдПрдХреАрдХрд░рдг рдореЗрдВ рдкрд╣рд▓рд╛ рдХрджрдо рдЙрдард╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред
рдЯреНрд░реЗрдирд┐рдВрдЧ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд░рд┐рдПрдХреНрдЯ рдХреЛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рджреМрд░рд╛рди рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╕реНрдерд┐рддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк createElement
рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди createElement
рдХреЛ рдХреЙрд▓рд┐рдВрдЧ createElement
рд▓рд┐рдП рд╕реАрдорд┐рдд createElement
, рддреЛ рдЖрдкрдХреЛ рдХреЛрдИ рднреА рдХрджрдо рдирд╣реАрдВ рдЙрдард╛рдирд╛ рдкрдбрд╝реЗрдЧрд╛, рд╕рдм рдХреБрдЫ рдмрд╕ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рд▓реЗрдХрд┐рди, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╣рдо JSX рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЦреЛрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдХреЛрдгреАрдп рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЬреЗрдПрд╕рдПрдХреНрд╕ рдХреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рд╕рдВрдХрд▓рдХ рдзреНрд╡рдЬ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ --jsx=react
рдпрд╛ tsconfig.json
рдореЗрдВ compilerOptions
рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкрдВрдХреНрддрд┐ "jsx": "react"
рдЬреЛрдбрд╝реЗрдВ "jsx": "react"
ред
рдПрдХрддрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдХреЛ рдХреЛрдгреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдЕрдВрджрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпрд╣реА рд╣реИ, рддрд╛рдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╡рд░реНрдХ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк DOM рддрддреНрд╡ рддрддреНрд╡ рдЯреНрд░реА рдореЗрдВ рд╕рд╣реА рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдЙрдард╛рдПрдВред
рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ render
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИред рд╕рд╛рде рд╣реА, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрддрд░ рдФрд░ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдкрд░ рдШрдЯрдХреЛрдВ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХ рдХреЛрдгреАрдп рдШрдЯрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЬреЛ рд░рд┐рдПрдХреНрдЯ рддрддреНрд╡ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдкреВрд░реЗ рддрд░реНрдХ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдЧрд╛ред
рдХреЛрдгреАрдп рдШрдЯрдХ рдХрд╛ рдХреЛрдб рдмреЗрд╣рдж рд╕рд░рд▓ рд╣реИред рдпрд╣ рдЦреБрдж рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдЦрд╛рд▓реА рдХрдВрдЯреЗрдирд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рд╕рдордп, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рддрддреНрд╡ рдХрд╛ рд░реЗрдВрдбрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ createElement
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ render
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЗрд╕реЗ Angular рд╕реЗ рдмрдирд╛рдП рдЧрдП DOM рдиреЛрдб рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХреЛрдИ рдЕрдиреНрдп рдЕрдВрдЧреБрд▓ рдШрдЯрдХ, рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВред
рдЗрдирдкреБрдЯ рдПрдХреАрдХрд░рдг
рдЖрдорддреМрд░ рдкрд░, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрддреНрд╡реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рднреА рдХрд╛рдлреА createElement
- рдЬрдм createElement
рдХреЙрд▓ рдХрд┐рдпрд╛ createElement
рддреЛ рдЖрдк рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдХреЛ createElement
рд╕реЗ рдШрдЯрдХ рдХреЛ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдм рдЖрдк name
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдХреЛрдгреАрдп рдШрдЯрдХ рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХ рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХреБрдЫ рдмрд╛рд╣рд░реА рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд▓рд╛рдЗрди рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рддреЛ рд░рд┐рдПрдХреНрдЯ рдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ рдФрд░ рд╣рдореЗрдВ рдПрдХ рдкреБрд░рд╛рдирд╛ рдбрд┐рд╕реНрдкреНрд▓реЗ рдорд┐рд▓реЗрдЧрд╛ред рдХреЛрдгреАрдп рдореЗрдВ рдПрдХ ngOnChanges
рдЬреАрд╡рди рдЪрдХреНрд░ ngOnChanges
рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдШрдЯрдХ рдорд╛рдкрджрдВрдбреЛрдВ рдФрд░ рдЙрд╕ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдо OnChanges
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
рдпрд╣ рдирдП рдкреНрд░реЙрдкреНрд╕ рд╕реЗ рдмрдирд╛рдП рдЧрдП рддрддреНрд╡ рдХреЗ рд╕рд╛рде render
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЦреБрдж рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдПрдЧрд╛ рдХрд┐ рдкреЗрдбрд╝ рдХреЗ рдХрд┐рди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдШрдЯрдХ рдХреЗ рдЕрдВрджрд░ рд╕реНрдерд╛рдиреАрдп рд╕реНрдерд┐рддрд┐ рдХреЛ рднреА рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЗрди рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдмрд╛рдж, рдХреЛрдгреАрдп-рдШрдЯрдХ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
<app-hello name="Angular"></app-hello> <app-hello [name]="name"></app-hello>
рдЕрджреНрдпрддрди рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдЖрдк рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рд░рдгрдиреАрддрд┐ рдХреА рдУрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЗрд╕ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред
рдЖрдЙрдЯрдкреБрдЯ рдПрдХреАрдХрд░рдг
рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд╣реБрдИ рд╣реИ - рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдШрдЯрдХреЛрдВ рдХреЗ рдЕрдВрджрд░ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ред рдЪрд▓реЛ @Output
рдбреЗрдХреЛрд░реЗрдЯрд░ рдХрд╛ @Output
рдФрд░ рдХреЙрд▓рдмреИрдХ рдХреЛ @Output
рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд╕ рдХрд░реЗрдВред
рд╣реЛ рдЧрдпрд╛ред рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддреЗ рд╣реИрдВред
<app-hello [name]="name" (click)="sayHello($event)"></app-hello>
рдкрд░рд┐рдгрд╛рдо рдПрдХ рдХреЛрдгреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдЕрдВрджрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЖрд╡рд░рдг рд╣реИред рдпрд╣ рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рднреАрддрд░ рдХреА рдШрдЯрдирд╛рдУрдВ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рдмрд╛рдд рдФрд░ ...
рдореЗрд░реЗ рд▓рд┐рдП, рдХреЛрдгреАрдп рдореЗрдВ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЪреАрдЬ рдЯреВ-рд╡реЗ рдбреЗрдЯрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ, ngModel
ред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рд╕рд░рд▓ рд╣реИ, рдмрд╣реБрдд рдХрдо рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдПрдХреАрдХрд░рдг рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рддрдВрддреНрд░ рдЖрдВрддрд░рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рд╕реБрдкрд░-рд╕рдмреЛрдкреНрдЯреАрдорд▓ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдЖрдк рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ ngModel
рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рд╕реБрдВрджрд░ рддрд░реАрдХреЗ рд╕реЗ ngModel
ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ ControlValueAccessor
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ( @angular/forms
рдкреИрдХреЗрдЬ рд╕реЗ) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдШрдЯрдХ рдореЗрдВ рдПрдХ рдирдпрд╛ рдкреНрд░рджрд╛рддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
import { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms'; const REACT_VALUE_ACCESSOR: any = { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => HelloComponent), multi: true }; @Component({ selector: 'app-hello', template: `<div #react></div>`, providers: [PREACT_VALUE_ACCESSOR], }) export class PreactComponent implements OnInit, OnChanges, ControlValueAccessor {
рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП writeValue
, writeValue
, registerOnChange
, registerOnTouched
рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рднреА рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред рд╣рдореЗрдВ рдЙрдирдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реИред
рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд░рд┐рдПрдХреНрдЯ рдЯреВ-рд╡реЗ рдбреЗрдЯрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореВрд▓реНрдп рдФрд░ рдХреЙрд▓рдмреИрдХ рджреЗрдВрдЧреЗред renderReactElement
рдореЗрдердб рдХреЛ renderReactElement
ред
рдФрд░ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХ рдореЗрдВ, рд╣рдо рдЗрд╕ рдореВрд▓реНрдп рдФрд░ рдХреЙрд▓рдмреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
export const Hello = ({ name, onClick, model }) => ( <div> <p>Hello, {name}!</p> <button onClick={onClick}>Say "hello"</button> <input value={model.value} onChange={e => model.onChange(e.target.value)} /> </div> );
рдЕрдм, рд╣рдордиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдВрдЧреБрд▓рд░ рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдХреЛ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рд╣реИред рдЖрдк рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕рд╛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред
<app-hello [name]="name" (click)="sayHello($event)" [(ngModel)]="name" ></app-hello>
рдкрд░рд┐рдгрд╛рдо
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рджрд┐рдЦрд╛рдП рдЧрдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рди рдХреЗрд╡рд▓ рдирд┐рд░рдВрддрд░ рдЖрдзрд╛рд░ рдкрд░ рдХреЛрдгреАрдп-рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реА рднреА рд░рд┐рдПрдХреНрдЯ-рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдзреАрд░реЗ-рдзреАрд░реЗ рдкреВрд░реЗ рдЖрд╡реЗрджрди рдХреЛ рднреА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рд╕реНрдЯрд╛рдЗрд▓ рдореБрджреНрджреЛрдВ рдкрд░ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рдЫреБрдЖред рдпрджрд┐ рдЖрдк рдХреНрд▓рд╛рд╕рд┐рдХ рд╕реАрдПрд╕рдПрд╕-рдЗрди-рдЬреЗрдПрд╕ рд╕рдорд╛рдзрд╛рди (рд╕реНрдЯрд╛рдЗрд▓-рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕, рдЗрдореЛрд╢рди, рдЬреЗрдПрд╕рдПрд╕) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдирд╣реАрдВ рдХрд░рдиреА рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЕрдзрд┐рдХ рдЙрддреНрдкрд╛рджрдХ рд╕рдорд╛рдзрд╛рди (рдПрд╕реНрдЯреНрд░реЛрдлрд░реНрдлрд╝, рд▓рд┐рдирд╛рд░рд┐рдпрд╛, рд╕реАрдПрд╕рдПрд╕ рдореЙрдбреНрдпреВрд▓) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдлрд╝реАрдЪрд░ рдХрд╣рд╛рдиреА - рдЕрдкрдиреЗ рдХреЛрдгреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ ред
рдПрдВрдЧреБрд▓рд░ рд╕реЗ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрднреА рднреА рд░рд┐рдПрдХреНрдЯ-рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдореЗрдВ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдПрдХ рд╕рд░рд▓ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рд░реИрдкрд░ рдШрдЯрдХ рдореЗрдВ рд╕реЗрд╡рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдкреНрд░реЙрдкрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд╕ рдХрд░реЗрдВред рдореБрд╢реНрдХрд┐рд▓ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдкрд░рдд рд▓рд┐рдЦреА рдЬрд╛рдП рдЬреЛ рдЗрдВрдЬреЗрдХреНрдЯрд░ рд╕реЗ рдЯреЛрдХрди рджреНрд╡рд╛рд░рд╛ рд╕реЗрд╡рд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧреАред рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ред
рдмреЛрдирд╕
рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдПрдВрдЧреБрд▓рд░ рдХреЗ 85KB рдХреЗ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рд▓рдЧрднрдЧ 40KB react
рдФрд░ react-dom
рдХреЛрдб react
рдЬрд╛рддрд╛ react
ред рдЗрд╕рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЧрддрд┐ рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рднрд╛рд╡ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рд▓рдШреБ рдкреНрд░реАрд░реЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдХрд╛ рд╡рдЬрди рдХреЗрд╡рд▓ 3KB рд╣реИред рдЗрд╕рдХрд╛ рдПрдХреАрдХрд░рдг рд▓рдЧрднрдЧ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред
tsconfig.json
рдПрдХ рдирдпрд╛ рд╕рдВрдХрд▓рди рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ - "jsxFactory": "h"
, рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдЖрдкрдХреЛ "jsxFactory": "h"
рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП h
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдм, import { h } from 'preact'
рдХреЛрдб рд╡рд╛рд▓реА рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ - import { h } from 'preact'
ред- рд╕рднреА рдХреЙрд▓
React.createElement
рдХреЛ React.createElement
рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ Preact.h
ред - рд╕рднреА рдХреЙрд▓
ReactDOM.render
рдХреЛ ReactDOM.render
рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ Preact.render
ред
рд╣реЛ рдЧрдпрд╛! рд░рд┐рдПрдХреНрдЯ рд╕реЗ рдкреНрд░реИрдХреНрдЯрд┐рд╕ рдХреА рдУрд░ рдкрд▓рд╛рдпрди рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдкрдврд╝реЗрдВред рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдИ рдорддрднреЗрдж рдирд╣реАрдВ рд╣реИрдВред
рдпреВрдкреАрдбреА 19.9.19 16.49
рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рд╡рд┐рд╖рдпрдЧрдд рд▓рд┐рдВрдХ - рдорд╛рдЗрдХреНрд░реЛ рдлреНрд░рдВрдЯреЗрдВрдб
UPD 20.9.19 14.30
рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рдПрдХ рдФрд░ рд╡рд┐рд╖рдпрдЧрдд рд▓рд┐рдВрдХ - рдорд╛рдЗрдХреНрд░реЛ рдлреНрд░рдВрдЯреЗрдВрдбреНрд╕