рдЗрддрдирд╛ рд╕рдордп рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдлреЗрд╕рдмреБрдХ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА - рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд░рд┐рдПрдХреНрдЯрдЬ рджрд┐рдЦрд╛рдИ рджрд┐рдПред рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рд░рд▓ рдФрд░ рдЬрдЯрд┐рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рд╣реИред рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рдШрдЯрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдкреЗрдбрд╝ рдХреА DOM рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдмрд╣реБрдд рдХреБрд╢рд▓рддрд╛ рдФрд░ рдЙрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдХрд░рддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЕрднрд┐рдХрд░реНрдордХреЛрдВ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдРрд╕рд╛ рдЖрд╡реЗрджрди рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ - рдбреЗрдореЛ ред рдЗрд╕ рдкреЛрд╕реНрдЯ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп Reajjs + gruntjs + Browserify рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рдЗрдВрдкреНрд░реЗрд╢рди рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рд╣реИред
рдиреАрдЪреЗ рдмрддрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛:
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЗрдВрдкреНрд░реЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд╣рд╛рдЗрд▓рд╛рдЗрдЯреНрд╕ (рдЕрднрд┐рдХрд░реНрдордХреЛрдВ рдХреЗ рд╕рд╣рдЬреАрд╡рди + рдмреНрд░рд╛рдЙрдЬрд░ + рдЧреНрд░рдиреНрдЯрдЬ + рдХреЙрдлрд╕реНрдХреНрд░рд┐рдкреНрдЯ)ред
- рд╕реНрдереИрддрд┐рдХ рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рд░рд┐рдПрдХреНрдЯрдЬ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдкреНрд░рддрд┐рдкрд╛рджрдиред
- рдЧреНрд░реБрдВрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрднрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдФрд░ рдПрдХ рд╣реА рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде gh- рдкреЗрдЬреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ред
рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдмрд┐рд▓реНрд▓реА рдорд╛рдБрдЧрдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд░рдЦрддрд╛ рд╣реВрдБ ...
рдЖрд╡реЗрджрди рдХрд╛ рд╡рд┐рдЪрд╛рд░
рдореБрдЭреЗ рдореЛрд╣ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдПрдХ рдСрдирд▓рд╛рдЗрди рдЧрд╛рдорд╛ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдирдпрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдЗрд╕ рд╕рдВрд╕рд╛рдзрди рд╕реЗ рдореЗрд░реА рдкреНрд░реЗрд░рдгрд╛ рдорд┐рд▓реА, рдЦреБрдж рд╕реЗ рдХреБрдЫ рдЕрдЪреНрдЫрд╛рдЗрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реБрдПред рдЧрд╛рдорд╛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдХрд╛рдордЪрд▓рд╛рдК рдорд╛рд╕реНрдЯрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдФрд░ рдЦреЗрд▓ рдХреА рддрдХрдиреАрдХ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рдпрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреИрдорд╛рдиреЗ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреБрдЫ рдиреЛрдЯреЛрдВ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдирдХреА рдЧрдгрдирд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реВрддреНрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреА рдЬрд╛рддреА рд╣реИред рдПрдХ рдЧрд┐рдЯрд╛рд░ рдкреНрд░реЗрдореА рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдореБрдЭреЗ рдЯреЙрдиреНрд╕рд┐рд▓рд┐рдЯреА рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдФрд░ рдореЗрд░реЗ рдкрд╕рдВрджреАрджрд╛ рд╕рдВрдЧреАрдд рдХреЗ рд▓рд┐рдП рд╕реЛрд▓реЛрд╕ рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рджреЗрддрд╛ рд╣реИред рдФрд░ рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдХреНрдпрд╛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛

- рд░рд╛рдЧрд┐рдиреА рдХреА рдкрд╕рдВрджред
- рдЧрд╛рдорд╛ рдЪрдпрди (рдорд╛рдореВрд▓реА, рдкреНрд░рдореБрдЦ, рдмреНрд▓реВрдЬрд╝, рдкреЗрдВрдЯрд╛рдЯреЛрдирд┐рдХ)ред
- рдЧрд┐рдЯрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдХреА рдкрд╕рдВрджред
- рдЧрд┐рдЯрд╛рд░ рдХреА рдЧрд░реНрджрди рдХреЗ рдЪрдпрдирд┐рдд рдЕрдиреБрднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдмрд╛рд░реА-рдмрд╛рд░реА рд╕реЗ рдиреЛрдЯреНрд╕ рдЦреЗрд▓рдирд╛ред
- рдиреЛрдЯреЛрдВ рдХреА рджрд┐рд╢рд╛ рдмрджрд▓реЗрдВ (рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ / рдиреАрдЪреЗ рд╕реЗ рдКрдкрд░)ред
- рдЪрдХреНрд░реАрдп рдкреНрд░рдЬрдирди (рд╕рдВрд╕реНрдорд░рдг рдХреЗ рд▓рд┐рдП) рдХреА рд╕рдВрднрд╛рд╡рдирд╛ред
- рдиреЛрдЯреЛрдВ рдХреА рджрд┐рд╢рд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрджрд▓реЗрдВред
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдВрдЧрдарди
рдЕрдЪреНрдЫреЗ рдХрд░реНрдо рдХреЗ рд▓рд┐рдП, рдФрд░ рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдЯрд┐рдВрдХрд░ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ - рд╕рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ 1 рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЪрд┐рдкрдХрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдПрд╕реЗрдВрдмрд▓реА рдХреЗ рджреМрд░рд╛рди minified рдФрд░ reactjs рдШрдЯрдХреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ HTML рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рдерд╛ред
рдпрд╣ рдЙрдкрдХрд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
- gruntjs - рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рддреИрдирд╛рддреА
- Browserify - рдмреНрд░рд╛рдЙрдЬрд░ рдореЗрдВ рдХреЙрдорди рдореЛрдбреНрд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
- рдЧреНрд░рдВрдЯ-рд░рд┐рдПрдХреНрд╢рди-рдкреНрд░реЗрдВрдбрд░реЗрдВрдбрд░ - рд╕рд░реНрд╡рд░ рдШрдЯрдХ рдкреВрд░реНрд╡-рдкреНрд░рддрд┐рдкрд╛рджрди
рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╛рд░реВрдк рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рджреЛрдиреЛрдВ рдкрд░ рдПрдХ рд╣реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╕рд░реНрд╡рд░ рдкреВрд░реНрд╡-рдкреНрд░рддрд┐рдкрд╛рджрди
рдореЗрд░реЗ рд▓рд┐рдП Reajj рдореЗрдВ рд╕рдмрд╕реЗ рдЖрдХрд░реНрд╖рдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдШрдЯрдХ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдШрдЯрдХреЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдЕрднрд┐рдХрд░реНрдордХреЛрдВ рдХреА рд╕реБрдВрджрд░рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдШрдЯрдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдбреЗрдореЛ рд╕реЗ рдкреЗрдЬ рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреГрд╖реНрда рдХрд╛ рдореБрдЦреНрдп рдШрдЯрдХ рдкрд╣рд▓реЗ рд╣реА рдЦреАрдВрдЪрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕рд░реНрд╡рд░ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдкреНрд░реА-рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд╡рд▓ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рджреМрд░рд╛рди рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдЧреНрд░рдиреНрдЯ рдкреНрд▓рдЧрдЗрди рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдЬреЛ gh- рдкреЗрдЬреЛрдВ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ html рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░реЗрдЧрд╛ - рдЧреНрд░рдВрдЯ-рд░рд┐рдПрдХреНрд╢рди-рд░реЗрдВрдбрд░ ред
рдкреНрд▓рдЧрдЗрди рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ рдФрд░ рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ:
- рд╣рдо рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдкрдврд╝рддреЗ рд╣реИрдВред
- Html рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдбреЗрдЯрд╛- rcomp рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЯреИрдЧ рдкрд╛рддреЗ рд╣реИрдВред
- рд╣рдо рдбреЗрдЯрд╛- rcomp рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗ рдШрдЯрдХ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдХреЛ рдкрдврд╝рддреЗ рд╣реИрдВред
- рд╣рдо рдШрдЯрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ react.renderComponentToString () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВред
- рдЯреИрдЧ рдореЗрдВ рдбреЗрдЯрд╛- rcomp рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВред
- рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВред
рдпрд╣рд╛рдБ рдореБрдЦреНрдп рдкреГрд╖реНрда рдХрд╛ html рдЕрдиреБрднрд╛рдЧ рд╣реИ рдЬрд┐рд╕реЗ рдпрд╣ рдкреНрд▓рдЧрдЗрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ:
<div class="container"> <h1>Scales generator</h1> <div data-rcomp="./lib-js/pages/scales_page_component" id="container"> </div> </div>
рдпрд╣ рдХреИрд╕реЗ рдЧреНрд░рдиреНрдЯ рдкреНрд▓рдЧрдЗрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
react_render: index: options: src: '.dist/index.html'
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ
Reactjs рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рдШрдЯрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддрд░реНрдХ рдХреЗ рдЧрдарди рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ, рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд░рд┐рдПрдХреНрдЯрдЬ рджрд░реНрд╢рди рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдШрдЯрдХреЛрдВ рдХреЛ рдиреНрдпреВрдирддрдо рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд░рд╛рдЬреНрдп рдЬрд╛рджреВ рдФрд░ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рдХрд╛ рдПрдХ рд╕реНрд░реЛрдд рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдШрдЯрдХреЛрдВ рдореЗрдВ рд░рд╛рдЬреНрдп рдХреЛ рдмрдЪрд╛рдиреЗ рдФрд░ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЧреБрдгреЛрдВ (рд╕рд╣рд╛рд░рд╛) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдВрддрд░рд┐рдХ рдШрдЯрдХреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░реЗрдВред
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореБрдЭреЗ рдЗрд╕ рддрдереНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдХрд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд╕рд░рд▓ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдмрд╣реБрдд рдЙрд▓рдЭрди рдореЗрдВ рдерд╛, рдФрд░ рдореИрдВрдиреЗ рдХреБрдЫ рд╕рдордп рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдмрд┐рддрд╛рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдорд╛рди рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдПред рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдФрд░ рд▓реЗрдЖрдЙрдЯ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореИрдВрдиреЗ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдРрд╕реА рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА:

рдФрд░ рдореИрдВ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдерд╛ рдХрд┐ рд░рд┐рдПрдХреНрдЯрдЬ рдХреЗ рд╕рд╛рде рдпрд╣ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдШрдЯрдХ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╕рднреА рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЕрднрд┐рдХрд░реНрдордХ рдкрд░ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЛ рдмрд╕ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдШрдЯрдХ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреИрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдбреНрд░реЙрдкрдбрд╛рдЙрди рдХреЛрдб
React = require 'react' {ul, li, span, div, a} = React.DOM SimpleDropdown = React.createClass displayName: "SimpleDropdown" getDefaultProps: -> onChange: -> getInitialState: -> isOpen: false value: @props.value or "" toggle: -> @setState {isOpen: !@state.isOpen} itemClick: (ev) -> ev.preventDefault() value = (ev.target.getAttribute "value") @setState {value, isOpen: false} @props.onChange value render: -> self = @ options = @props.options.map ([value, text]) -> (li {key: "opt_#{value}"}, (a {value, href: "#", onClick: self.itemClick}, text)) openCls = if @state.isOpen then "open" else "" currentOption = (@props.options.filter ([value, text]) => value.toString() is @state.value.toString())?[0] (div className: "btn-group #{openCls}" (button className: "btn btn-default" onClick: @toggle (span {className: "glyphicon"}, "") currentOption?[1] (span {className: "caret"}, "")) (ul className: "dropdown-menu" ref: "select" options))
рдШрдЯрдХреЛрдВ рдХреА HTML рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдлрд╝реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рд╛рдмрд┐рдд рд╣реБрдЖред рдЗрд╕рдХрд╛ рдкреБрдирд░реНрдЧрдарди рдХрд╛рд░реНрдп рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИред
{div, ul, span, li} = React.DOM (div {className: "div"} (span {className: "span", "span Text") (ul (li "option 1") (li "option 2") )
рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ jsx рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдореБрдЭреЗ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдмрдЯрди рдФрд░ рдбреНрд░реИрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдШрдЯрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рде рдЯрд┐рдВрдХрд░ рдХрд░рдирд╛ рдерд╛ред
рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ
рдЪреВрдВрдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рди рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдмрд▓реНрдХрд┐ рдЧрд┐рдЯрд╛рд░ рдкрд░ рддрд░рд╛рдЬреВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдореЗрдВ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП - рдореИрдВрдиреЗ рд╕рднреА рддрд░реНрдХ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рддрд╛рдХрд┐ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ, рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЖрд╕рд╛рдиреА рд╕реЗ рджреВрд╕рд░реЗ рдкреИрдорд╛рдиреЗ рдпрд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдЬреЛрдбрд╝ рд╕рдХреЗред рдЧрд┐рдЯрд╛рд░ред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдб рдореЗрдВ рдЧрд╛рдорд╛ рдХрд╛ рд╡рд░реНрдгрди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
SCALES = Minor: desc: "Minor scale" size: [STEP, hSTEP, STEP, STEP, hSTEP, STEP, STEP] get_notes: (Tonica) -> generate_scale Tonica, SCALES.Minor Major: desc: "Major scale" size: [STEP, STEP, hSTEP, STEP, STEP, STEP, hSTEP] get_notes: (Tonica) -> generate_scale Tonica, SCALES.Major ...
рдкреНрд░рддреНрдпреЗрдХ рдЧрд╛рдорд╛ рдХрд╛ рдЕрдкрдирд╛ рд╕реВрддреНрд░ (рдЖрдХрд╛рд░) рд╣реЛрддрд╛ рд╣реИ, рдиреЛрдЯреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдПрдХ рд╡рд┐рд╡рд░рдгред рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдПрдХ рдорд┐рддреНрд░ рдХреЛ рджрд┐рдЦрд╛рдпрд╛, рдЙрдиреНрд╣реЛрдВрдиреЗ, рд╕рдВрдЧреАрдд рдореЗрдВ рдЧрд╣рди рдЬреНрдЮрд╛рди рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрдард┐рдирд╛рдИ рдХреЗ рдХрдИ рдЕрдиреНрдп рдкреИрдорд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ред
рдЧрд┐рдЯрд╛рд░ рдХреЗ рддрд╛рд░ рдХрд╛ рдбреЗрдЯрд╛ рдХреЗрд╡рд▓ рдЙрддрдирд╛ рд╣реА рд╕рд░рд▓ рджрд┐рдЦрддрд╛ рд╣реИ:
TUNINGS = "Standart": name: "Standart E" notes: [E, B, G, D, A, E] offset: [0, 0, 0, 0, 0, 0] "DropD": name: "Dropped D" notes: [E, B, G, D, A, D] offset: [0, 0, 0, 0, 0, -2] ...
Howler.js рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдзреНрд╡рдирд┐рдпреЛрдВ рдХрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреНрд▓реЗрдмреИрдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЗрд╕ рд╕реНрдерд╛рди рдкрд░ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреБрдЫ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рд╕реБрдзрд╛рд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╣реЛрдЧреА, рддреЛ рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЦреБрд╢ рд╣реВрдВред
1 рдЯреАрдо рдмрдирд╛рдПрдБ рдФрд░ рддреИрдирд╛рдд рдХрд░реЗрдВ
рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдФрд░ рдХреЛрдб рдХреЗ рд╕рдВрдЧрдарди рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд╢рд╛рдпрдж рдпрд╣ рд╕рд╣реА рд╣реИред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рд╕реНрд╡рдЪрд╛рд▓рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЦреБрд╢реА рдорд┐рд▓рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рд╣реЛ рдЧрдпрд╛ рдФрд░ рдЧреНрд░рд╛рдВрдЯрдЬ рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдФрд░ рддреИрдирд╛рддреА рдХрд╛ рдЖрдпреЛрдЬрди рдХрд┐рдпрд╛ред 3 рдореБрдЦреНрдп рдЖрджреЗрд╢ рд╣реИрдВ:
- рдЧреНрд░рдВрдЯ рдмрд┐рд▓реНрдб (рдХреЙрдлрд╝рд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдВрдХрд▓рди, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдХреЙрдордирд░реНрдЬ рдореЙрдбреНрдпреВрд▓реНрд╕ рдореЗрдВ рд░реИрдкрд░, 1 рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреАрдПрд╕ рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдХреЛ рдЪрдордХрд╛рдирд╛)
- рдЧреНрд░рдВрдЯ рддреИрдирд╛рддреА (js рдФрд░ css рдХрд╛ рдирд┐рд░реНрдорд╛рдг + рдирд┐рд░реНрдорд╛рдг, рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛, рдШрдЯрдХ рдШрдЯрдХ рдкреБрди: рдкреНрд░рддрд┐рдкрд╛рджрди)
- рдЧреНрд░рдВрдЯ рддреИрдирд╛рддреА-рдЬреАрдПрдЪ (рдЬреАрдердм рдкреЗрдЬ рдкрд░ рддреИрдирд╛рдд + рддреИрдирд╛рдд)
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЧреНрд░рдВрдЯрдлрд╛рдЗрд▓ рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд░рд┐рдПрдХреНрдЯрдЬ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рдЫреЛрдбрд╝рддрд╛ рд╣реИ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореИрдВ рдЗрд╕реЗ рдХреБрдЫ рдПрдлрдЖрд░рдкреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА (рдЖрд░рдПрдХреНрд╕рдЬреЗ рдпрд╛ рдмреЗрдХрди.рдЬреЗрдПрд╕) рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдЖрдЬрдорд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдХрд┐рд╕реА рднреА рдЖрд▓реЛрдЪрдирд╛, рдЗрдЪреНрдЫрд╛рдУрдВ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред
рд╕реНрд░реЛрдд рдХреЛрдб - github