рдЖрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдЧрд╛рдЗрдбред Js рднрд╛рдЧ 1: рдкреНрд░рд╛рд░рдВрдн рдХрд░рдирд╛, рджреГрд╢реНрдп, рдореЙрдбреНрдпреВрд▓, рдЙрдкрдХрд░рдг


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

рдФрд░ рдЗрд╕рд▓рд┐рдП, рдореЗрд░реА рдЗрдЪреНрдЫрд╛ рдХреЛ рдореБрдЯреНрдареА рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ (рдареАрдХ рд╣реИ, рдХреМрди рд╕рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдкреНрд░рд▓реЗрдЦрди рд▓рд┐рдЦрдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ?), рдореИрдВ рдПрдХ рдореИрдиреБрдЕрд▓ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрда рдЧрдпрд╛ред рд╕рд░рд▓, рд╕рд╕реНрддреА, рд╕реБрд╕рдВрдЧрддред

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

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



рдЯреНрд░реЗрдирд┐рдВрдЧ


рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП:


рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИрдВ рдФрд░ рдпрд╣ рдлрд╝реЛрд▓реНрдбрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦрд╛рд▓реА рд╣реИред

рджреЗрд╡ рд╕рд░реНрд╡рд░


рдЖрдзрд╛рд░ рдХреЗ basis.js рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдХреЛрдИ рднреА рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди basisjs-tools рдореЗрдВ рд╢рд╛рдорд┐рд▓ рджреЗрд╡ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рд╡рд┐рдХрд╛рд╕ рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

basisjs-tools - javascript рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╕рд╛рдВрддреНрд╡рдирд╛ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдФрд░ node.js рддрд╣рдд рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рдХрд┐рдЯ рдореЗрдВ рдПрдХ рдХрд▓реЗрдХреНрдЯрд░, рдПрдХ рджреЗрд╡ рд╕рд░реНрд╡рд░ рдФрд░ рдПрдХ рдХреЛрдб рдЬрдирд░реЗрдЯрд░ рд╢рд╛рдорд┐рд▓ рд╣реИред рдПрдХ рдирд┐рдпрдорд┐рдд npm рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддрд╛ рд╣реИ:

 > npm install -g basisjs-tools 

рдпрджрд┐ рдЖрдк рдЙрдкрдХрд░рдг рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ ( -g рдзреНрд╡рдЬ) рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ basis рдХрдорд╛рдВрдб рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред

рдЖрдЗрдП рджреЗрд╡-рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдХрдВрд╕реЛрд▓ рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

 > basis server 

рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕рд░реНрд╡рд░ рдкреЛрд░реНрдЯ 8000 рдкрд░ рд╢реБрд░реВ рд╣реЛрдЧрд╛ (рдЗрд╕реЗ --port рдпрд╛ -p рдлреНрд▓реИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред рдЕрдм рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ http://localhost:8000 рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдлрд┐рд░ рднреА, рд╡рд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдЕрднреА рднреА рдЦрд╛рд▓реА рд╣реИред рдЪрд▓реЛ рдЗрд╕реЗ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВред

рд╕реВрдЪрдХрд╛рдВрдХ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдЖрдзрд╛рд░ред рдЬреЗрдПрд╕


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ basis.js рд╕реНрд░реЛрдд basis.js рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдпрд╛ рддреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдХреНрд▓реЛрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ bower рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 > bower install basis 

рдЕрдм рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп html рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдХреЗрд╡рд▓ рдЖрдзрд╛рд░ рдХреЛ рдЬреЛрдбрд╝реЗрдЧреАред basis.js - index.html ред

 <!doctype html> <html> <head> <meta charset="utf-8"> <title>My first app on basis.js</title> </head> <body> <script src="bower_components/basisjs/src/basis.js" basis-config=""></script> </body> </html> 

рдЕрдм рддрдХ, рдХреБрдЫ рднреА рдЕрд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреА рд╣реИ рд╡рд╣ рд╣реИ <script> рдХрд╛ basis-config рдЧреБрдгред

рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ <script> рдЦреЛрдЬрдиреЗ рдХреЗ basis.js рдХрд░реНрдиреЗрд▓ basis.js рд╕рдХреНрд╖рдо рдХрд░рддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдпрд╣ рдЬреБрдбрд╝рд╛ рдерд╛ред рдЖрдзрд╛рд░ рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд▓рд┐рдП рдкрде рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЗрд╕рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрде рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдкрд╣рд▓рд╛ рдкреНрд░рджрд░реНрд╢рди


рдЕрдм рдХрд╛рдЧрдЬ рдХреА рдПрдХ рд╕рдлреЗрдж рдЪрд╛рджрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдорд╛рд░рд╛ рдкреЗрдЬ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦрд╛рд▓реА рд╣реИред рдЖрдЗрдП рдЗрд╕реЗ рдЕрд░реНрде рдХреЗ рд╕рд╛рде рднрд░реЗрдВ рдФрд░ рдкрд╛рд░рдВрдкрд░рд┐рдХ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рдХреЛ рд╕рд╛рдордиреЗ рд▓рд╛рдПрдВред

рд╣рдо рдЗрд╕ рдореИрдкрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рджреГрд╢реНрдп рдмрдирд╛рдХрд░ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдЖрдкрдХреЛ рдХреНрдпрд╛ рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП:

 <!doctype html> <html> <head> <meta charset="utf-8"> <title>My first app on basis.js</title> </head> <body> <script src="bower_components/basisjs/src/basis.js" basis-config=""></script> <script> basis.require('basis.ui'); var view = new basis.ui.Node({ container: document.body, template: '<h1>Hello world!</h1>' }); </script> </body> </html> 

рдкреЗрдЬ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВрдЧреЗ - "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб!"ред рдЧреМрд░ рдХреАрдЬрд┐рдП рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдХрд╣рд╛ рдХрд┐ рд╣рдореЗрдВ basis.require рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ basis.ui рдореЙрдбреНрдпреВрд▓ рдХреА basis.require рд╣реИред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди node.js рдореЗрдВ require рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИред node.js рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЙрдирдХреЗ рдирд╛рдо рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, basis.ui рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдо рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдмрд╛рдж рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗ, рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХрд┐рд╕реА рднреА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЙрд╕рдХреЗ рдирд╛рдо рд╕реЗ "рдХрдиреЗрдХреНрдЯ" рдХрд░ рд╕рдХрддрд╛ рд╣реИред

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

рджреВрд╕рд░реА рдмрд╛рдд, рд╣рдордиреЗ рд╕реНрд╡рдпрдВ рдХреЛ рдЖрдзрд╛рд░ рдХреА рдПрдХ рдорд┐рд╕рд╛рд▓ рдмрдирд╛рдпрд╛ рд╣реИред basis.ui.Node рдХреНрд▓рд╛рд╕ред рдкрд╛рд░рдВрдкрд░рд┐рдХ View рдмрдЬрд╛рдп Node рдирд╛рдо рд╕реЗ рднреНрд░рдорд┐рдд рди рд╣реЛрдВред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ basis.js рд╕рднреА рдШрдЯрдХ рдФрд░ рд╡рд┐рдЪрд╛рд░ basis.js рд╣реИрдВред рддреЛ, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдмреНрд▓реЙрдХ рдкреВрд░реЗ рдПрдХрд▓ рдХреА рддрд░рд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдореЗрдВ рдХрдИ рдиреЗрд╕реНрдЯреЗрдб рдирд┐рд░реВрдкрдг (рдиреЛрдбреНрд╕) рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

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

рдЗрд╕ рдмреАрдЪ, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдордиреЗ рдкреНрд░рджрд░реНрд╢рди рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ "рд╕реЗрдЯрд┐рдВрдЧреНрд╕" рдХреЗ рд╕рд╛рде рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд┐рдпрд╛ - рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиред container рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рд╕реЗрдЯ рдХрд░рдХреЗ, рд╣рдордиреЗ рд╕рдВрдХреЗрдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдмрдирд╛рддреЗ рд╕рдордп рджреГрд╢реНрдп рдХреЗ DOM рдЯреБрдХрдбрд╝реЗ рдХреЛ рдХрд╣рд╛рдВ рд░рдЦрд╛ рдЬрд╛рдПред рдпрд╣ рдПрдХ DOM рдПрд▓реАрдореЗрдВрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ template рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ template рд╡рд░реНрдгрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╡рд┐рд╡рд░рдг рд╕реНрд╡рдпрдВ рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдРрд╕рд╛ рдЕрд╡рд╕рд░ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкрд┐рдВрдЧ рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рд▓реЗрдХрд┐рди рдкреНрд░рдХрд╛рд╢рд┐рдд (рдЙрддреНрдкрд╛рджрди) рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдмрд╛рдж рдореЗрдВ рд╣рдо рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрд░реЗрдВрдЧреЗред

рдореЙрдбреНрдпреВрд▓


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

рдЖрдЗрдП рдПрдХ рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╡реНрдпреВ рдХреЛрдб рдбрд╛рд▓реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, hello.js рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕реЗ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░реЗрдВ рдЬреЛ <script> рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдерд╛ред

рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдФрд░ рдЕрдм рддрдХ рдХреЛрдб рдХреЗ рд╕рд╛рде рдФрд░ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ index.html рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ:

 <!doctype html> <html> <head> <meta charset="utf-8"> <title>My first app on basis.js</title> </head> <body> <script src="bower_components/basisjs/src/basis.js" basis-config=""></script> <script> basis.require('./hello.js'); </script> </body> </html> 

рдпрд╣рд╛рдБ рдлрд┐рд░ рд╕реЗ, basis.require рдлрдВрдХреНрд╢рди рдХрд╛ basis.require , рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рдЗрд╕рдХреЗ рдкрд╛рд╕ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдкрде " ./ ", " ../ " рдпрд╛ " / " рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП basis.require рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдордЭ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдореВрд▓реНрдп рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рд╣реИ, рди рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдоред рдЙрд╕реА рдХрдиреНрд╡реЗрдВрд╢рди node.js рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ

рд╣рдо рдкреНрд░рддрд┐рд░реВрдкрдХрддрд╛ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд░рд╣реЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдб рдореЗрдВ рдорд╛рд░реНрдХрдЕрдк рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмреЗрдХрд╛рд░ рд╣реИред рдФрд░ рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рд╣рдо рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд┐рд╡рд░рдг рдирд┐рдХрд╛рд▓ рд▓реЗрдВрдЧреЗ - hello.tmpl ред рддрдм рджреГрд╢реНрдп рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

 basis.require('basis.ui'); var view = new basis.ui.Node({ container: document.body, template: basis.resource('./hello.tmpl') }); 

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

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

рдПрдХ рдЕрдиреНрдп рдмрд┐рдВрджреБ: рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреЙрд▓рд┐рдВрдЧ basis.require('./file.name') рдмрд░рд╛рдмрд░ рд╣реИред basis.resource('./file.name').fetch() ред

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

рдореЙрдбреНрдпреВрд▓ рд▓рд╛рдн


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

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

рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрдерд╛рдиреАрдп require рдФрд░ resource рдХрд╛рд░реНрдп рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рд╡реЗ basis.require рдФрд░ basis.resource рдХреЗ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╕рд╛рдкреЗрдХреНрд╖ рдлрд╝рд╛рдЗрд▓ рдкрде рд╣рд▓ рд╣реЛ рдЧрдП рд╣реИрдВред рдпрджрд┐ рдХрд┐рд╕реА рд░рд┐рд╢реНрддреЗрджрд╛рд░ рдкрде рдХреЛ рдЖрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред basis.require рдФрд░ basis.resource рдХрд╛рд░реНрдп, рддреЛ рдпрд╣ html рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣рд▓ рд╣реЛрддрд╛ рд╣реИ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ index.html )ред рдЙрд╕реА рд╕рдордп, require рдФрд░ resource рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдРрд╕реЗ рд░рд╛рд╕реНрддреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ (рдпрд╛рдиреА рдЗрд╕рдХреЗ __dirname )ред

рдореЙрдбреНрдпреВрд▓ рдореЗрдВ, рд╕реНрдерд╛рдиреАрдп require рдФрд░ resource рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, hello.js рдХреЛрдб рдереЛрдбрд╝рд╛ рд╕рд░рд▓ рд╣реИ:

 require('basis.ui'); var view = new basis.ui.Node({ container: document.body, template: resource('./hello.tmpl') }); 

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

рд╡рд╣реА css , рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреА рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдкреГрд╖реНрда рдХреЛ рдкреБрдирдГ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд╡рд╣реА рдкрд░рд┐рд╡рд░реНрддрди рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ рдЬреЛ html рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВ рдФрд░ javascript рдореЙрдбреНрдпреВрд▓ рдХреЛ рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд░рдВрднрд┐рдХ рд╣реИрдВред

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

рдЖрдЗрдП рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред hello.css рдлрд╝реЙрд░реНрдо рдХреА рдПрдХ hello.css рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:

 h1 { color: red; } 

рдЙрд╕рдХреЗ рдмрд╛рдж, hello.tmpl рдЯреЗрдореНрдкрд▓реЗрдЯ ( hello.tmpl ) рдХреЛ hello.tmpl рдмрджрд▓реЗрдВ:

 <b:style src="./hello.css"/> <h1>Hello world!</h1> 

рдЬреИрд╕реЗ рд╣реА рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╕рд╣реЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдкрд╛рда рд▓рд╛рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдкреГрд╖реНрда рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╣рдордиреЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ <b:style> рдЯреИрдЧ рдЬреЛрдбрд╝рд╛ рд╣реИред рдпрд╣ рдЯреИрдЧ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╢реИрд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреГрд╖реНрда рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣рд▓ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдПрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА рд╕реНрдЯрд╛рдЗрд▓ рдлрд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рд╣рдореЗрдВ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд░реВрдкрд░реЗрдЦрд╛ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрддреА рд╣реИред

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

рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдФрд░ рдХреНрд░рд┐рдпрд╛


Bindigi рдЖрдкрдХреЛ рдЕрдкрдиреЗ DOM рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдПрдХ рджреГрд╢реНрдп рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЗрдВрдЬрди рдХреЗ рд╡рд┐рдкрд░реАрдд, basis.js рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди рдкреНрд░реЙрдкрд░реНрдЯреАрдЬ рдХреА рд╕реАрдзреА рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдФрд░ рд╡реЗ рдХреЗрд╡рд▓ рдЙрди рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рджреГрд╢реНрдп рд╕реНрд╡рдпрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдорд╛рдиреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, binding рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ basis.ui.Node рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдЙрджрд╛рд╣рд░рдг рдпрд╛ рд╡рд░реНрдЧ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдорд╛рди рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдХреБрдВрдЬреА рд╡рд╣ рдирд╛рдо рд╣реИ рдЬреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛, рдФрд░ рдорд╛рди рд╡рд╣ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реНрд╡рд╛рдореА рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рдХреЗрд╡рд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рджреГрд╢реНрдп, рд╕реНрд╡рдпрдВред рдЗрд╕ рддрд░рд╣ рдЖрдк рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдореВрд▓реНрдп name рджреЗ рд╕рдХрддреЗ рд╣реИрдВ:

 require('basis.ui'); var view = new basis.ui.Node({ container: document.body, name: 'world', template: resource('./hello.tmpl'), binding: { name: function(node){ return node.name; } } }); 

рдпрд╣ рдЬреЛрдбрд╝рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ binding рд╕рдВрдкрддреНрддрд┐ рдПрдХ рдСрдЯреЛ-рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рд╕рдВрдкрддреНрддрд┐ рд╣реИ ред рдЬрдм рдХреЛрдИ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдирдпрд╛ рдорд╛рди рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреЛрдИ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдпрд╛ рдХреНрд▓рд╛рд╕ рдмрдирд╛рддреЗ рд╕рдордп, рдирдпрд╛ рдорд╛рди рдкреБрд░рд╛рдиреЗ рдорд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП рдФрд░ рдЙрдирд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, basis.ui.Node рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рдЙрдкрдпреЛрдЧреА рдореВрд▓реНрдп рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд name рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

name рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ ( hello.tmpl ) рдмрджрд▓реЗрдВред

 <b:style src="./hello.css"/> <h1>Hello, {name}!</h1> 

рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╡рд┐рд╢реЗрд╖ рдЖрд╡реЗрд╖рдг - рдорд╛рд░реНрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдХреБрдЫ рднрд╛рдЧреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕реЗ рдЖрд╡реЗрд╖рдг рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдордиреЗ рд╕рд╛рджреЗ рдкрд╛рда рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рди рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП {name} рдЬреЛрдбрд╝рд╛ред

рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╡рд┐рд╡рд░рдг рдЕрдиреНрдп рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЗрдВрдЬрди рдореЗрдВ рд╡рд┐рд╡рд░рдг рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╕рдорд╛рди рджрд┐рдЦрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рд╡рд┐рдкрд░реАрдд, рдЯреЗрдореНрдкрд▓реЗрдЯ basis.js DOM рдиреЛрдбреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рддрддреНрд╡ <h1> рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рддреАрди рдкрд╛рда рдиреЛрдбреНрд╕ рд╣реЛрдВрдЧреЗ " Hello, ", " {name} " рдФрд░ " ! "ред рдкрд╣рд▓рд╛ рдФрд░ рдЕрдВрддрд┐рдо рд╕реНрдерд┐рд░ рд╣реЛрдЧрд╛ рдФрд░ рдЙрдирдХрд╛ рдкрд╛рда рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рджреГрд╢реНрдп рд╕реЗ рдФрд╕рдд рдХреЛ рдФрд╕рдд рд╕реЗ рдЪрд┐рдкрдХрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдЗрд╕рдХрд╛ nodeValue рдЧреБрдг рдмрджрд▓ рдЬрд╛рдПрдЧрд╛)ред

рд▓реЗрдХрд┐рди рдкрд░реНрдпрд╛рдкреНрдд рд╢рдмреНрдж, рдЪрд▓реЛ рдкреГрд╖реНрда рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░реЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦреЗрдВ!

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

 <b:style src="./hello.css"/> <div> <h1>Hello, {name}!</h1> <input value="{name}" event-keyup="setName"/> </div> 

рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдПрдХ <input> рддрддреНрд╡ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреА value рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП, рд╣реЗрдбрд░ рдореЗрдВ рдЙрд╕реА рдмрдВрдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - {name} ред рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ DOM рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

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

рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ event-keyup рдЬреЛрдбрд╝рд╛, рдЬреЛ keyup рдЗрд╡реЗрдВрдЯ рдХреЗ keyup рд╣реЛрдиреЗ рдкрд░ setName рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдп рдХреЛ рдмрд╛рдзреНрдп рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рджреГрд╢реНрдп рдореЗрдВ рдХреЛрдИ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрджреЗрд╢ рджреЗрдЦреЗрдВрдЧреЗ рдФрд░ рдХреБрдЫ рдФрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдЕрдм рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рд╡рд┐рд╡рд░рдг рдЬреЛрдбрд╝реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, action рдЧреБрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ binding рд╕рдорд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред action рдореЗрдВ action рдШрдЯрдирд╛ рд╡рд╕реНрддреБ рдХреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рдореВрд▓ рдШрдЯрдирд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реАрдХреЛрдВ рдФрд░ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕рдХреА рдПрдХ рдкреНрд░рддрд┐ рд╣реИ (рдореВрд▓ рдШрдЯрдирд╛ рдЕрдкрдиреЗ event_ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ)ред

рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ рдЕрдм рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ ( hello.js ):

 require('basis.ui'); var view = new basis.ui.Node({ container: document.body, name: 'world', template: resource('./hello.tmpl'), binding: { name: function(node){ return node.name; } }, action: { setName: function(event){ this.name = event.sender.value; this.updateBind('name'); } } }); 

рдпрд╣рд╛рдВ рд╣рдо event.sender рд╕реЗ рдорд╛рди event.sender , рдФрд░ рдпрд╣ рд╡рд╣ рддрддреНрд╡ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдШрдЯрдирд╛ рд╣реИ - <input> ред рдореВрд▓реНрдп рдХреЛ рдкреБрдирд░реНрдЧрдгрдирд╛ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ updateBind рд╡рд┐рдзрд┐ рдХреЛ рдмреБрд▓рд╛рдпрд╛ред

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

рдореЙрдбрд▓ рдХреА рддрд░рд╣ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡, рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдбреЗрдЯрд╛ data рдкреНрд░реЙрдкрд░реНрдЯреА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ update рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм data рдореЗрдВ рдорд╛рди рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ update рдИрд╡реЗрдВрдЯ рдлрд╛рдпрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдЗрд╕ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╛рдо рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ:

 require('basis.ui'); var view = new basis.ui.Node({ container: document.body, data: { name: 'world' }, template: resource('./hello.tmpl'), binding: { name: { events: 'update', getter: function(node){ return node.data.name; } } }, action: { setName: function(event){ this.update({ name: event.sender.value }); } } }); 

рдЕрдм updateBind рд╕реНрдкрд╖реНрдЯ рд░реВрдк updateBind рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдмрд╛рдЗрдВрдбрд┐рдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдмрд╛рдЗрдВрдбрд░реЛрдВ рдореЗрдВ рд╕рд╣рд╛рдпрдХ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рддреЗ рд╣реИрдВред data рд╕реЗ рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рдЙрдирдореЗрдВ data рдПрдХ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрдВрдзрди рдХреЛ рдЫреЛрдЯреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ:

 require('basis.ui'); var view = new basis.ui.Node({ container: document.body, data: { name: 'world' }, template: resource('./hello.tmpl'), binding: { name: 'data:name' }, action: { setName: function(event){ this.update({ name: event.sender.value }); } } }); 

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

рдпрд╛рдж рд░рдЦрдиреЗ рдХреА рдореБрдЦреНрдп рдмрд╛рддред рд╡реНрдпреВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рдорд╛рдиреЛрдВ рдХреА рдЧрдгрдирд╛ рдФрд░ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП binding рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕реЗ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдШрдЯрдирд╛рдУрдВ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ рдФрд░ рдкрд╛рд╕ рдХрд░рддрд╛ action ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, binding рдФрд░ action рдПрдХ рджреГрд╢реНрдп рдФрд░ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдмреАрдЪ рд╕рдВрдкрд░реНрдХ action рдореБрдЦреНрдп рдмрд┐рдВрджреБ рд╣реИрдВред рдЙрд╕реА рд╕рдордп, рдкреНрд░рд╕реНрддреБрддрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рдЧрднрдЧ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ, рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ - рдкреНрд░рд╕реНрддреБрддрд┐ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рд╕рднреА рддрд░реНрдХ ( javascript ) рджреГрд╢реНрдп рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реИрдВ, рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо ( DOM ) рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдХрд┐рдирд╛рд░реЗ рдкрд░ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рддрд░реНрдХ рдФрд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдЕрд▓рдЧрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рддрд░реНрдХ рдФрд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛


рд╕реВрдЪреА


рддреЛ рдЕрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕рд░рд▓ рджреГрд╢реНрдп рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪрд▓реЛ рдПрдХ рдФрд░, рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдмрдирд╛рдПрдВ - рдПрдХ рд╕реВрдЪреАред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ list.js рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:

 require('basis.ui'); var list = new basis.ui.Node({ container: document.body, template: resource('./list.tmpl') }); var Item = basis.ui.Node.subclass({ template: resource('./item.tmpl'), binding: { name: function(node){ return node.name; } } }); list.appendChild(new Item({ name: 'foo' })); list.appendChild(new Item({ name: 'bar' })); list.appendChild(new Item({ name: 'baz' })); 

рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдХреЛрдб hello.js рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдирдП рдирд┐рд░реНрдорд╛рдг рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВред

рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ basis.js рдПрдХ рдШрдЯрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рд╣рдо рдмрдирд╛рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реВрдЪреА, рддреЛ рдпрд╣ рдПрдХ рдкреНрд░рд╕реНрддреБрддрд┐ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдХрдИ рд╣реЛрдЧреАред рдПрдХ рджреГрд╢реНрдп рд╣реА рд╕реВрдЪреА рд╣реИред рдФрд░ рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рднреА рдПрдХ рджреГрд╢реНрдп рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдо рдЕрд▓рдЧ рд╕реЗ рд╕реВрдЪреА рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░, рдФрд░ рд╕реВрдЪреА рдХреЗ рддрддреНрд╡реЛрдВ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд┐рд╕реНрддреГрдд, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ "рдШрдЯрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг: рдЙрдмрд╛рдК, рдирд┐рд░реНрдмрд╛рдз, рдЕрдкреНрд░рддрд┐рдмрдВрдзрд┐рдд": рд╕реНрд▓рд╛рдЗрдб рдФрд░ рд╡реАрдбрд┐рдпреЛ ред

рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдиреЗрд╕реНрдЯреЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕реВрдЪреА рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рд╕реВрдЪреА рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, childNodes рдмрдЪреНрдЪреЗ рд╣реИрдВ ( childNodes рдкреНрд░реЙрдкрд░реНрдЯреА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд), рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕ рджреГрд╢реНрдп рдореЗрдВ рд╡реЗ рд╕рдВрд▓рдЧреНрди рд╣реИрдВ рд╡рд╣ рдорд╛рддрд╛-рдкрд┐рддрд╛ (рд▓рд┐рдВрдХ parentNode рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ)ред

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

рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди DOM рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП DOM рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪрд┐рдкрдХрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рддрд░реАрдХреЗ insertBefore рдФрд░ insertBefore , removeChild рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ removeChild рдЬрдЧрд╣ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдПред рдЧреИрд░-рдорд╛рдирдХ рддрд░реАрдХреЗ рднреА рд╣реИрдВ: setChildNodes рдмрдЪреНрдЪреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ clear - рдПрдХ рдЭрдкрдЯреНрдЯрд╛ рдореЗрдВ рд╕рднреА рдмрдЪреНрдЪреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдЕрдм рдЖрдк рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

 require('basis.ui'); var list = new basis.ui.Node({ container: document.body, template: resource('./list.tmpl') }); var Item = basis.ui.Node.subclass({ template: resource('./item.tmpl'), binding: { name: function(node){ return node.name; } } }); list.setChildNodes([ new Item({ name: 'foo' }), new Item({ name: 'bar' }), new Item({ name: 'baz' }) ]); 

рдЬрд┐рд╕ рд╕рдордп рджреГрд╢реНрдп рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЙрд╕ рд╕рдордп рдЪрд╛рдЗрд▓реНрдб рдиреЛрдбреНрд╕ рдХреА рд╕реВрдЪреА рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЖрдЗрдП рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:

 require('basis.ui'); var Item = basis.ui.Node.subclass({ template: resource('./item.tmpl'), binding: { name: function(node){ return node.name; } } }); var list = new basis.ui.Node({ container: document.body, template: resource('./list.tmpl'), childNodes: [ new Item({ name: 'foo' }), new Item({ name: 'bar' }), new Item({ name: 'baz' }) ] }); 

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

 basis.ui.Node.prototype.childFactory = function(value){ return new this.childClass(value); }; 

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

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

 require('basis.ui'); var Item = basis.ui.Node.subclass({ template: resource('./item.tmpl'), binding: { name: function(node){ return node.name; } } }); var list = new basis.ui.Node({ container: document.body, template: resource('./list.tmpl'), childClass: Item, childNodes: [ { name: 'foo' }, { name: 'bar' }, { name: 'baz' } ] }); 

рд╣рдо рдХреЛрдб рдореЗрдВ рд╕реБрдзрд╛рд░ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред рдЖрдЦрд┐рд░рдХрд╛рд░, рдЗрд╕реЗ рдФрд░ рднреА рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХрдХреНрд╖рд╛ ItemрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣реАрдВ рдФрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдПрдХ рдЪрд░ рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЛ рддреБрд░рдВрдд рдХреЙрдиреНрдлрд┐рдЧрд░ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рд╣рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЬрдм рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ рдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдХреБрдЫ рдЧреБрдг рдПрдХ рд╡рд░реНрдЧ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХрдХреНрд╖рд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдЖрдк рдмрд╕ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рдирдП рд╡рд░реНрдЧ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд╕рд╛рде рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЬрдЯрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╡рд╣ рд╕рдм рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ basis.ui.Node.subclass, рдЖрдк рдмрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:

 require('basis.ui'); var list = new basis.ui.Node({ container: document.body, template: resource('./list.tmpl'), childClass: { template: resource('./item.tmpl'), binding: { name: function(node){ return node.name; } } }, childNodes: [ { name: 'foo' }, { name: 'bar' }, { name: 'baz' } ] }); 

рдЦреИрд░, рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдкреИрдЯрд░реНрди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рд╕реВрдЪреА рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдПрдВ list.tmpl:

 <div id="mylist"> <h2>  </h2> <ul{childNodesElement}/> </div> 

рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рд░реНрдХрдЕрдк, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ ulрдПрдХ рдЕрдкрд░рд┐рдЪрд┐рдд рдирд┐рд░реНрдорд╛рдг рдЯреИрдЧ рдирд╛рдо рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ {childNodesElement}ред рдорд┐рд▓реЛ, рдпрд╣ рднреА рдПрдХ рдорд╛рд░реНрдХрд░ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЗрд╕ рддрддреНрд╡ рдХреЛ рдирд╛рдо рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ childNodesElementред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЕрднреА рддрдХ рдЗрд╕ рд▓рд┐рдВрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪреА рджреГрд╢реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ DOMрдХрд┐ рдмрдЪреНрдЪреЗ рдХреЗ рдиреЛрдбреНрд╕ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХрд╣рд╛рдБ рдбрд╛рд▓реЗрдВ ред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмрдЪреНрдЪреЗ рдХреЗ рдиреЛрдбреНрд╕ рдХреЛ рдореВрд▓ рддрддреНрд╡ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ <div id="mylist">) рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛ ред

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

рдЕрдм рдЖрдкрдХреЛ рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ( item.tmpl):

 <li> {name} </li> 

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЖрдкрдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╣рдорд╛рд░реЗ рдкреЗрдЬ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

 <!doctype html> <html> <head> <meta charset="utf-8"> <title>My first app on basis.js</title> </head> <body> <script src="bower_components/basisjs/src/basis.js" basis-config=""></script> <script> basis.require('./hello.js'); basis.require('./list.js'); </script> </body> </html> 

рдкреГрд╖реНрда рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рддреАрди рддрддреНрд╡реЛрдВ рдХреА рд╣рдорд╛рд░реА рдЕрджреНрднреБрдд рд╕реВрдЪреА рджреЗрдЦреЗрдВрдЧреЗред

рд░рдЪрдирд╛


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

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

рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реНрд╡рдпрдВ рдмрджрд▓ рджреЗрдВрдЧреЗред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ container, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХрд╛ рд╕реНрдерд╛рди рдореВрд▓ рджреГрд╢реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛ред рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдЖрдкрдХреЛ рджреГрд╢реНрдп рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ exportsрдпрд╛ module.exports(рд╕рднреА рдХреЗ рд░реВрдк рдореЗрдВ node.js)ред

рдЕрдм рдпрд╣ hello.jsрдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

 require('basis.ui'); module.exports = new basis.ui.Node({ data: { name: 'world' }, template: resource('./hello.tmpl'), binding: { name: 'data:name' }, action: { setName: function(event){ this.update({ name: event.sender.value }); } } }); 

рдФрд░ рд╕реВрдЪреА рдореЙрдбреНрдпреВрд▓ ( list.js) рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

 require('basis.ui'); module.exports = new basis.ui.Node({ template: resource('./list.tmpl'), childClass: { template: resource('./item.tmpl'), binding: { name: function(node){ return node.name; } } }, childNodes: [ { name: 'foo' }, { name: 'bar' }, { name: 'baz' } ] }); 

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИред

рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдПрдХрд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдВрджреБ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдРрд╕рд╛ рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬреЛ рд░реВрдЯ рджреГрд╢реНрдп рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдореБрдЦреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрдирд╛рддрд╛ рд╣реИред рдирд┐рдореНрди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ app.js:

 require('basis.ui'); new basis.ui.Node({ container: document.body, childNodes: [ require('./hello.js'), require('./list.js') ] }); 

рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдордиреЗ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЦрд╛рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЦрд╛рд▓реА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ <div>ред рдЬрдмрдХрд┐ рд╣рдо рд╕рдВрддреБрд╖реНрдЯ рд╣реИрдВред

рдпрд╣ рдЦреБрдж рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ index.html:

 <!doctype html> <html> <head> <meta charset="utf-8"> <title>My first app on basis.js</title> </head> <body> <script src="bower_components/basisjs/src/basis.js" basis-config=""></script> <script> basis.require('./app.js'); </script> </body> </html> 

basis.requireрдПрдХ рдХреА рдЬрдЧрд╣ рджреЛ рдХреЙрд▓ рдЖрдПред рд▓реЗрдХрд┐рди рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдБ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ, рдФрд░ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ autoloadрдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП basis-config:

 <!doctype html> <html> <head> <meta charset="utf-8"> <title>My first app on basis.js</title> </head> <body> <script src="bower_components/basisjs/src/basis.js" basis-config="autoload: 'app'"></script> </body> </html> 

рд╕рд╣рдордд рд╣реВрдВ, рдпрд╣ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реЛ рдЧрдпрд╛ рд╣реИред

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

рдЙрдкрдЧреНрд░рд╣реЛрдВ


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

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

рдпрд╣ app.jsрдЙрдкрдЧреНрд░рд╣реЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ :

 require('basis.ui'); new basis.ui.Node({ container: document.body, template: resource('./app.tmpl'), binding: { hello: 'satellite:hello', list: 'satellite:list' }, satellite: { hello: require('./hello.js'), list: require('./list.js') } }); 

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

 require('basis.ui'); new basis.ui.Node({ container: document.body, template: resource('./app.tmpl'), binding: { hello: require('./hello.js'), list: require('./list.js') } }); 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдкрдЧреНрд░рд╣реЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдк рдХрд┐рд╕реА рднреА рдЙрджрд╛рд╣рд░рдг рдХреЛ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ basis.ui.Nodeред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдкрдЧреНрд░рд╣ рдмрди рдЬрд╛рдПрдЧрд╛ред

рдпрд╣ рдЙрдкрдЧреНрд░рд╣реЛрдВ рдХреЗ рд▓реЗрдЖрдЙрдЯ рдФрд░ рд╕реНрдерд╛рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ:

 <div> <div id="sidebar"> <!--{list}--> </div> <div id="content"> <!--{hello}--> </div> </div> 

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

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

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдкреБрдирд░реНрдЧрдарди


рд╣рдорд╛рд░реЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдо рддреАрди рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░, рддреАрди рдореЙрдбреНрдпреВрд▓ рдФрд░ 9 рдлрд╛рдЗрд▓реЗрдВ рдереЗ:

рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛


рдЗрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рджрд░реНрдЬрдиреЛрдВ рдФрд░ рд╕реИрдХрдбрд╝реЛрдВ рдореЙрдбреНрдпреВрд▓ред рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдФрд╕рдд рдЖрд╡реЗрджрди basis.jsрдЖрдорддреМрд░ рдкрд░ 800-1200 рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВред рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдЕрдиреБрдЪрд┐рдд рд╣реИред рдЖрдЗрдП рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕реНрдерд╛рди рдХреЛ рдкреБрдирд░реНрдЧрдарди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВ helloрдФрд░ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ (рдпрд╛рдиреА hello.js, hello.tmplрдФрд░ hello.css) рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ ред рдФрд░ рд╡рд╣ рдлрд╝реЛрд▓реНрдбрд░ рднреА listрдЬрд┐рд╕реЗ рд╣рдо рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ list.js, list.tmplрдФрд░ item.tmplред рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЬреЛ рдХреБрдЫ рднреА рд╣реИ рд╡рд╣ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрддреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рд╣реИ app.js:

 require('basis.ui'); new basis.ui.Node({ container: document.body, template: resource('./app.tmpl'), binding: { hello: require('./hello/hello.js'), //  list: require('./list/list.js') //   } }); 

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

рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛


рдпрд╣ рдмреБрд░рд╛ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдЕрдиреНрдп рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЗ рд╕рд╛рде рдорд┐рд╢реНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдо рд╕рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦреЗрдВред рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБ srcрдФрд░ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд░рдЦрд╛ bower_componentsрдФрд░ index.htmlред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдПрдХ рд░рд╛рд╕реНрддрд╛ рддрдп рдХрд░рдирд╛ рд╣реЛрдЧрд╛ index.html:

 <!--  --> <script src="bower_components/basisjs/src/basis.js" basis-config="autoload: 'app'"></script> <!--  --> <script src="bower_components/basisjs/src/basis.js" basis-config="autoload: 'src/app'"></script> 

рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдиреА рдЪрд╛рд╣рд┐рдП:

рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛


рдпрджрд┐ рдЖрдк рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХрд░рдг рдХреЗ рдорд╛рд░реНрдЧ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:

рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛


рдЗрд╕рд▓рд┐рдП рдмрдЪреНрдЪреЗ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ moduleред рдореБрдЦреНрдп javascriptрдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ index.jsред рдЯреЗрдореНрдкрд▓реЗрдЯ рдФрд░ рдЙрдирд╕реЗ рдЬреБрдбрд╝реА рд╕рднреА рдЪреАрдЬреЗрдВ (рд╢реИрд▓рд┐рдпрд╛рдБ, рдЪрд┐рддреНрд░ рдЖрджрд┐) рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ templateред рдпрд╣ рдЗрд╕ рд╕рдордп рд╕рдмрд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рдмрдВрдзрди рд╕рдВрд░рдЪрдирд╛ рд╣реИред

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

рдмреЗрд╢рдХ, рдЖрдк рдЕрдкрдиреА рдЦреБрдж рдХреА рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред рдХреЛрдИ рднреА рдЖрдкрдХреЛ рдЗрд╕ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдордиреЗ рдПрдХ рд╕рд╛рде рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХреАрдВ, рд▓реЗрдХрд┐рди рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдлрд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд╕реНрдерд╛рди рдкрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдРрд╕рд╛ рдЖрдорддреМрд░ рдкрд░ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдореБрдЦреНрдп рд▓рд╛рдн рд╣реИ рдЬреЛ рд░рд┐рд╢реНрддреЗрджрд╛рд░ рдкрде рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

рдЙрдкрдХрд░рдг


рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдврд╝рддрд╛ рд╣реИ, рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЗрд╕рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдмрдврд╝рддреА рд╣реИред рдЗрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрдкрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рдо basis.js: рджреЛ рд╕рд╣рд╛рдпрдХ рдЙрдкрдХрд░рдг рд╣реИ devpanelрдФрд░ рдкреНрд▓рдЧрдЗрди Google Chromeред

devpanel- рдпрд╣ рдмрдЯрди рд╡рд╛рд▓рд╛ рдПрдХ рдЫреЛрдЯрд╛ рдкреИрдирд▓ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдбреНрд░реИрдЧ рдФрд░ рдбреНрд░реЙрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

devpanel


рдЗрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЙрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЬреЛ рдореБрдЦреНрдп рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ ( app.js):

 /** @cut */ require('basis.devpanel'); 

рдкреГрд╖реНрда рдХреЛ рдкреБрдирдГ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдкреИрдирд▓ рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣рд╛рдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЯрд┐рдкреНрдкрдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ /** @cut */, рдпрд╣ рдЖрдкрдХреЛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рджреМрд░рд╛рди рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдХрд╛рдЯрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдореЗрдВ рдпрд╣ рдкреИрдирд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╣реИ рдирд╛?

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

рд╕реЗ Google Web Storeрдпрд╣рд╛рдБ рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред рдпрд╣ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ , рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ ред рдкреНрд▓рдЧрдЗрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:devpanelbasis.js




рдпрд╣ рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рдХрд▓реЗрдХреНрдЯрд░ рдХреА рдЖрдВрдЦреЛрдВ рд╕реЗ рджрд┐рдЦрддрд╛ рд╣реИ:

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЧреНрд░рд╛рдл


рд╕рднрд╛


рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╕рдм рдХреБрдЫ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЙрдирдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдЕрд╕реЗрдВрдмрд▓реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реЗ рдХрд▓реЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ basisjs-toolsред

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

рдХрд▓реЗрдХреНрдЯрд░ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЬреБрджрд╛ рдХрд░рдиреЗ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреБрдЫ рднреА рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдордЭрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рдЖрдк рдХреИрд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХрд╣рд╛рдВ рдФрд░ рдХреНрдпрд╛ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдЖрдк рд╕реНрд░реЛрдд рдЦреЛрд▓реЗрдВ, рдкрдврд╝реЗрдВ рдФрд░ рд╕рдордЭреЗрдВред рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд▓реЗрдХреНрдЯрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ basisjs-toolsред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдПрдХ рдЗрдирдкреБрдЯ htmlрдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ index.html)ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреА рд╣реИ рдпрд╣ рдкрд╛рддрд╛ рд╣реИ рдЯреИрдЧ <script>, <link rel="stylesheet">, <style>рдФрд░ рдЕрдиреНрдпред рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реА рдлрд╛рдЗрд▓реЗрдВ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИрдВред рдлрд┐рд░ рд╡рд╣ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИ, рдЙрдирдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, javascriptрдХреЙрд▓ рдореЗрдВ basis.require, basis.resourceрдФрд░ рдЕрдиреНрдп, рдФрд░ css- @import,,url(..)рдЖрджрд┐)ред рддреЛ, рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреБрди: рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг, рдХрд▓реЗрдХреНрдЯрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЧреНрд░рд╛рдл рдмрдирд╛рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╡рд╣ рд▓рд┐рдВрдХ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИ, рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдирдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЙрд╕рдХреЗ рдХрд╛рдо рдХрд╛ рдирддреАрдЬрд╛ рдПрдХ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд╣реБрдд рдХрдо рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВред

рдЪрд▓реЛ рдПрдХ рд╕рд╛рде рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдбрд╛рд▓рддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдмрд╕ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реИ:

 > basis build 

рд╡рд╣ рд╕рдм рд╣реИредрдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рдкрд░рд┐рдгрд╛рдо рддреАрди рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрдЧрд╛ index.html, script.jsрдФрд░ style.cssрдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрдЧрд╛ buildред рдпреЗ рддреАрди рдлрд╛рдЗрд▓реЗрдВ рд╣рдорд╛рд░рд╛ рдЕрд╕реЗрдВрдмрд▓ рдХрд┐рдпрд╛ рд╣реБрдЖ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИрдВред рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рд╕рд╛рдордЧреНрд░реА buildрдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдХреЙрдкреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЖрд╡реЗрджрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЗрдВ рдЗрд╕рдореЗрдВ рд╣реЛрдВрдЧреАред

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

 > basis build --help 

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рдХреЛрдб рдФрд░ рд╕рдВрдкреАрдбрд╝рди рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдмрд╕реЗ рдЖрдо рдЕрдиреБрдХреВрд▓рди javascriptрдФрд░ cssрдзреНрд╡рдЬ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ --pack(рдпрд╛ рдЗрд╕рдХреЗ рд▓рдШреБ рд╕рдВрд╕реНрдХрд░рдг -p):

 > basis build --pack 

рдпрд╣рд╛рдБ рд╣рдо рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗ:

рдмреЗрд╕рд▓рд╛рдЗрди рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рдгрд╛рдо - рдкреИрдХ

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

рдирд┐рд╖реНрдХрд░реНрд╖


рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдореБрдЦреНрдп рдЪрд░рдгреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреА basis.js, рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдмрдЪреЗ рд╣реБрдП рдЬреНрдЮрд╛рди рд╕реЗ рдмрд╛рдХреА рдореИрдиреБрдЕрд▓ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред

рдЕрдЧрд▓рд╛ рднрд╛рдЧ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдФрд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдЧрд╛ред



рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рдЧрд▓рддреА, рдЕрд╢реБрджреНрдзрд┐ рдпрд╛ рд▓реЗрдЦ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдкрддрд╛ рд╣реИ - рдореБрдЭреЗ рд╣реИрдмрд░рдкреЛрд╕реНрдЯ рдкрд░ рд▓рд┐рдЦреЗрдВред рдпрд╣ рд▓реЗрдЦ GitHub рдкрд░ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИ , рдЖрдк PR рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдзреНрдпрд╛рди рд╕реЗ рдпрд╣рд╛рдБ рд╕рдВрдкрд╛рджрди рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реВрдБрдЧрд╛ред

рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдЦреЛрдЬ рдЗрдВрдЬрди рдХреЛ рдкреАрдбрд╝рд╛ рди рд╣реЛ, рдореИрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрддрд╛ рд╣реВрдВ:

рдХрд┐рд╕реА рднреА рдкреНрд░рд╢реНрди, рдЖрд▓реЛрдЪрдирд╛, рд╕рдорд░реНрдерди рдФрд░ рдорджрдж рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ, рдЬреЛ рднреА рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ :)

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


All Articles