New Odnoklassniki рдлреНрд░рдВрдЯреЗрдВрдб: рдЬрд╛рд╡рд╛ рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ред рднрд╛рдЧ рджреНрд╡рд┐рддреАрдп



рд╣рдо рдЗрд╕ рдХрд╣рд╛рдиреА рдХреЛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐, рдХреИрд╕реЗ Odnoklassniki рдХреЗ рдЕрдВрджрд░, GraalVM рдХреА рдорджрдж рд╕реЗ , рд╣рдо рдЬрд╛рд╡рд╛ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рджреЛрд╕реНрдд рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реА рд╡рд┐рд░рд╛рд╕рдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдкреНрд░рдгрд╛рд▓реА рдХреА рдУрд░ рдкрд▓рд╛рдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред

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

рдЕрдЧрд░ рдЖрдкрдиреЗ рдкрд╣рд▓рд╛ рднрд╛рдЧ рдирд╣реАрдВ рдкрдврд╝рд╛ рд╣реИрдореИрдВ рдЗрд╕реЗ рдХрд░рдиреЗ рдХреА рдЕрддреНрдпрдзрд┐рдХ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рдЗрд╕рд╕реЗ рдЖрдк Odnoklassniki рдореЗрдВ рд╕рд╛рдордиреЗ рд╡рд╛рд▓реЗ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗрдВрдЧреЗ рдФрд░ рдЗрд╕рдХреА рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ 13 рд╡рд░реНрд╖реЛрдВ рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬрдорд╛ рд╣реБрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╣рд▓ рдЦреЛрдЬрдиреЗ рдХреЗ рд░рд╛рд╕реНрддреЗ рдкрд░ рдЪрд▓реЗрдВрдЧреЗ, рдФрд░ рдмрд╣реБрдд рд╣реА рдЕрдВрдд рдореЗрдВ рдЖрдк рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдирд┐рд░реНрдгрдп рдХреЗ рд╕рд░реНрд╡рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рддрдХрдиреАрдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рд░реВрдмрд░реВ рд╣реЛрдВрдЧреЗред

рдпреВрдЖрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди


UI рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рд╕рдмрд╕реЗ рдЙрдиреНрдирдд рдЯреВрд▓ рдЪреБрдирд╛: Mobx, CSS Modules, ESLint, TypeScript, Lerna рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░реЗрдВред рдпрд╣ рд╕рдм Webpack рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛


рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдкрд┐рдЫрд▓реЗ рднрд╛рдЧ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрд░рдорд┐рдХ рдкреНрд░рд╡рд╛рд╕рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо DOM рддрддреНрд╡реЛрдВ рдореЗрдВ рд╕рд╛рдЗрдЯ рдкрд░ рдирдП рдШрдЯрдХреЛрдВ рдХреЛ рдХрд╕реНрдЯрдо рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдирдП UI рд╕реНрдЯреИрдХ рдХреЗ рдЕрдВрджрд░ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рдЬрдмрдХрд┐ рд╢реЗрд╖ рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдпрд╣ DOM рддрддреНрд╡ рдХреА рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛ред рдЗрд╕рдХреА рдПрдкреАрдЖрдИред рдЗрди рддрддреНрд╡реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред

рдпрд╣ рдХреНрдпрд╛ рд╣реИ? рдЕрдВрджрд░ рдПрдХ рд╢рд╛рдВрдд, рдлреИрд╢рдиреЗрдмрд▓, рдЖрдзреБрдирд┐рдХ рдПрдорд╡реАрд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд░рд┐рдПрдХреНрдЯ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдорд╛рдирдХ рдбреЛрдо рдПрдкреАрдЖрдИ рдХреЛ рдмрд╛рд╣рд░ рдХреА рдУрд░ рдкреНрд░рджрд╛рди рдХрд░ рд░рд╣рд╛ рд╣реИ: рдЗрд╕ рдбреЛрдо рддрддреНрд╡, рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ, рдФрд░ рдШрдЯрдирд╛рдУрдВ рдкрд░ред



рдРрд╕реЗ рдШрдЯрдХреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрдВрддреНрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рд╡рд╣ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ? рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдЕрдкрдиреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЖрд╡реЗрджрди рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░реЗ, рдпрд╣ рдШрдЯрдХ рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ DOM рдиреЛрдб рдореЗрдВ рдмрд╛рдВрдзрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рджреЛ рдШрдЯрдХ рднреА рд╣реИрдВ (рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП) рдЬреЛ рдЗрди рдШрдЯрдХреЛрдВ рдХреЛ рдЦреЛрдЬ рдФрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдкреВрд░реА рд╕рд╛рдЗрдЯ рд░рд┐рдПрдХреНрдЯ рдкрд░ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рддреЛ рдЖрдорддреМрд░ рдкрд░ рд╕рд╛рдЗрдЯ рдШрдЯрдХ рдХреЛ рдкреГрд╖реНрда рдХреЗ рдореВрд▓ рддрддреНрд╡ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдШрдЯрдХ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рдХрд┐ рдмрд╛рд╣рд░ рдХреНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЬреЛ рдЕрдВрджрд░ рд╣реИ рд╡рд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред

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

рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдПрдХ рдШрдЯрдХ рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдкреБрд░рд╛рдиреА рд╕рд╛рдЗрдЯ рдХрд╛ рдЗрдВрдЬрди рдЗрд╕ рдШрдЯрдХ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди, рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХреА рдЬрд╛рддреА рд╣реИред

{
    "events-calendar": {
        "bundleName": "events-calendar",
        "js": "events-calendar-h4h5m.js",
        "css": "events-calendar-h4h5m.css"
    }
}


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

<events-calendar	data-module="react-loader"
			data-bundle="events-calendar.js"
			date=".."
			marks="[{..}]"
			тАж
/>


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

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

рдХреЛрдб рдХреИрд╕реЗ рдЪрд▓рд╛рдПрдВ?


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

рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реЗрдмрдкреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдПрдХрддреНрд░ рдХрд░рдирд╛, рдЬреЛ рдЦреБрдж рд╣реА рд╕рдм рдХреБрдЫ рдкреАрд╕рддрд╛ рд╣реИ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдмрдВрдбрд▓ рдХреЗ рдмрдВрдбрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрддрд╛ рд╣реИред рдФрд░ GraalVM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?



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

рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк - рдЖрдк рдмрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХрддреНрд░ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рд╕рд░реНрд╡рд░ рдХреЛрдб рдкрд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдХреЛ рдХрдИ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реЗрдВрдбрд░ рдХреЗ рд▓рд┐рдП рд░реЗрдВрдбрд░рдЯреЙрд╕реНрдЯреНрд░рд┐рдВрдЧ () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдШрдЯрдХ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдкрд░ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ ReactDOM.render ()ред рдпрд╛ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рд╕реЗ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг: рд╕рд░реНрд╡рд░ рдкрд░ рдЧреНрд░рдВрдереЛрдВ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдпрд╣ рдЬреЗрдПрд╕ рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛрдЧрд╛ред

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



рд▓реЗрдХрд┐рди рджреЛ рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓ рджреЛ рдЕрд╕реЗрдВрдмрд▓реА рд╣реИрдВред рд╣рд░ рдмрд╛рд░, рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рд╕рдм рдХреБрдЫ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╕рдорд░реНрдерди рдореЗрдВ рд▓рдВрдмрд╛ рдФрд░ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕рдм рдХреБрдЫ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдПрдХрддреНрд░ рд╣реЛ рдЬрд╛рдПред

рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ JS рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП Webpack рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди


рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╣рд▓ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреМрди рд╕реЗ рд╣рд┐рд╕реНрд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:



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

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

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

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


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

module.exports = [{
  entry: './vendors.js',
}, {
  entry: './core.js'
}, {
 entry: './app.js'
}];


рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рдореЗрдВ рдЙрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХреЛрдб, рдЬрд┐рди рдкрд░ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдХреА рдирдХрд▓ рдХреА рдЬрд╛рдПрдЧреА:



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

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



рдлрд┐рд░, рд╡реЗрдмрдкреИрдХ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рджреМрд░рд╛рди, DllPlugin рдХреЛрд░ рдХреЛ рдХреБрдЫ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рджреЗрдЦреЗрдЧрд╛ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рдХреНрд░реЗрддрд╛ рдореЗрдВ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдХреЛрд░ рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдмрд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдбрд╛рд▓ рджреЗрдЧрд╛ред

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

рд╕рдВрд╕рд╛рдзрди рд╡рд┐рддрд░рдг


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

рдпрджрд┐ рдкрд╣рд▓реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдЖрдкрдХреЛ рдШрдЯрдХ рдореЗрдВ рдкрд╛рда рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЖрдк рдкрд╛рда рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

const pkg = l10n('smiles');

<div>
    : { pkg.getText('title') }
</div>


рд╕рд░реНрд╡рд░ рдкрд░ рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рд░реНрд╡рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рддреНрд╡рд░рд┐рдд рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рднреА рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рдХреИрд╢ рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реИред

GraalVM рдореЗрдВ рдПрдХ рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд░ рдШрдЯрдХреЛрдВ рдореЗрдВ рдЧреНрд░рдВрде рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ?

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

public class ServerMethods {
    тАж
    
    /**
     *     
     */
    public String getText(String pkg, String key) {
        тАж
    }
    
    тАж
}


рдлрд┐рд░ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрджрд░реНрдн рдореЗрдВ рд░рдЦреЗрдВ:

//     Java   
js.putMember("serverMethods", serverMethods);


рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕рд░реНрд╡рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ, рд╣рдо рдХреЗрд╡рд▓ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ:

function getText(pkg: string, key: string): string {
    return global.serverMethods.getText(pkg, key);
}


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

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



рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрд╡реЗрджрди рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдм рдХреБрдЫ рдбрд╛рдЙрдирд▓реЛрдб рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ-рдХрд░рддреЗ рдердХ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рд╡рд┐рдзрд┐ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред

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

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

рд╣рдордиреЗ рдПрдХ рд╕рдордЭреМрддреЗ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдореЗрдВ рдЧреНрд░рдВрдереЛрдВ рдХреЗ рдкреИрдХреЗрдЬ рдХреЛ l10n () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкреИрдХреЗрдЬ рдирд╛рдо рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд╛рдмреНрджрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ:

const pkg = l10n('smiles');

<div>
    { pkg.getLMsg('title') }
</div>


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

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

{
    "events-calendar": {
       "pkg":  [
           "calendar",
           "dates"
       ],
       "cfg":  [
           "config1",
           "config2"
       ],
       "bundleName":  "events-calendar",
       "js":  "events-calendar.js",
       "css":  "events-calendar.css",
    }
}


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

рдирдпрд╛ рдореЗрдВ рдкреБрд░рд╛рдирд╛ рдХреЛрдб


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



рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ?

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


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

export class OldCodeBase<T> extends React.Component<T> {

    ref: React.RefObject<HTMLElement> = React.createRef();

    componentDidMount() {
        //       DOM
        this.props.activate(this.ref.current!); 
    }

    componentWillUnmount() {
        //       DOM
        this.props.deactivate(this.ref.current!); 
    }

    shouldComponentUpdate() {
        // React     , 
        //   React-. 
        //     .
        return false;
    }

    render() {
        return (
            <div ref={this.ref}></div>
        );
    }
}


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

рд╕рд░реНрд╡рд░ рдкрд░ рдкреБрд░рд╛рдирд╛ рдХреЛрдб рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ


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

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

<cool-app users="[1,2,3]" />


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

<cool-app>
    <ui:part id="old-code">
        <div>old component</div>
    </ui:part>
</cool-app>


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

render() {
    return (
        <div>
            <UiPart id="old-code" />
        </div>
    );
}


рд╕рд░реНрд╡рд░ рдЗрдВрдЬрди рдЗрд╕ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ <ui-part> рдЯреИрдЧ рдореЗрдВ рд╕реНрд▓реЙрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдлреНрд░реЗрдо рдХрд░рддрд╛ рд╣реИ, рдбреЗрдЯрд╛-рдкрд╛рд░реНрдЯ-рдЖрдИрдбреА = "рдкреБрд░рд╛рдиреЗ-рдХреЛрдб" рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред

<cool-app>
    <div>
        <ui-part data-part-id="old-code">
            old code
        </ui-part>
    </div>
</cool-app>


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

<cool-app>
    <template>
        <ui-part data-part-id="old-code">
            old code
        </ui-part>
    </template>
</cool-app>


рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ? рдХреНрд▓рд╛рдЗрдВрдЯ рдЗрдВрдЬрди рдмрд╕ рдШрдЯрдХ рдХреЛрдб рдХреЛ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИ, <ui-part> рдЯреИрдЧ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдирдХреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмрд╛рдХреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд░реЗрдВрдбрд░рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред

var tagName = 'cool-app';
var reactComponent = components[tagName];
reactComponent.render({
       tagName: tagName,
       attrs: attrs,
       parts: parts,
       node: element
});


рдШрдЯрдХ рдХрд╛ рдХреЛрдб рдЬреЛ рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд╛рди рдкрд░ рд╕реНрд▓реЙрдЯреНрд╕ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

export class UiPart extends OldCodeBase<IProps> {

	render() {
		const id = this.props.id;
		const parts = this.props.parts;

		if (!parts.hasOwnProperty(id)) {
			return null;
		}

		return React.createElement('ui-part', {
			'data-part-id': id,
			ref: this.ref,
			dangerouslySetInnerHTML: { __html: parts[id] }
		});
	}
}


рдЗрд╕реА рд╕рдордп, рдпрд╣ рдУрд▓реНрдбрдХреЛрдбреЛрдбреЗ рдХреНрд▓рд╛рд╕ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рдЬреЛ рдкреБрд░рд╛рдиреЗ рдФрд░ рдирдП рд╕реНрдЯреИрдХ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред



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

рдпрд╣ рдЖрдкрдХреЛ рд╕рд╛рдЗрдЯ рдШрдЯрдХреЛрдВ рдХреЛ рдзреАрд░реЗ-рдзреАрд░реЗ рдПрдХ рдирдП рд╕реНрдЯреИрдХ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдмрд╕ рдпрд╣ рдирдИ рд╕реАрдорд╛ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ред

рд╕рд╛рд░рд╛рдВрд╢


рд╣рд░ рдХреЛрдИ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реИ рдХрд┐ GraalVM рдХрд┐рддрдиреА рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред Odnoklassniki рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд░рд┐рдПрдХреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдкрд░реАрдХреНрд╖рдг рдХрд┐рдПред

рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рд╡рд╛рд░реНрдо рдЕрдк рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд▓рдЧрднрдЧ 1 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рд▓реЗрддрд╛ рд╣реИред

рдЕрд╡рдпрд╡ (рдлрд┐рд░ рд╕реЗ рдЧрд░реНрдо рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж) - 0.5 рд╕реЗ 6 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рддрдХ, рдЙрдирдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ред

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

рдЖрдкрдиреЗ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛?



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


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

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


All Articles