Myapp рдЫреБрдЯреНрдЯреА рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ


рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд╕рдореНрдорд╛рдирд┐рдд рджрд░реНрд╢рдХреЛрдВ рдореЗрдВ рд╡реЗ рднреА рд╣реЛрдВрдЧреЗ рдЬреЛ рдореБрдЭреЗ рд╕рдордЭреЗрдВрдЧреЗред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗрдм рдлреНрд░рдВрдЯреЗрдЬ рдХреЗ рд▓рд┐рдП рд▓реЛрдХрдкреНрд░рд┐рдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХреЗ рд╕рднреА рдкреНрд░рдЪреБрд░рддрд╛ рдореЗрдВ, рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд▓рдЧрднрдЧ рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рдореБрдЭреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреБрдХрд╕рд╛рди рдорд┐рд▓рддреЗ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рд╢рд╛рдВрддрд┐ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддреЗ рд╣реИрдВред рд╕рдм рдХреБрдЫ рд╣рдореЗрд╢рд╛ рдПрдХ рд░рд╕реАрд▓реЗ рддрд░реАрдХреЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ: рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЕрд╡рдзрд╛рд░рдгрд╛, рдзреНрд╡рдирд┐, рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, "рдЕрдВрдХ" рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдореЗрдВ ... рд▓реЗрдХрд┐рди рдлрд┐рд░, рд╕рдм рдХреБрдЫ, рдлрд┐рд░ рд╕реЗ, рдирд┐рд░рд░реНрдердХ рдирд┐рд░реНрднрд░рддрд╛, рд╕рддрд╣реА рд╕рдВрд╕реНрдерд╛рдУрдВ рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдЦреБрдж рдмрдирд╛рдИред рд╣рдореЗрдВ рдПрдХ рдирдпрд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╕реАрдЦрдиреЗ, рдирдП рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ, buzzwords рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╕реАрдЦрдиреЗ, рдХрдИ "рдЖрд╡рд╢реНрдпрдХ" рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХреА рдЬрд╛рддреА рд╣реИред рдареАрдХ рд╣реИ, рдореИрдВ рд╕рдм рдХреБрдЫ рдирдпрд╛ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдореБрдЭреЗ рд╕реНрдорд╛рд░реНрдЯ рд╢рдмреНрдж рдкрд╕рдВрдж рд╣реИрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдмрд╣реБрдд рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рд╣реВрдВ рдЬрдм рдмрд╕ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЛрдЧ рднреНрд░рд╛рдордХ рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реЛрдиреЗ рд▓рдЧрддреЗ рд╣реИрдВред рдЖрдк рд╢рд╛рдпрдж рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рдмрдпрд╛рдиреЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рдкрдврд╝ рдЪреБрдХреЗ рд╣реИрдВ, рдЬреЛ рдореЗрд░реА рддрд░рд╣, рдЗрд╕ рд╕рдм рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рд╕реЗ рдирд┐рд░рд╛рд╢ рд╣реИрдВ рдФрд░ рджреВрд╕рд░реЗ рдЪрд░рдо рдкрд░ рдЬрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ - рд╕рдм рдХреБрдЫ "рд╡реЗрдирд┐рд▓рд╛" рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдореЗрд░реЗ рд╕рд╛рде рддрдм рд╣реБрдЖ рдЬрдм рдореБрдЭреЗ Google рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рд╕рдХреНрд░рд┐рдп рднрд╛рдЧреАрджрд╛рд░реА рдХреЗ рд╕рд╛рде рдмрдирд╛рдИ рдЧрдИ рдкреЙрд▓рд┐рдорд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдирд┐рд░рд╛рд╢рд╛ рд╣реБрдИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореБрдЭреЗ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдкрд╕рдВрдж рдЖрдпрд╛, рдЗрд╕ рдЖрдВрджреЛрд▓рди рдХрд╛ рдЖрджрд░реНрд╢ рд╡рд╛рдХреНрдп "рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ!" рдерд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рдореЗрд░реЗ рд▓рд┐рдП рдерд╛: "рдЖрдкрдХреЛ рдЙрд╕ рдХреЛрдб рдореЗрдВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрд╡рдпрдВ рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХрд░реЗрдЧрд╛"ред рдкреЙрд▓рд┐рдорд░ рдЯреАрдо рдиреЗ рдордВрдЪ рдХреЗ рд╕реНрддрд░ рдкрд░ рдирдП рдорд╛рдирдХреЛрдВ рдФрд░ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж ред рд▓реЗрдХрд┐рди рдЬрдм рдЗрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ , рддреЛ рд╡реЗ рд╕реНрд╡рдпрдВ рдЕрдкрдиреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рдиреЗ рд▓рдЧреЗред рдФрд░ рдЕрдм рдЙрдирдХреА рдирдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА ( LitElement ) рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд╕реАрдзреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓реЛрдЧ рдорд╛рдирдХреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ ... рдореИрдВ LitElement рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реВрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реНрдкрд╖реНрдЯ рд╕рдВрдХреЗрдд рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдпреЗ рднрдЯрдХреЗ рд╣реБрдП рд▓реЛрдЧ рд╕рд╣реА рд░рд╛рд╕реНрддреЗ рдкрд░ рд▓реМрдЯ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЦреБрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реВрдВред рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдмреЗрд╣рддрд░ рд╣реИред

рдХреНрдпрд╛?


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

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

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

рдХреНрдпрд╛ рдХрд╣рдирд╛ рд╣реИ?


рдпрджрд┐ рдореИрдВ рдЦреБрдж рднреА рдЗрд╕реА рддрд░рд╣ рдХрд╛ рд▓реЗрдЦ рдкрдврд╝рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЖрдЧреЗ рдХреА рд░реБрдЪрд┐ рди рдЦреЛрдП, рддреЛ рдореИрдВ рдШрдЯрдХ рдХреЛрдб рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ:

import {HdElement} from '../../holiday/core/hd-element.js'; class MyComponent extends HdElement { constructor() { super(); this.state = { imageURL: 'images/photo.jpg', firstName: 'John', secondName: 'Snow', }; } } MyComponent.template = /*html*/ ` <style> :host { display: block; padding: 10px; background - color: #fff; color: #000; } </style> <img bind="src: imageURL" /> <div bind="textContent: firstName"></div> <div bind="textContent: secondName"></div> `; MyComponent.is = 'my-component'; 

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

рдореИрдВ рдЕрдиреНрдп рд▓рд╛рднреЛрдВ рдХреА рд╕реВрдЪреА рджреВрдВрдЧрд╛:

  • рджреЗрд╢реА рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рдирд┐рдХрдЯрддрд╛, рдиреНрдпреВрдирддрдо рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рд░
  • рдиреЗрдЯрд┐рд╡ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕: рдЖрдкрдХреЛ рдирдпрд╛ HTML рдФрд░ CSS рд╕реАрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
  • рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреБрдЫ рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдиреЛрдб_рдореЙрдбрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
  • рдЖрд╕рд╛рдиреА: рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд▓рд┐рдП рд▓рдВрдмрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ
  • рдХрд┐рдЯ рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрди, рдорд╛рд░реНрдЧ, рдПрдХ рдпреВрдЖрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╢рд╛рдорд┐рд▓ рд╣реИ: рдЖрдкрдиреЗ рд░реЗрдЧрд┐рд╕реНрддрд╛рди рдореЗрдВ рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛

рдореБрдЦреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рд▓реЗрдЦрди: https://holiday-js.web.app/

рдЬреАрд╡рди рдЪрдХреНрд░


рдЖрдЗрдП рдШрдЯрдХ рдЬреАрд╡рди рдЪрдХреНрд░ рдХреЗ рдЪрд░рдгреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ:

 import {HdElement} from '../../holiday/core/hd-element.js'; class LifecycleExample extends HdElement { constructor() { super(); //   : this.state = { name: '', bigName: '', }; /*   ,      DOM  "   ",       .    ,      "defineAccessor": */ this.defineAccessor('name', (name) => { // Some accessor code: this.setStateProperty('name', name); }); /*    ,      DOM               . */ } connectedCallback() { super.connectedCallback(); /*  .    DOM.               . */ } stateUpdated(path) { /*        : */ if (path === 'name') { this.setStateProperty('bigName', this.state.name.toUpperCase()); } } attributeChangedCallback(attributeName, oldValue, newValue) { /*  .      . */ super.attributeChangedCallback(attributeName, oldValue, newValue); } disconnectedCallback() { /*  .    DOM.              */ } } LifecycleExample.template = /*html*/ ` <div bind="textContent: name"></div> <div bind="textContent: bigName"></div> `; /*  HTML-,     : */ LifecycleExample.logicAttributes = [ //   ,         'name', ]; /*     CustomElements: */ LifecycleExample.is = 'lifecycle-example'; 

рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕


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

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

 <header> <slot name="header"></slot> </header> <div class="toolbar"> <slot name="toolbar"></slot> </div> <div class="content"> <slot></slot> </div> <footer> <slot name="footer"></slot> </footer> 

рд╕реНрд▓реЙрдЯ рдореЗрдВ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ:

 <my-component> <div slot="header">Header content</div> <toolbar-component slot="toolbar"></toolbar-component> <div>Content of the default slot...</div> <div slot="footer">Footer content...</div> </my-component> 

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

рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдбреЗрдЯрд╛ рдФрд░ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрд╛рдВрдзрдиреЗ рдХреЗ рд▓рд┐рдП, "рдмрд╛рдЗрдВрдб" рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 <div bind="textContent: content; onclick: on.clicked"></div> 

рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рдиреЛрдВ рдХреЛ рдмрд╛рдВрдзрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ "@" рдкреНрд░рддреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

 <div bind="@style: style">Content...</div> 

рдЖрдк рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: https://holiday-js.web.app/?templates

рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрди


рдШрдЯрдХ рдХреЗ рдЕрдВрджрд░:

 class MyComponent extends HdElement { constructor() { super(); //        : this.state = { content: 'Initial Content', style: 'color: #f00', on: { clicked: () => { console.log('Clicked!'); }, }, }; //       "setStateProperty": window.setTimeout(() => { //   : this.setStateProperty('content', 'Updated Content'); //   : this.setStateProperty({ 'content': 'Updated Content', 'style': 'color: #00f', }); }, 1000); } } 

рд╕рдВрдкреВрд░реНрдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕реНрддрд░ рдкрд░ рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, HdState рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:

 import {HdState} from '../../holiday/core/hd-state.js'; //   : HdState.subscribe('ui.loading', (val) => { console.log(val); }); //   : HdState.publish('ui.loading', true); // : HdState.publish({ 'ui.loading': true, 'ui.sidePanelActive': true, }); 

рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЗрд╕рдХреА рд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 HdState.applyScheme({ ui: { loading: { /*      ,       : */ type: Boolean, //    : value: false, }, sidePanelActive: { type: Boolean, value: false, }, }, user: { authorized: { type: Boolean, value: false, }, name: { type: String, value: null, //          : cache: true, }, }, }); 

рд╕рд░реНрдХрд┐рдЯ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд╛рд░реНрдХрд┐рдХ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореЗрдореЛрд░реА рд▓реАрдХ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╕рджрд╕реНрдпрддрд╛ рдХрд╛ рдирд┐рдкрдЯрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

 let subscription = HdState.subscribe('ui.loading', (val) => { console.log(val); }); window.setTimeout(() => { // Unsubscribe: subscription.remove(); }, 10000); 

рд░рд╛рдЬреНрдп рдкреНрд░рд▓реЗрдЦрди: https://holiday-js.web.app/?state

рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЙрдкрдХрд░рдг


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

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

рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕рд┐рдВрдЯрд▓реНрд╕ рдореЗрдВ HTML рд╕рд┐рдВрдЯреИрдХреНрд╕ рдФрд░ рдСрдЯреЛ-рдкреВрд░реНрддрд┐ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ VS рдХреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ lit-html рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: https://github.com/pushqrdx/vscode-inline-html

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

рдЙрддреНрдкрд╛рджрдХрддрд╛


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

  1. рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп (рдбрд╛рдЙрдирд▓реЛрдб)
  2. рдШрдЯрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕рдордп
  3. рдЗрди рдШрдЯрдХреЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп

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

рд╣рдо Holiday.js рдХреА рддреБрд▓рдирд╛ рдХрд┐рд╕рд╕реЗ рдХрд░реЗрдВрдЧреЗ? рдореИрдВрдиреЗ рджреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд┐рдпрд╛: рд░рд┐рдПрдХреНрдЯ (рдЬрд╣рд╛рдВ рдЗрд╕рдХреЗ рдмрд┐рдирд╛) рдФрд░ рд▓рд┐рдЯреНрд▓рдореЗрдВрдЯ (рдХреЛрд░ рдореЗрдВ рд╕рдорд╛рди рддрдХрдиреАрдХ)ред рдЖрдк рдЗрди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЛрдб рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

https://github.com/foxeyes/holiday-benchmark
https://github.com/foxeyes/lit-benchmark
https://github.com/foxeyes/react-benchmark

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

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

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рд╕рдорд░реНрдерди


рдирд╣реАрдВ, Internet Explorer рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдпрд╣ рдХреБрдЫ рдкреНрд░рдпрд╛рд╕реЛрдВ (11 рд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП) рдХреЗ рд╕рд╛рде рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕рдорд░реНрдерди рдХреА рдЕрд╕реНрд╡реАрдХреГрддрд┐ рдПрдХ рд░рд╛рдЬрд╕реА рд╕реНрдерд┐рддрд┐ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ IE рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдорд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╣рдорд╛рд░реА рд╢рдХреНрддрд┐ рдореЗрдВ рдЗрд╕ рдкрд░ рдпреЛрдЧрджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рджреВрд╕рд░реЗ, рдЬреЛ рд▓реЛрдЧ IE рд╕рдорд░реНрдерди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдЕрдХреНрд╕рд░ рдПрдХ рдЧрдВрднреАрд░ рддрд╛рд░реНрдХрд┐рдХ рдЧрд▓рддреА рдХрд░рддреЗ рд╣реИрдВ: рд╡рд░реНрддрдорд╛рди рдХреИрдиреАрдпреВрдЬрд╝ рдбреЗрдЯрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдХреБрд▓ рдЯреНрд░реИрдлрд╝рд┐рдХ рдореЗрдВ IE рдХреА рд╣рд┐рд╕реНрд╕реЗрджрд╛рд░реА, рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП ~ 1.6% рд╣реИред рдФрд░ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдмреНрд░рд╛рдЙрдЬрд╝рд░, рдЬреЛ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдорд╛рд░реНрдЬрд┐рди рджреНрд╡рд╛рд░рд╛ рдмрд╛рдХреА рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд╣ рд╣реИ рдореЛрдмрд╛рдЗрд▓ рдХреНрд░реЛрдо (~ 35%)ред рдЗрд╕рд▓рд┐рдП, IE рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдЬрд╛рдирдмреВрдЭрдХрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдРрд╕реА рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдкреВрд░реНрдг рдЕрдиреБрдХреВрд▓рдирд╢реАрд▓рддрд╛ рдФрд░ рдЧрддрд┐рд╢реАрд▓рддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН, рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЕрд▓реНрдкрд╕рдВрдЦреНрдпрдХ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЬреАрд╡рди рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддреА рд╣реИред рдпрд╛ рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдФрд░ рд░рдЦрд░рдЦрд╛рд╡ рдХреА рд▓рд╛рдЧрдд рдореЗрдВ рдХрд╛рдлреА рд╡реГрджреНрдзрд┐ рдХрд░реЗрдВред рддреАрд╕рд░рд╛, рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ, рд╣рд╛рд▓ рдХреЗ рджрд┐рдиреЛрдВ рдореЗрдВ, рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡рд┐рдВрдбреЛрдЬ 7 рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддрд╛рдХрд┐ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ IE рдпрд╛рддрд╛рдпрд╛рдд рдХрд╛ рдЕрдиреБрдкрд╛рдд рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рддреЗрдЬреА рд╕реЗ рдШрдЯ рдЬрд╛рдПред рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдБ рдХрд┐ рдРрд╕реЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрдм IE рд╕рдорд░реНрдерди рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕реЗ рдорд╛рдорд▓реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рджреБрд░реНрд▓рдн рд╣реИрдВ рдЬрд┐рддрдирд╛ рд╣рдо рд╕реЛрдЪрддреЗ рдереЗред

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

рдЕрддрд┐рд╕реВрдХреНрд╖реНрдорд╡рд╛рдж


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

рдпреЛрдЬрдирд╛рдУрдВ


рдпрджрд┐ рдЖрдк рдЗрд╕ рдЬрдЧрд╣ рдкрд░ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдореЗрд░рд╛ рдкреНрд░рдпрд╛рд╕ рдкрд╣рд▓реЗ рд╣реА рд╡реНрдпрд░реНрде рд╣реЛ рдЪреБрдХрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдк Holiday.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрдо рд╕реЗ рдХрдо рд╡реЗрдм рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЕрдкрдиреЗ рд▓рд┐рдП рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдпрд╣ рд╕рд╛рдордЧреНрд░реА рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рднрд╡рди рдХреА рд╢реБрд░реБрдЖрдд рдХрд╛ рдкреНрд░рддреАрдХ рд╣реИред рдореБрдЭреЗ рд░рдЪрдирд╛рддреНрдордХ рдЪрд░реНрдЪрд╛, рдЖрд▓реЛрдЪрдирд╛, рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ, рдкреБрд▓рдХреНрд░реЗрд╕реНрдЯ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, GHHub рдкрд░ рд╕рд┐рддрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЦреБрд╢реА рд╣реЛрдЧреАред рдмреЗрд╢рдХ, рдореИрдВ рд╕рднреА рдкрд╣рд▓реБрдУрдВ рдХреЛ рдирд╣реАрдВ рдЫреВ рд╕рдХрддрд╛ рдерд╛, рдФрд░ рдореБрдЭреЗ рдЖрдкрдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЕрдм рддрдХ, рдореИрдВрдиреЗ рдЕрдХреЗрд▓реЗ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рдореБрдЦреНрдп рдХрд╛рдо рдФрд░ рдкрд╛рд▓рддреВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░, рдкреНрд░рд▓реЗрдЦрди, рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рд╕рд╣рд┐рдд рдЕрдХреЗрд▓реЗ рд╕рдм рдХреБрдЫ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ:

  • рдЕрдиреНрдп рд▓реЛрдХрдкреНрд░рд┐рдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдЪреМрдЦрдЯреЗ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рддреБрд▓рдирд╛ред
  • Puppeteer рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдиреНрдпреВрдирддрдо рдФрд░ рд▓рдЪреАрд▓рд╛ рдкрд┐рдВрдЧрдкреЛрдВрдЧ рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдг
  • рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдореВрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬрдирд░реЗрдЯрд░ (рд╕реНрдЯрд╛рд░реНрдЯрд░ рдХрд┐рдЯ)
  • рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдФрд░ рд╡рд┐рдХрд╛рд╕

рдореИрдВ рдЕрдкрдиреА рдЙрдВрдЧрд▓рд┐рдпрд╛рдВ рдкрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ, "рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ" рджрдмрд╛рдПрдВ ...

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


All Articles