рдЬреЗрдПрд╕рдПрдХреНрд╕ рдХреЛ рдбрд╕реНрдЯ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛



рд╣реЗрд▓реЛ рд╣рдмреНрд░! рдореИрдВ рдореАрдЯ рд╕реЗ рдорд┐рд▓реЛ рд╣реВрдБ, рдФрд░ рдпрд╣ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд╣рдмрд░ рдкреЛрд╕реНрдЯ рд╣реИ, рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рддрдХрдиреАрдХреА рдмреНрд▓реЙрдЧ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реБрдЖ рд╣реИред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдпрджрд┐ рдЖрдкрдХреЗ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИрдВ рддреЛ рдХреГрдкрдпрд╛ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ рдФрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ

рддреЛ ... рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, amirite ???

рдпрд╣ рджрд╢рдХ рдХреЗ рдЕрдВрдд рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ (рдЕрдВрддрд╣реАрди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдпреБрджреНрдзреЛрдВ рд╕реЗ рддреНрд░рд╕реНрдд), рдбреЛрдо рдХреЛ рдЧрд▓реЗ рд▓рдЧрд╛рдпрд╛, HTML рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рдХрд░ рд╕рднреА рдХреЛ рдЪреМрдВрдХрд╛ рджрд┐рдпрд╛ рдФрд░ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рдорд╛рдиреНрдпрддрд╛ рд╕реЗ рдкрд░реЗ рдмрджрд▓ рджрд┐рдпрд╛ред

рдЙрди рд╕рднреА рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ, рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рдмрд┐рдирд╛ рднреА ред

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


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

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

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

JSX


рд░рд┐рдПрдХреНрдЯ HTML рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде JSX рдирд╛рдордХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдорд┐рд▓рд╛рддрд╛ рд╣реИред рдпрджреНрдпрдкрд┐ рдпрд╣ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рднрд╛рд╖рд╛ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, JSX рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд░реНрдл рдПрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕, рдпрд╛ рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рд╢реБрдЧрд░ рд╣реИ рдпрджрд┐ рдЖрдк рдХрд░реЗрдВрдЧреЗ, рддреЛ рд░рд┐рдПрдХреНрдЯ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП, HTML рдХреЗ рд╕рдорд╛рди рджрд┐рдЦрдиреЗ рд╡рд╛рд▓рд╛ред

рд╣рдорд╛рд░реА рдЕрдкрдиреА HTML рдлрд╛рдЗрд▓реЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдереАрдВ, рдФрд░ рд╣рдорд╛рд░рд╛ рдЬреНрдпрд╛рджрд╛рддрд░ рд░реЗрдВрдбрд░ template.render() рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд░рд┐рдПрдХреНрдЯ рдХрд░рддреЗ рд╣реБрдП рд╣рдо рдЗрд╕ рдЖрджреЗрд╢ рдФрд░ рд╕рд╛рджрдЧреА рдХреЛ рдХреИрд╕реЗ рдмрд░рдХрд░рд╛рд░ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ? рдореЗрд░реЗ рд▓рд┐рдП, рддрдХрдиреАрдХреА рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЛ рдПрдХ рддрд░рдл, рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╕реНрдкрд╖реНрдЯ рдерд╛: рд╣рдорд╛рд░реЗ рдореМрдЬреВрджрд╛ рдХреЙрд▓реЛрдВ рдХреЛ рдЬреЗрдПрд╕рдПрдХреНрд╕ рдХреЛрдб рд╕реЗ рдмрджрд▓реЗрдВред

рдЫрд╡рд┐


рдХреБрдЫ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рдЗрд╕реЗ рджрд┐рдпрд╛ рдФрд░ рдПрдХ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЯреВрд▓ рдХреЛ рд▓рдкреЗрдЯрд╛ рдЬреЛ рджреЛ рд╕рд░рд▓ рдЪреАрдЬреЗрдВ рдХрд░рддрд╛ рд╣реИ:

  1. UI (рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ) рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрдврд╝рддрд╛ рд╣реИ
  2. HTML рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде template.render() рдХреЙрд▓ рдХреЛ рдмрджрд▓реЗрдВ

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

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

рдЫрд╡рд┐


рд▓реЛ рдФрд░ рдирд┐рд╣рд╛рд░рдирд╛, рдХрдИ рджрд┐рдиреЛрдВ рдХреЗ рдмрд╛рдж Dust.js HTML рдЬреИрд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ JSX рд░рд┐рдПрдХреНрдЯ рдХреЛрдб рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖред рд╣рдордиреЗ рдбрд╕реНрдЯ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдкрд╛рд░реНрд╕рд░реНрд╕ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЗ рд╕рд╛рде, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд▓реЛрдХрдкреНрд░рд┐рдп рдЯреЗрдВрдкрд▓реЗрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

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

 <div class="encounters {?isExpanded}is-expanded{/isExpanded}"> {?showTooltip} <div class="tooltip"> <span>{#_t}{encounters_tooltip}{/_t}</span> <div class="icon"> {@Icon name="icon-encounters" size="stretch" /} </div> </div> {/showTooltip} <div class="images"> {#images} <img src="{src}"> <input type="radio" id="{id}" {?selected}checked{/selected} /> <label for="showme-{id}"> {name} </label> {/images} </div> <div class="footer"> {! encounters-footer template will be injected here !} </div> </div> 

рдЗрд╕рдХреЗ JSX рдХреЛрдб рдХреЗ рдмрд░рд╛рдмрд░:

 <div className="encounters {props.isExpanded ? 'is-expanded' : ''}"> {props.showTooltip ? <div className="tooltip"> <span>{i18n.get('encounters_tooltip')}</span> <div className="icon"> <Icon name="icon-encounters" size="stretch" /> </div> </div> : null} <div className="images"> {props.images.map(item => <img src={item.src}> <input type="radio" id={`showme-${item.id}`} defaultChecked={item.selected ? true : undefined} /> <label htmlFor={`showme-${item.id}`}> {item.name} </label> )} </div> <div className="footer"> {/* encounters-footer template will be injected here */} </div> </div> 

рдпрд╣рд╛рдВ рд╕рд╛рдЗрдб-рдмрд╛рдп-рд╕рд╛рдЗрдб рддреБрд▓рдирд╛ рджреЗрдЦреЗрдВред

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдорд╛рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд╣реБрдд рд╕реАрдзреА рдереАред рд╣рдордиреЗ рдЕрдкрдиреЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдкреНрд░рд╛рд░реВрдк рд╕реЗ рджреВрд╕рд░реЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛, рдФрд░ рд╕рдм рдХреБрдЫ рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ (рдзрдиреНрдпрд╡рд╛рдж, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг)ред рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЕрдкрдиреЗ рдкреБрд░рд╛рдиреЗ template.render() рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд┐рдП рд╣реИрдВред

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

рдЖрдк рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ: рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЦрд░реЛрдВрдЪ рд╕реЗ рдирдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд▓рд┐рдЦреЗрдВ? рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрддреНрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкреБрд░рд╛рдиреЗ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдореЗрдВ рдХреБрдЫ рднреА рдЧрд▓рдд рдирд╣реАрдВ рдерд╛ - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╕ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рдерд╛ред рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдФрд░ рд╕рдЪреНрдЪреЗ рд╕рдВрдШрдирди рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛, рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдХрд╣рд╛рдиреА рд╣реИ ред



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

ES7 / 8 / рдЕрдЧрд▓рд╛, рдПрд▓реНрдо рдФрд░ рдХрд╛рд░рдг рдХреЗ рдЙрджрдп рдХреЗ рд╕рд╛рде, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЛрдб рдЬреЛ рдПрдХ рдмрд╛рд░ *.js рдерд╛ред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдЕрдкреНрд░рднреЗрджреНрдп рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдпрд╣ рдкреНрд░рд╡реГрддреНрддрд┐ рдРрд╕реА рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рд╣реИред рдЗрд╕рд╕реЗ рдЕрднрд┐рднреВрдд рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдорд╛рд░реЗ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рди рдХрд░реЗрдВ?

рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд


рдПрдХ рдХрд╛рдо рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд░рдиреЗ рдХреА рднрд╛рд╡рдирд╛ рдореЗрдВ, рд╣рдордиреЗ рдЗрди рдЖрдВрддрд░рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдХрдИ рднрд╛рдЧреЛрдВ рдореЗрдВ рдмрдирд╛рдпрд╛ рд╣реИ:

  1. dust2jsx - jsx рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдзреВрд▓ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдкреИрдХреЗрдЬ
  2. рд░рдЯ (рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдВ) - рдбрд┐рд╕реНрдХ рдкрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ / рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ред рд╕рдВрджрд░реНрднрд┐рдд рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕рд╣рд┐рдд рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдФрд░ рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ dust2jsx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ

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

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


All Articles