рдЖрдзрд╛рд░.рдЬреЗрдПрд╕ - рдЧрддрд┐ рдФрд░ рджрдХреНрд╖рддрд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдПрдХрд▓ рдкреГрд╖реНрда рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдврд╛рдВрдЪрд╛ред рд╢рд╛рдпрдж рд╡рд╣ рдЕрднреА рддрдХ рдЗрддрдирд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рд╕рдореНрдореЗрд▓рдиреЛрдВ рдФрд░ рдореАрдЯрдЕрдк рдореЗрдВ рдореЗрд░реЗ рднрд╛рд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдХреБрдЫ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИ рдФрд░ рд░реБрдЪрд┐ рдмрди рдЧрдП рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдпрд╛ рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдПрдХ рдЧрд╛рдЗрдб рдХреА рдХрдореА рд╣реИред
рдФрд░ рдЗрд╕рд▓рд┐рдП, рдореЗрд░реА рдЗрдЪреНрдЫрд╛ рдХреЛ рдореБрдЯреНрдареА рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ (рдареАрдХ рд╣реИ, рдХреМрди рд╕рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдкреНрд░рд▓реЗрдЦрди рд▓рд┐рдЦрдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ?), рдореИрдВ рдПрдХ рдореИрдиреБрдЕрд▓ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрда рдЧрдпрд╛ред рд╕рд░рд▓, рд╕рд╕реНрддреА, рд╕реБрд╕рдВрдЧрддред
рдкрд╣рд▓рд╛ рднрд╛рдЧ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рджреВрд╕рд░реЛрдВ рдХреЛ рдЗрд╕реЗ рдкрдврд╝рдиреЗ рджрд┐рдпрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рдкрдврд╝рд╛ рдФрд░ рдЖрд╢реНрд╡рд╕реНрдд рдХрд┐рдпрд╛ рдХрд┐ рдЗрд╕реЗ рд╣реИрдмреЗ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдЦрд┐рд░, рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдкрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреЗрд╣рддрд░ рдХреНрдпрд╛ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ?
рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд╛ рдкрд╣рд▓рд╛ рднрд╛рдЧ
basis.js
рдХрд┐ рдЖрдзрд╛рд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХреИрд╕реЗ рдХрд░реЗрдВред
basis.js
рдФрд░ рдЖрдк рдХреМрди рд╕реЗ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдХрдИ рд╕рд░рд▓ рдЕрднреНрдпрд╛рд╡реЗрджрди рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗ; рдкрд░рд┐рдпреЛрдЬрдирд╛ рдлрд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд░реВрдкрдХрддрд╛ рдФрд░ рд╕рдВрдЧрдарди рдХрд╛ рдореБрджреНрджрд╛ рдЙрдард╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЯреНрд░реЗрдирд┐рдВрдЧ
рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП:
- рдХрдВрд╕реЛрд▓ (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди)
- рд╕реНрдерд╛рдиреАрдп рд╡реЗрдм рд╕рд░реНрд╡рд░
- рдмреНрд░рд╛рдЙрдЬрд╝рд░ (рдЕрдзрд┐рдорд╛рдирддрдГ
Google Chrome
) - рдЖрдкрдХрд╛ рдкрд╕рдВрджреАрджрд╛ рд╕рдВрдкрд╛рджрдХ
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИрдВ рдФрд░ рдпрд╣ рдлрд╝реЛрд▓реНрдбрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦрд╛рд▓реА рд╣реИред
рджреЗрд╡ рд╕рд░реНрд╡рд░
рдЖрдзрд╛рд░ рдХреЗ
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"> </div> <div id="content"> </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'),
рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рдЕрдм рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:рдпрд╣ рдмреБрд░рд╛ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдЕрдиреНрдп рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЗ рд╕рд╛рде рдорд┐рд╢реНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдо рд╕рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦреЗрдВред рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБ 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
- рдпрд╣ рдмрдЯрди рд╡рд╛рд▓рд╛ рдПрдХ рдЫреЛрдЯрд╛ рдкреИрдирд▓ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдбреНрд░реИрдЧ рдФрд░ рдбреНрд░реЙрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:рдЗрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЙрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЬреЛ рдореБрдЦреНрдп рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ ( app.js
): require('basis.devpanel');
рдкреГрд╖реНрда рдХреЛ рдкреБрдирдГ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдкреИрдирд▓ рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣рд╛рдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЯрд┐рдкреНрдкрдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ /** @cut */
, рдпрд╣ рдЖрдкрдХреЛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рджреМрд░рд╛рди рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдХрд╛рдЯрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдореЗрдВ рдпрд╣ рдкреИрдирд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╣реИ рдирд╛?рдкреИрдирд▓ рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рд╡рд┐рд╖рдп рдФрд░ рднрд╛рд╖рд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдФрд░ рдЖрдЧреЗ рдХреЗ рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдФрд░ рдЕрдиреБрд╡рд╛рджрд┐рдд рдкрд╛рда рднреА рдЪреБрдиреЗрдВред рдЖрдк рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕, рд╢реИрд▓рд┐рдпреЛрдВ рдФрд░ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд▓рд┐рдВрдХрд╕реЗ Google Web Store
рдпрд╣рд╛рдБ рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред рдпрд╣ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ , рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ ред рдкреНрд▓рдЧрдЗрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:devpanel
basis.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 рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдзреНрдпрд╛рди рд╕реЗ рдпрд╣рд╛рдБ рд╕рдВрдкрд╛рджрди рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реВрдБрдЧрд╛редрддрд╛рдХрд┐ рдЖрдкрдХреЛ рдЦреЛрдЬ рдЗрдВрдЬрди рдХреЛ рдкреАрдбрд╝рд╛ рди рд╣реЛ, рдореИрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрддрд╛ рд╣реВрдВ:рдХрд┐рд╕реА рднреА рдкреНрд░рд╢реНрди, рдЖрд▓реЛрдЪрдирд╛, рд╕рдорд░реНрдерди рдФрд░ рдорджрдж рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ, рдЬреЛ рднреА рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ :)