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

рдЕрдзреНрдпрдпрди рдХреА рдПрдХ рд╡рд┐рдзрд┐ рдиреЗ рдореБрдЭреЗ рдХрдИ рдЬрдЯрд┐рд▓ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдФрд░ рдпрд╣ рдЗрд╕ рддрдереНрдп рдкрд░ рдЙрдмрд▓рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬрд┐рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдЬреНрдЮрд╛рдд рдЬрд╛рдирд╡рд░ рдорд┐рд▓ рдЬрд╛рдП рдЬреЛ рдХрдо рд╕реЗ рдХрдо рдереЛрдбрд╝рд╛ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рд╣рдж рддрдХ рдЗрд╕рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд╕рдорд╛рди рд╣реИред
рдореБрдЭреЗ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ рдмреИрдХ-рдПрдВрдб рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдпрд╣ рднреА рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдорд╛рдЗрдХреНрд░реЛрдлреНрд░рд╛рдорд╡рд░реНрдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕рдиреЗ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдЬреЗрдПрд╕ рд╕реАрдЦрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╣реИред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореЙрдбреНрдпреВрд▓ / рдШрдЯрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рдкреНрд░реЗрд░рдгрд╛ рд╣реИред рдмреИрдХрдПрдВрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реНрд╕ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ, JSON рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рддрд░рд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдбреЗрдЯрд╛, рдЙрдиреНрд╣реЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЬрд╣рд╛рдВ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рд╡рд╣рд╛рдВ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░ рдЬреЛ рдХреБрдЫ рднреА рдЖрдк рдЙрдирдХреЗ рд╕рд╛рде рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рдХрд░реЗрдВред рд╕рдмрд╕реЗ рдЕрдВрдд рдореЗрдВ, рд╕рдмрд╕реЗ рдЖрджрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЖрдкрдХреЛ рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдПрдЪрдЯреАрдПрдордПрд▓ рддрддреНрд╡реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрдирдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╕рд╛рде рд╣реА рдЯреЗрдХреНрд╕реНрдЯ рдиреЛрдбреНрд╕ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪреМрдЦрдЯреЗ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдЖрд╕рд╛рди рдмрдирд╛рдУред
рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдирд╛ PHP-Slim-Framework рд▓рд┐рдЦрд╛, рдЬреЛ рдореВрд▓ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ PHP рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдореЗрд░реА рдорджрдж рдХрд░рддрд╛ рд╣реИред рдЖрдЬ рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рд░рд┐рдПрдХреНрдЯрдЬрд╕ рд╡рд┐рдХрд╛рд╕ рдХреА рдЙрддреНрдкрддреНрддрд┐ рдХреИрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХреАред рдореИрдВрдиреЗ рдХреЛрдб рдХреА 135 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦреА рд╣реИ, рдЗрд╕реЗ bots.js рдХрд╣рд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдПрдХ рдШрдЯрдХ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рднреА рдХреБрдЫ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЙрд╕реЗ ReactKids рдХрд╣рд╛ред
рдпрд╣ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдШрдЯрдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП, рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдХрд┐ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдирд┐рд░реНрднрд░рддрд╛ рди рд╣реЛред
HTML рдорд╛рдирдХ рд╕рдВрд░рдЪрдирд╛:
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>HelloReactKids</title> <link href="style.css" rel="stylesheet"> </head> <body> <div id="root"></div> <script src="js/bots.js"></script> <script src="js/pict.js"></script> <script src="js/navbar.js"></script> <script src="js/label.js"></script> <script src="js/button.js"></script> <script src="js/app.js"></script> </body> </html>
рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП, рдЖрдИрдбреА = рд░реВрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдФрд░ bots.js рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, рдлрд┐рд░ рдШрдЯрдХреЛрдВ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ (рдпрд╛ рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦреЗрдВ) рдФрд░ рдЗрд╕реЗ рдРрдк .js. рдореЗрдВ рдЪрд▓рд╛рдПрдВред
ReactKids рдореЗрдВ рдШрдЯрдХ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
function Button(attr) {
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдШрдЯрдХ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ params рдХреЛ attr рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдПрдЯрд░ рдЙрдкрдпреЛрдЧреА рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЦреИрд░, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЬреЛ рд▓реЛрдЧ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рд╡реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЙрдирдХреА рдмреЗрдЯреА рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдбреЗрдЯрд╛ "рдХрдо" рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдпрд╣реА рд╣реИ, рдПрдХ рдШрдЯрдХ рдПрдХ рдШрдЯрдХ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдШрдЯрдХ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реА рддрд░рд╣ рдПрдХ рдШрдЯрдХ рдЬрдм рддрдХ рдХрд┐ рдХреЛрдИ рдмрдЪреНрдЪрд╛ рди рд╣реЛред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд░реНрд╡рд░ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреИрдХрдПрдВрдб рдХреЗ рдЕрдиреБрд░реЛрдз рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рднреЗрдЬреЗ рдЧрдП рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВред
рдЬрдм рд╕рд░реНрд╡рд░ рд╡рд╛рдкрд╕ JSON (рдЖрдорддреМрд░ рдкрд░ рдкрд╛рда рдореЗрдВ) рднреЗрдЬрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ JS рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдХрд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдорд╛рд░реЗ рдмрдЪреНрдЪреЗ рдХреЗ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдФрд░ рдПрдЯрд░ рдореЗрдВ рдкреИрд░рд╛рдореЗрдЯреНрд╕ рд╣реИрдВред
Attr рдореЗрдВ, рдЖрдк рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╕рдВрдкреВрд░реНрдг JSON рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд░рдЯрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдХреЗрд╡рд▓
рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рд╕рдВрднрд╡рддрдГ, рдЕрдиреНрдп рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдкреВрд░рдХ рд╣реИред
рдЕрдЧрд▓рд╛, рд╣рдо рд╡рдпрд╕реНрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рддрд░реНрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ - рдлрд╝рдВрдХреНрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╣рдо рдПрдЯрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдиреНрдп рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдорд╛рдорд▓реЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рдЖрдкрдХреЛ рдПрд▓рдПрдо () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди bots.js. рдореЗрдВ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдХреЙрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- рдЯреИрдЧ рдХрд╛ рдирд╛рдоред
- рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд╕реНрддреБ (рдЬреЗрдПрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ)
- рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБред
- рдкрд╛рда, рдПрдХ рдЕрдиреНрдп рдЯреИрдЧ рдпрд╛ рдШрдЯрдХ (рдмрдЪреНрдЪрд╛) рдпрд╛ рдХреБрдЫ рднреА рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред
App.js рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:
var attr = { labelContent: "Hello React Kids", labelButton: "This button", } rend(document.getElementById("root"), App(attr)) function App(attr) { return elem( "div", { fontFamily: "segoe ui", color: "gray", textAlign: "center", }, { id: "app", }, [ Navbar(attr), Pict(attr), Label(attr), Button(attr), ] ) }
рдпрд╣рд╛рдВ рдХреБрдЫ рднреА рдЕрд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ:
function App(attr) { var cpic1 = CirclePict({id: "img1", src: "./img/img1.jpg", height: "200px"}) var cpic2 = CirclePict({id: "img1", src: "./img/img2.jpg", height: "200px"}) var cpic3 = CirclePict({id: "img1", src: "./img/img3.jpg", height: "200px"}) var txt1 = " . ."; var txt2 = " , ."; return elem( "div", { fontFamily: "segoe ui", color: "gray", }, { id: "app", }, [ Pict({id: "logo", src: "./img/logo.png", height: "90%"}), Text({id: "info", text: "you number", direction: "right"}), Label(attr), Outer({id: "outer1", content: [cpic1, cpic2, cpic3]}), Text({id: "txt1", text: txt1, width: "450px"}), Button(attr), Label({id: "lbl2", labelContent: " "}), Text({id: "txt2", text: txt2, width: "650px", direction: "center"}), RoundPict({id: "well", src: "./img/well.jpg", height: "280px", width: "550"}) ] ) }
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдордиреЗ рдмрд╛рд╣рд░реА 3 рдШрдЯрдХ рдореЗрдВ CirclePict рдШрдЯрдХ рдХреЛ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рд╣реИред
рдмреЗрд╢рдХ, рдмрдЪреНрдЪреЛрдВ рдиреЗ JSX рдХреА рдХрдореА рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЖрд▓рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд╣рдо рдЬреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЙрд╕реЗ рдмрд╕ рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, JSX рдЯреИрдЧ рдЕрднреА рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВред
рдЕрдм рдЖрдкрдХреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдпрд╣ рдЕрдм bots.js. рдореЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдкреВрд░реЗ 3 рдХрд╛рд░реНрдп рд╣реЛрддреЗ рд╣реИрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрд▓рдПрдо () рдФрд░ рд╕реЗрдЯрдЕрдЯреНрд░реНрд░ (), рдкрд╣рд▓рд╛ рдЬреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░рд╛ рдШрдЯрдХ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд░реЗрдВрдбрд░ () рдХреЛ app.js. рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
function elem(elt, style, attr, item) { if(elt) {
рдлрд╝рдВрдХреНрд╢рди рдЙрд╕реА рдХреНрд░рдо рдореЗрдВ рдЗрд╕реЗ рджрд┐рдП рдЧрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ:
- рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЯреНрд░реА рдореЗрдВ рдПрдХ рдШрдЯрдХ рдмрдирд╛рдПрдБред
- рдЗрд╕рдореЗрдВ рд╢реИрд▓рд┐рдпрд╛рдБ рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВред
- рдЬрд┐рдореНрдореЗрджрд╛рд░ рдмрддрд╛рддреЗ рд╣реИрдВред
- рдкрд╛рда рдпрд╛ рдЕрдиреНрдп рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдмрд╛рд▓ рддрддреНрд╡ рдЬреЛрдбрд╝рдирд╛ред
рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдЙрдирдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рднреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдШрдЯрдирд╛ рд╣реИ рдФрд░ рд╣рдо рдЗрд╕ рдкрд░ рдПрдХ рд╡рд╛рдпрд░рдЯреИрдк рд▓рдЯрдХрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдШрдЯрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдХреЗрддрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИред
рдпрд╣ рдЗрд╕ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╕реЗрдЯрдЖрд░реНрдЯ рдХрд╣рддреЗ рд╣реИрдВ (), рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрд╡рдпрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рдПрдЯрд░ рдХреЗ рд╕рд╛рде рдкрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╡рд╣рд╛рдБ рдПрдХ рдмрд╛рдд рд╣реИ рд▓реЗрдХрд┐рди - рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП attr рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЖрдкрдХреЛ id рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреА рд╣реЛрдЧреА, рдЕрдиреНрдпрдерд╛, рдЗрд╕реЗ setArr рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╡рд╣ рдЖрдИрдбреА рд╕реЗ рдЙрд╕реЗ рдбреЛрдо рдореЗрдВ рдкрд╛рддрд╛ рд╣реИред
рд╕реЗрдЯрдЖрд░реНрдЯ () рдХреЗ рд▓рд┐рдП, рд╕рдм рдХреБрдЫ рд░рд┐рдПрдХреНрдЯ рд╕реЗ рднреА рдмрджрддрд░ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╛ рд▓рдЧрднрдЧ рдкрд░реНрдпрд╛рдкреНрдд)ред
function setAttr(update, slow) { if(slow) { var replace = document.getElementById(update.id) var opamax = 0.99 var opaint = 0.01 var outslow = setInterval(function() { opamax = opamax - opaint if(opamax <= 0) { clearInterval(outslow) update.style.opacity = opamax replace.parentNode.replaceChild(update, replace) var inslow = setInterval(function() { opamax = opamax + opaint update.style.opacity = opamax if(opamax >= 1) { clearInterval(inslow) } }, slow) } replace.style.opacity = opamax }, slow) } else { var replace = document.getElementById(update.id) replace.parentNode.replaceChild(update, replace) } }
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдпрд╣рд╛рдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЯреНрд░реА рдФрд░ рдПрдХ рдЕрдиреНрдп рд▓реБрдкреНрдд рд╣реЛрддреА рдкреНрд░рднрд╛рд╡ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХрд░рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдпрд╣ рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдХреЛрдб рдлрд╝рдВрдХреНрд╢рди рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рди рдХрд┐ рд╣реЗрд▓реЛрд╡рд░реНрд▓реНрдбред
рд╣рдорд╛рд░реЗ рдмрдЪреНрдЪреЛрдВ рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рд╕рдмрд╕реЗ рдардВрдбреА рдЪреАрдЬ рд╣реИ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдлрдВрдХреНрд╢рди:
function rend(root, elem) { root.appendChild(elem) }
рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдиреМрд╕рд┐рдЦрд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рд░рд┐рдПрдХреНрдЯ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рдордиреЛрд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд░реВрдк рд╕реЗ рд╕реАрдЦрдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕реИрдХрдбрд╝реЛрдВ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдФрд░ рдХреЛрдб рдХреА рд▓рд╛рдЦреЛрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЙрджрд╛рд╕ рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдХреБрдЫ рдФрд░ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╡реЗ Vue рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдпрд╣ рднреА рдПрдХ рдЕрдЪреНрдЫрд╛ рдврд╛рдВрдЪрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рдХрд╛рд╕ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЛ рд╕рдордЭрдирд╛ рдФрд░ рднреА рдмреЗрд╣рддрд░ рд╣реИред
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЬрдЯрд┐рд▓ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдЫреЛрдЯреЗ рд▓реЗрдХрд┐рди рдкреНрд░рднрд╛рд╡реА рд╕рдорд╛рдзрд╛рдиреЛрдВ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЙрди рд╕рднреА рдХреЛ рд╢реБрднрдХрд╛рдордирд╛рдПрдВ рджреЗрддрд╛ рд╣реВрдВ рдЬреЛ рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдЬреНрдЮрд╛рди рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рд╕рд╛рде рдмрд▓ рдЖ рд╕рдХрддрд╛ рд╣реИ!