React: рд░рд┐рдПрдХреНрдЯ рдлрд╛рдпрд░: рд░рд┐рдПрдХреНрдЯ рдбреЛрдо рдХрд╛ рдЖрдзреБрдирд┐рдХреАрдХрд░рдг

рдХреЛ рдирд┐рд░реНрдорд┐рдд 31 рдЕрдЧре░ 2018  ┬╖  227рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: facebook/react


рдирд╡реАрдирддрдо рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП, 5 рдЬреВрди, 2019 рдХрд╛ рдЕрдкрдбреЗрдЯ рджреЗрдЦреЗрдВ: https://github.com/facebook/react/issues/13525#issuecomment -499196939


рдЗрд╕ рд╕рд╛рд▓, рд░рд┐рдПрдХреНрдЯ рдЯреАрдо рдЬреНрдпрд╛рджрд╛рддрд░ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдореВрд▓рднреВрдд рд╕реБрдзрд╛рд░реЛрдВ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд░рд╣реА рд╣реИред

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

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

рд╣рдо рдЗрд╕ рдкреНрд░рдпрд╛рд╕ рдХреЛ "рд░рд┐рдПрдХреНрдЯ рдлрд╛рдпрд░" рдХрд╣ рд░рд╣реЗ рд╣реИрдВред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдЧ

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

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

рд░рдгрдиреАрддрд┐

рдХреБрдЫ рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реА рд╡рд░реНрддрдорд╛рди рдпреЛрдЬрдирд╛ рдмрдирд╛рддреА рд╣реИрдВред рд╣рдо рдХреБрдЫ рдЬреЛрдбрд╝ рдпрд╛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЕрдм рддрдХ рдХреА рд╕реЛрдЪ рдпрд╣рд╛рдБ рд╣реИ:

  • value рд╡рд┐рд╢реЗрд╖рддрд╛ (https://github.com/facebook/react/issues/11896) рдореЗрдВ рдЗрдирдкреБрдЯ рдорд╛рди рджрд┐рдЦрд╛рдирд╛ рдмрдВрдж рдХрд░реЗрдВред рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ https://github.com/facebook/react/pull/6406 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ 15.2.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдмрд╣реБрдд рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд▓реЛрдЧреЛрдВ рдХрд╛ DOM рдХрд╛ рд╡реИрдЪрд╛рд░рд┐рдХ рдореЙрдбрд▓ рдпрд╣ рд╣реИ рдХрд┐ value рдЬреЛ рд╡реЗ DOM рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ рд╡рд╣ value JSX рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдбреЛрдо рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЬрдм рдЖрдк рдХрд┐рд╕реА рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ value рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд░рд┐рдПрдХреНрдЯ рднреА рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╕реАрдПрд╕рдПрд╕ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХреБрдЫ рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╢рд╛рдпрдж рдорджрджрдЧрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди, рдмрдЧ рдХрд╛ рдПрдХ рдЭрд░рдирд╛ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ - рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдЕрднреА рднреА рдЖрдЬ рддрдХ рдареАрдХ рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВред рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдХреБрдЫ рдирддреАрдЬреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: https://github.com/facebook/react/issues/7179 , https://github.com/facebook/react/issues/8395 , https://github.com/facebook /react/issues/7328 , https://github.com/facebook/react/issues/7233 , https://github.com/facebook/react/issues/11881 , https://github.com/facebook/react /рдореБрджреНрджреЛрдВ/7253 , https://github.com/facebook/react/pull/9584 , https://github.com/facebook/react/pull/9806 , https://github.com/facebook/react/pull /9714 тАЛтАЛ, https://github.com/facebook/react/pull/11534 , https://github.com/facebook/react/pull/11746 , https://github.com/facebook/react/pull/12925 . рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рд▓рдбрд╝рддреЗ рд░рд╣рдирд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдпрд╛рддреНрд░рд╛ рдХрд╛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ DOM рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ ( @nhunzaker , @awery , @jquense , рдФрд░ @ philipp-spiess ) рдХреЗ рдЕрдердХ рдкрд░рд┐рд╢реНрд░рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд┐рд╕реНрддреГрдд DOM рдкрд░реАрдХреНрд╖рдг рдЬреБрдбрд╝рдирд╛рд░ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдкреНрд░рддрд┐рдЧрдорди рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗред

  • рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдмрдЬрд╛рдп рд░рд┐рдПрдХреНрдЯ рд░реВрдЯ рдкрд░ рдИрд╡реЗрдВрдЯ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВ (https://github.com/facebook/react/issues/2043)ред рд░рд┐рдПрдХреНрдЯ рдРрдкреНрд╕ рдХреЛ рдмрдбрд╝реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рддреЗ рд╕рдордп рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдмрди рдЬрд╛рддрд╛ рд╣реИред рдПрдЯрдо рд╕рдВрдкрд╛рджрдХ рдЙрди рдкрд╣рд▓реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ рдЬреЛ рдЗрд╕рд╕реЗ рдЯрдХрд░рд╛рдП рдереЗред рдХреЛрдИ рднреА рдмрдбрд╝реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдЕрдВрддрддрдГ stopPropagation рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдПрдЬ рдХреЗрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреА рд╣реИ рдЬреЛ рдиреЙрди-рд░рд┐рдПрдХреНрдЯ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рд░рд┐рдПрдХреНрдЯ рд░реВрдЯреНрд╕ (https://github.com/facebook/react/issues/8693, https://github.com) рдкрд░ .com/facebook/react/pull/8117, https://github.com/facebook/react/issues/12518)ред рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд░реВрдЯ рдкрд░ рдИрд╡реЗрдВрдЯ рдХреЛ рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рддрд╛рдХрд┐ рд╣рдо рдЕрдкрдбреЗрдЯ рдХреЗ рджреМрд░рд╛рди рдХрдо рд░рдирдЯрд╛рдЗрдо рдЪреЗрдХ рдХрд░ рд╕рдХреЗрдВред

  • onChange рд╕реЗ onInput рдкрд░ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рди рдХрд░реЗрдВ (https://github.com/facebook/react/issues/9657)ред рд╡рд┐рд╕реНрддреГрдд рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдореБрджреНрджрд╛ рджреЗрдЦреЗрдВред рдпрд╣ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ DOM рдореЗрдВ input рдИрд╡реЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдиреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд░рд┐рдПрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдИрд╡реЗрдВрдЯ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЬрдмрдХрд┐ рд╣рдо рдЖрдо рддреМрд░ рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдн рдХреЗ рдмрд┐рдирд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрдбрд╝реЗ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрддреЗ рд╣реИрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдХреБрдЫ рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рднреА рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рдирд┐рдпрдВрддреНрд░рд┐рдд рдЗрдирдкреБрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдЬреИрд╕реЗ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд░реВрд░реА рд╣реИред рддреЛ рдЗрди рджреЛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ onInput рдФрд░ onChange рдмрдирд╛рдиреЗ рдХреЗ рдЕрд╡рд╕рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ DOM рдИрд╡реЗрдВрдЯ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред

  • рдШрдЯрдирд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдХрд╛рдлреА рд╕рд░рд▓ рдмрдирд╛рдПрдВ (https://github.com/facebook/react/issues/4751)ред 2013 рдореЗрдВ рдЗрд╕рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рдж рд╕реЗ рд╡рд░реНрддрдорд╛рди рдШрдЯрдирд╛ рдкреНрд░рдгрд╛рд▓реА рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рдмрджрд▓реА рд╣реИред рдЗрд╕реЗ рд░рд┐рдПрдХреНрдЯ рдбреЛрдо рдФрд░ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдореЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╕рд╛рд░ рд╣реИред рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрдИ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╣рд▓ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдПрдБ рдкреИрджрд╛ рдХрд░рддреА рд╣реИрдВред рдпрд╣ рд░рд┐рдПрдХреНрдЯ рдбреЛрдо рдмрдВрдбрд▓ рдЖрдХрд╛рд░ рдХреЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП рднреА рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рд╣рдорд╛рд░реЗ рдпрд╣рд╛рдВ рдХреЛрдИ рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рд╢рд╛рдпрдж рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлреЛрд░реНрдХ рдХрд░ рджреЗрдВрдЧреЗ, рдФрд░ рдлрд┐рд░ рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдХрд┐рддрдирд╛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рд╣рдо рдбреАрдУрдПрдо рд╣рдореЗрдВ рдЬреЛ рджреЗрддреЗ рд╣реИрдВ рдЙрд╕рдХреЗ рдХрд░реАрдм рд░рд╣рддреЗ рд╣реИрдВред рдпрд╣ рдкреНрд░рд╢рдВрд╕рдиреАрдп рд╣реИ рдХрд┐ рд╣рдо рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдШрдЯрдирд╛рдУрдВ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд▓реЗрдВрдЧреЗред рд╣рдореЗрдВ рдореАрдбрд┐рдпрд╛ рдЗрд╡реЗрдВрдЯ рдЬреИрд╕реЗ рдмрдмрд▓рд┐рдВрдЧ рдЗрд╡реЗрдВрдЯ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ DOM рдореЗрдВ рдмрдмрд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмрдмрд▓ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред рд╣рдо рдХреБрдЫ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдкреЛрд░реНрдЯрд▓реНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреБрджрдмреБрджрд╛рдирд╛, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рд╕рд░рд▓ рдорд╛рдзреНрдпрдореЛрдВ (рдЬреИрд╕реЗ рдИрд╡реЗрдВрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рднреЗрдЬрдирд╛) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рдкреИрд╕рд┐рд╡ рдЗрд╡реЗрдВрдЯ рдЗрд╕рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

  • className тЖТ class (https://github.com/facebook/react/issues/4331, рдпрд╣ рднреА рджреЗрдЦреЗрдВ https://github.com/facebook/react/issues/13525#issuecomment- 417818906 рдиреАрдЪреЗ)ред рдпрд╣ рдЕрдирдЧрд┐рдирдд рдмрд╛рд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░рд┐рдПрдХреНрдЯ 16 рдореЗрдВ class рдХреЛ DOM рдиреЛрдб рдореЗрдВ рдЬрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдЬреЛ рднреНрд░рдо рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╡рд╣ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕реАрдорд╛рдУрдВ рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╡рд╣ рдмрдЪрд╛рд╡ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╣рдо рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЕрдкрдиреЗ рдЖрдк рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдКрдкрд░ рдХреА рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рджреЛрдиреЛрдВ рдХреЛ рдмрд┐рдирд╛ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдПрдХ рдШрдЯрдХ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЛ рджреЛрдиреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╕реАрдЦрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЙрдирдореЗрдВ рдкрд░рд╕реНрдкрд░ рд╡рд┐рд░реЛрдзреА рд╣реЛрдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рд╣реИред рдЪреВрдВрдХрд┐ рдХрдИ рдШрдЯрдХ className (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЬреЛрдбрд╝рдХрд░) рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдмрд╣реБрдд рддреНрд░реБрдЯрд┐-рдкреНрд░рд╡рдг рд╣реИред

рд╕рдордЭреМрддреЛрдВ рд╕реЗ

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

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

рдпреЛрдЬрдирд╛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдирд╛

рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрд╣реБрдд рдЦреЛрдЬрдкреВрд░реНрдг рд╣реИред рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдЪреАрдЬреЗрдВ рдЦрддреНрдо рд╣реЛ рдЬрд╛рдПрдВрдЧреА рдпрд╛ рдирд╣реАрдВред рдЪреВрдВрдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ Facebook рдкрд░ рдбреЙрдЧрдлрд╝реВрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЖрдЬрд╝рдорд╛рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдлреАрдЪрд░ рдлреНрд▓реИрдЧ рдкреЗрд╢ рдХрд░реЗрдВрдЧреЗ, рдХреБрдЫ рдХреЛрдб рдлреЛрд░реНрдХ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдЗрд╕реЗ рдлреЗрд╕рдмреБрдХ рдкрд░ рд▓реЛрдЧреЛрдВ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рд░рдЦреЗрдВрдЧреЗред рдУрдкрди рд╕реЛрд░реНрд╕ 16.x рд░рд┐рд▓реАрдЬ рдкреБрд░рд╛рдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрдирд╛рдП рд░рдЦреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдорд╛рд╕реНрдЯрд░ рдкрд░ рдЖрдк рдЗрд╕реЗ рдлреАрдЪрд░ рдлреНрд▓реИрдЧ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред

рдореИрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдпрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ @nhunzaker , @awery , @jquense , рдФрд░ @ philipp-spiess рд╕реЗ рдЕрдзрд┐рдХ рдЪрд░реНрдЪрд╛ рдФрд░ рдпреЛрдЧрджрд╛рди рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рддрд╛рд░рдХреАрдп рд╕рд╣рдпреЛрдЧреА рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд░рд┐рдПрдХреНрдЯ рдбреЛрдо рдХреЛ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рд╣рдо рдлрд╛рдЗрдмрд░ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдереЗред рдпрджрд┐ рдХреЛрдИ рдРрд╕рд╛ рдХреНрд╖реЗрддреНрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдФрд░ рд╣рдо рдЙрд╕ рдкрд░ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред

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

DOM React Core Team Big Picture

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

className рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдореБрдЭреЗ рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреБ рдкрд╕рдВрдж рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рдХреНрд╖реНрдп рдХреЗ рд╡рд┐рдкрд░реАрдд рдЕрдиреНрдп рдмрд┐рдВрджреБ рдкреАрдЫрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдбреАрдУрдПрдо рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд╕рдВрд░реЗрдЦрд┐рдд)ред рд░рд┐рдПрдХреНрдЯ DOM рдЧреБрдгреЛрдВ рд╕реЗ рдмрдВрдзрддрд╛ рд╣реИ, HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдирд╣реАрдВ (рдпрд╣ рдкрд╣рд▓реЗ рдмрд┐рдВрджреБ рдореЗрдВ рднреА рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред DOM рдПрд▓рд┐рдореЗрдВрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдирд╛рдо className рд╣реИ, рди рдХрд┐ class ред рддреЛ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдЗрд╕рдХрд╛ рдирд╛рдо class рдХреНрдпреЛрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛?

рд╕рднреА 227 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИред рдмрдВрдбрд▓ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдирд╛ рдФрд░ "рд╡рд░реНрдЧ" рдкреНрд░реЛрдк рдРрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдмрд╣реБрдд рд╕реНрд╡рд╛рдЧрдд рд╣реЛрдЧрд╛ред

рдорд╣рд╛рди рдХрд╛рдо!

рдореИрдВ

рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓реЗрдЦрдХ рдзреНрдпрд╛рди рджреЗрдВ! рдореИрдВ

рдорд╣рд╛рди!

рдХреНрд▓рд╛рд╕рдирд╛рдо тЖТ рдХреНрд▓рд╛рд╕ рд╢рд╛рдирджрд╛рд░ рд╣реИ

рдЕрдиреНрдп рд╕рднреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрднреА рднреА clipPath , htmlFor , tabIndex , рдЖрджрд┐ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

class рдХреЛ рдЕрдкрдирд╛рдирд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓ рдмрдирд╛рдиреЗ рдореЗрдВ рдПрдХ рдмрдбрд╝реА рд╕рдлрд▓рддрд╛ рд╣реИред рдмрдзрд╛рдИ рд╣реЛред

рдпрд╣ рдХрдорд╛рд▓ рдХрд╛ рд╣реИред рдореИрдВ рдмрд╣реБрдд рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдХреИрд╕реЗ class рдХреА рдУрд░ рдмрдврд╝рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╣рд╛рд░рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ ({ class }) => <div class={class} /> рд╢реБрд░реВ рдореЗрдВ рдПрдХ рдЖрд░рдХреНрд╖рд┐рдд рдХреАрд╡рд░реНрдб рд╕рдорд╕реНрдпрд╛ рдкреЗрд╢ рдХрд░реЗрдЧрд╛?

рдпрд╣ рд╢рд╛рдирджрд╛рд░ рдЦрдмрд░ рд╣реИ, рдзрдиреНрдпрд╡рд╛рдж @gaearon!

className рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдореБрдЭреЗ рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреБ рдкрд╕рдВрдж рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рдХреНрд╖реНрдп рдХреЗ рд╡рд┐рдкрд░реАрдд рдЕрдиреНрдп рдмрд┐рдВрджреБ рдкреАрдЫрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдбреАрдУрдПрдо рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд╕рдВрд░реЗрдЦрд┐рдд)ред рд░рд┐рдПрдХреНрдЯ DOM рдЧреБрдгреЛрдВ рд╕реЗ рдмрдВрдзрддрд╛ рд╣реИ, HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдирд╣реАрдВ (рдпрд╣ рдкрд╣рд▓реЗ рдмрд┐рдВрджреБ рдореЗрдВ рднреА рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред DOM рдПрд▓рд┐рдореЗрдВрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдирд╛рдо className рд╣реИ, рди рдХрд┐ class ред рддреЛ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдЗрд╕рдХрд╛ рдирд╛рдо class рдХреНрдпреЛрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛?

рд╢рд╛рдирджрд╛рд░! рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдмрдВрдбрд▓ рдЖрдХрд╛рд░ рдореЗрдВ рдХрдореА рдХрд╛ рд▓рдХреНрд╖реНрдп рд╣реИ?

рдореИрдВ

рдЕрдиреНрдп рд╕рднреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдЕрднреА рднреА рдХреНрд▓рд┐рдкрдкрд╛рде, рдПрдЪрдЯреАрдПрдордПрд▓рдлреЛрд░, рдЯреИрдмрдЗрдВрдбреЗрдХреНрд╕ рдЗрддреНрдпрд╛рджрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред

рдореИрдВ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореИрдВ рддрд░реНрдХ рджреВрдВрдЧрд╛ рдХрд┐ рдпреЗ рдкрд░рд┐рд╡рд░реНрддрди рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИрдВ ( for рдХреЛ рдЫреЛрдбрд╝рдХрд░)ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЗрд╕рдХрд╛ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдкрд╣рд▓реВ рд╣реИред рдмрдВрдбрд▓ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдпреЛрдЧрджрд╛рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрд╡рд╕рд░ рд╣реИред

рд╣реЛ рдЬрд╛рдП!

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

рдХреНрд▓рд╛рд╕рдирд╛рдо рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдореБрдЭреЗ рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреБ рдкрд╕рдВрдж рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рдХреНрд╖реНрдп рдХреЗ рд╡рд┐рдкрд░реАрдд рдЕрдиреНрдп рдмрд┐рдВрджреБ рдкреАрдЫрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдбреАрдУрдПрдо рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд╕рдВрд░реЗрдЦрд┐рдд)ред рд░рд┐рдПрдХреНрдЯ DOM рдЧреБрдгреЛрдВ рд╕реЗ рдмрдВрдзрддрд╛ рд╣реИ, HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдирд╣реАрдВ (рдпрд╣ рдкрд╣рд▓реЗ рдмрд┐рдВрджреБ рдореЗрдВ рднреА рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред

рдФрд░ рдлрд┐рд░ рднреА рдЕрдЧрд░ рд╣рдо рдПрдХ рдЕрдЬреНрдЮрд╛рдд рдХреБрдВрдЬреА/рдореВрд▓реНрдп рдЬреЛрдбрд╝реА рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕реЗ рд░рд┐рдПрдХреНрдЯ 16 рдХреЗ рдмрд╛рдж рд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрд╕рдВрдЧрдд рд╣реИрдВред рд╕рд╛рде рд╣реА, рдореЗрд░реА рдЯрд┐рдкреНрдкрдгреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ value рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рдиреЗ рдореЗрдВ рдЧрд▓рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереАред рдХреНрдпрд╛ рд░рд┐рдПрдХреНрдЯ рдПрдкреАрдЖрдИ рдЕрдкрдиреЗ рдПрдкреАрдЖрдИ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдо рдпрд╛ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдСрд░реНрдереЛрдЧреЛрдирд▓ рд╣реИред

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

рдЬрдм рддрдХ рд░рд┐рдПрдХреНрдЯ рдлрд╛рдпрд░ рддреЗрдЬреА рд╕реЗ рдзрдзрдХ рд░рд╣рд╛ рд╣реИ....

рдпреЗ рд╕рднреА рдмрджрд▓рд╛рд╡ рд╢рд╛рдирджрд╛рд░ рд╣реИрдВред рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ react-testing-library рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реВрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд░реВрдЯ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ (рдпрд╛ рд╢рд╛рдпрдж рдШрдЯрдирд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫреЛрдбрд╝ рджреЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдм рдЖрдзреБрдирд┐рдХ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?), рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ/рдкреБрдирд░реНрд▓реЗрдЦрди, рдФрд░ onChange -> onInput react-testing-library рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрднрд╡ рдореЗрдВ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд╕реБрдзрд╛рд░ рдХрд░реЗрдЧрд╛ред

рдореБрдЭреЗ рдЗрд╕ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

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

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

@tannerlinsley ({ class: className }) => <div class={className} /> рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ jsx 2.0 рдСрдмреНрдЬреЗрдХреНрдЯ рд╢реЙрд░реНрдЯ рд╣реИрдВрдб рдиреЛрдЯреЗрд╢рди ( <div class /> ) рдХреЛ рдорд╛рд░ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд╣реА рд╣реЛ ...

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

рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдмрдВрдбрд▓ рдЖрдХрд╛рд░ рдореЗрдВ рдХрдореА рдХрд╛ рд▓рдХреНрд╖реНрдп рд╣реИ?

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

рд╡рд╛рд╣, рдпрд╣ рд▓рдЧрднрдЧ рдЙрди рд╕рднреА рдбрд┐рдЬрд╝рд╛рдЗрди рдирд┐рд░реНрдгрдпреЛрдВ рдХреА рдПрдХ рдЧрдгрдирд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдореИрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реВрдБ рдЬрдм рд▓реЛрдЧ рдореБрдЭрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╡рд┐рдкрдХреНрд╖ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫрддреЗ рд╣реИрдВред

рдпрд╣ рдЬрд┐рд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдЙрд╕рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░реЛред

рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдЧреНрд░реЗрдб рдкрде рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЬреЛ className рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

@gaearon рд╢рд╛рдпрдж рдпрд╣ рдХреЛрдИ рдмрдбрд╝реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рдЖрдЬ рдпрд╣ рдХрд╣рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ "рдкреНрд░реЙрдкреНрд╕ DOM рдЧреБрдг рд╣реИрдВ HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдирд╣реАрдВ", рдЕрдм рдпрд╣ "рдХреНрд▓рд╛рд╕рдирд╛рдо рдХреЛ рдЫреЛрдбрд╝рдХрд░, рд╡рд╣ HTML рдирд╛рдо рд╣реИ"ред рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЧрдбрд╝рдмрдбрд╝ рдХрд░рдиреЗ рдХреЗ 10 рдорд┐рдирдЯ рдХреЗ рдПрд╕рд╡реАрдЬреА рдбрдмреНрд▓реНрдпреВ/рдУ рдХреЛ рдХреЙрдкреА/рдкреЗрд╕реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ

htmlFor рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ className -> class рд╕рдВрдХреНрд░рдордг рдХреЛ рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╢рд╛рдпрдж рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЕрд╡рдзрд┐ рдореЗрдВред рдпрд╣ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореБрджреНрджреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓рдЧрднрдЧ рд╣рд░ рдШрдЯрдХ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА - рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдмрд╣реБрдд рд╣реА рдорд╛рдореВрд▓реАред рдпрд╣ рдЕрдзрд┐рдХрддрд░ рдареАрдХ рд╣реИ рдпрджрд┐ рдЖрдк рдХреЛрдб "рд╕реНрд╡рдпрдВ" рд╣реИрдВ рдФрд░ рдПрдХ рдХреЛрдбрдореЛрдб рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдХрд╛рдлреА рд╣рдж рддрдХ рд░рдЦрд░рдЦрд╛рд╡ рдХреА рджрдпрд╛ рдкрд░ рд╣реЛрддреЗ рд╣реИрдВред

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

рдореИрдВ @felixfbecker . рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ
рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рд╡рд░реНрдЧрдирд╛рдо рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред

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

@felixfbecker рдпрд╣ JSX рдореЗрдВ class / for рдФрд░ JS рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ className / htmlFor рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

<label class="foo" for="bar">..</label>

рд╣реЛрдЧрд╛

React.createElement('label', {className: 'foo', htmlFor: 'bar'}, '..')

рдмрдврд╝рд┐рдпрд╛ рдпреЛрдЬрдирд╛! рдпрд╣рд╛рдБ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ рдХрд┐! рдореИрдВ

рдпрд╣ рдХрдорд╛рд▓ рд╣реИ, рдореИрдВ рдирдП рд╕рд╛рдорд╛рди рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рдШрдЯрдирд╛ рдкреНрд░рдгрд╛рд▓реА (#4751) рдХреЛ рдХрд╛рдлреА рд╕рд░рд▓ рдмрдирд╛рдПрдВред

рдЕрдм рд░рд┐рдПрдХреНрдЯрдбреЙрдо рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХрд╕реНрдЯрдо рддрддреНрд╡реЛрдВ рдХреЛ рдирд╣реАрдВ рд╕реМрдВрдк рд╕рдХрддреА рд╣реИред https://github.com/facebook/react/issues/9242

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдХрд╕реНрдЯрдо рддрддреНрд╡ рдЬреИрд╕реЗ <x-component onMyEvent={ev => {...}} /> . рдкрд░ рдХрд╕реНрдЯрдо рд╣реИрдВрдбрд▓рд░ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛

@gaearon
рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ?

рдпреЗ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рдЙрддреНрдХреГрд╖реНрдЯ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛, рдореЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдЖрдХрд╛рд░ рдореЗрдВ рдХрдореА рд╣реИред рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдорддрд▓рдм рдбреАрдПрдХреНрд╕ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрддрдирд╛ рдореЛрдЯрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдФрд╕рдд рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореЛрдмрд╛рдЗрд▓ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рд╕рдм рд╣реЛ рд╕рдХрддрд╛ рдерд╛!

рдЗрд╡реЗрдВрдЯ рдбреЗрд▓рд┐рдЧреЗрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рд╕реЗ #1254 рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рджрд░рд╡рд╛рдЬреЗ рдЦреБрд▓реЗрдВрдЧреЗ; рдЬрд╣рд╛рдВ рдХреБрдЫ рдШрдЯрдирд╛рдПрдВ рдЙрд╕ рдиреЛрдб рдХреЗ рд▓рд┐рдП perf рдХреЛ рдиреАрдЪрд╛ рджрд┐рдЦрд╛рддреА рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ рд╡реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ (рдЬреЛ рд░рд┐рдПрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдкреВрд░реЗ рдРрдк рдХрд╛ рдорддрд▓рдм рд╣реИ)ред

рд╕рд╛рде рд╣реА, рдПрдХ рд▓рдВрдмреЗ рд╢реЙрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкреНрд░реЛрдк рд░рдЦрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ? рд╕реНрд╡реАрдХрд╛рд░реНрдп HTML рдкреНрд░реЙрдкреНрд╕ (рдбреЗрдЯрд╛-* рдХреЗ рдХрд╛рд░рдг) рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг DOM рдиреЛрдбреНрд╕ рдореЗрдВ рдкреНрд░реЙрдкреНрд╕ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп рдПрдХ рдЯрди рдмрдЧ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХреЛ рдкреНрд░реЙрдкреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдЯреАрдХ рдкреНрд░рдХрд╛рд░ рдФрд░ рдбреЗрдЯрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдЕрдиреБрдорддрд┐ рдХреЗ рдмреАрдЪ рдЪрдпрди рдХрд░рдирд╛ рд╣реИред

рдореЗрдВ рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реБ

@ryanflorence рдереЛрдбрд╝рд╛ рд╣рдЯрдХрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝реЗ рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рднреА (рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ) рдХреЛ HTML/css/svg -> jsx рдЯреНрд░рд╛рдВрд╕рдлрд╝реЛрдорд░ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдерд╛ рддрд╛рдХрд┐ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП HTML рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдиреЗ рдЫреЛрдЯреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреА рдЬрд╛ рд╕рдХреЗред рд░рд┐рдПрдХреНрдЯ рдкреНрд░реЛрдк рдХреЗ рд▓рд┐рдП attrsред рдЗрддрдиреЗ рд╕рд╛рд░реЗ рдорд╛рдирд╡-рдШрдВрдЯреЗ рдмрд░реНрдмрд╛рдж рдХрд░ рджрд┐рдП рдЧрдП рдЬреНрдпрд╛рджрд╛рддрд░ рдЦреЛрдЬ-рдФрд░-рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди :(

рдПрдХ рд╣реА рдореБрджреНрджреЗ (рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ) рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рджреЗрдЦрдирд╛ рдмрд╣реБрдд рдЕрдЬреАрдм рд╣реИ:

рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп рдбреАрдУрдПрдо рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рд╕рд╛рде рд░рд┐рдПрдХреНрдЯ рдХреЛ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдирд╛ рд╣реИ
рд╡рд░реНрдЧрдирд╛рдо тЖТ рд╡рд░реНрдЧ
рдЕрднреА рднреА рдХреНрд▓рд┐рдкрдкрд╛рде, рдПрдЪрдЯреАрдПрдордПрд▓рдлреЛрд░, рдЯреИрдмрдЗрдВрдбреЗрдХреНрд╕ рдЗрддреНрдпрд╛рджрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред

рдЬрдм рдпреЗ рд╕рднреА DOM API рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдордХрдХреНрд╖ рд╣реЛрдВ

рдФрд░ рдпрд╣ рддрд░реНрдХ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИ:

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

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣рдореЗрд╢рд╛ рдЬреЗрдПрд╕ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдмрд╣реБрдд рд╣реА рдкрддрд▓реА рдкрд░рдд рд░рд╣реА рд╣реИред рддреЛ JSX рдХреЗ рдХреЛрдг рдХреЛрд╖реНрдардХ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ JS _and_ рдХрд╛ DOM API рдореЗрдВ рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдордХрдХреНрд╖ рдерд╛, рдЬреЛ рд╕реАрдзреЗ DOM рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдерд╛: className , ClipPath , htmlFor , tabIndex рдЖрджрд┐ рдЖрджрд┐ рдЖрджрд┐ред

class рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрдгрдп рдХреЗ рд╕рд╛рде рд░рд┐рдПрдХреНрдЯ рдПрдХ рдкрддрд▓реА рдкрд░рдд рдмрдирдирд╛ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ ( class JS рдореЗрдВ рдПрдХ рдЖрд░рдХреНрд╖рд┐рдд рд╢рдмреНрдж рд╣реИ) рдФрд░ DOM API рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреЗ рдШреЛрд╖рд┐рдд рд▓рдХреНрд╖реНрдп рд╕реЗ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рджреЗрдЦрдирд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдХрд┐ рдЖрдк рджреЛрдиреЛрдВ "рдСрдирдЪреЗрдВрдЬ рд╕реЗ рдСрдирдЗрдирдкреБрдЯ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ" рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбреАрдУрдПрдо рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реИ рдФрд░ className -> class рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдХреЗ рдбреАрдУрдПрдо рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдпрд╣ рдХреАрдбрд╝реЗ рдХреА рдПрдХ рдкреВрд░реА рдХреИрди рдЦреЛрд▓рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓реЛрдЧ рдЕрдиреНрдп рднрд╛рдЧреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдорд╛рдВрдЧ рдХрд░реЗрдВрдЧреЗ (рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╛рдВрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред рдХреЗрд╡рд▓ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ: рд╣рдо data-* рдХреЗ рдмрдЬрд╛рдп data-* dataset рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░рддреЗ рд╣реИрдВ? рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рдХрд┐ data-* рд╡реИрдз JS рдирд╣реАрдВ рд╣реИ (рдХрд╛рдлреА рд╣рдж class ) рдФрд░ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ DOM API рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ? рд╣рдо htmlFor рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрджрд▓рддреЗ? рдХреНрдпреЛрдВрдХрд┐ for рдПрдХ рдЖрд░рдХреНрд╖рд┐рдд рд╢рдмреНрдж рд╣реИ рдФрд░ htmlFor DOM API рдореЗрдВ рд╣реИ? рдЖрджрд┐ рдЖрджрд┐ рдЖрджрд┐ред

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

@gaearon рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдПрдХрдорд╛рддреНрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ CustomElements рдПрд╡рд░реАрд╡реЗрдпрд░ рдЗрдВрдЯрд░рдСрдк рдЯреЗрд╕реНрдЯ рдкрд░ рдЦрд░рд╛рдм рд╕реНрдХреЛрд░ рдХрд░рддрд╛ рд╣реИ: https://custom-elements-everywhere.com/
рдФрд░ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдореБрджреНрджреЗ рд╣реИрдВ: https://github.com/facebook/react/issues/11347 , https://github.com/facebook/react/issues/7249 , https://github.com/facebook /рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛/рдореБрджреНрджреЛрдВ/9230

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

рдпрджрд┐ рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЪрд┐рдВрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рд░рд┐рдПрдХреНрдЯ рдлреНрд▓реЗрдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рднреА рдЖрдЧ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЗрдореЛрдЬреАред

рдЗрд╡реЗрдВрдЯ рдбреЗрд▓рд┐рдЧреЗрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рд╕реЗ #1254 рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рджрд░рд╡рд╛рдЬреЗ рдЦреБрд▓реЗрдВрдЧреЗ; рдЬрд╣рд╛рдВ рдХреБрдЫ рдШрдЯрдирд╛рдПрдВ рдЙрд╕ рдиреЛрдб рдХреЗ рд▓рд┐рдП perf рдХреЛ рдиреАрдЪрд╛ рджрд┐рдЦрд╛рддреА рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ рд╡реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ (рдЬреЛ рд░рд┐рдПрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдкреВрд░реЗ рдРрдк рдХрд╛ рдорддрд▓рдм рд╣реИ)ред

рдХрд┐рд╕реА рди рдХрд┐рд╕реА рд░реВрдк рдореЗрдВ #1254 рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рд╕рд╛рде рд╣реА, рдПрдХ рд▓рдВрдмреЗ рд╢реЙрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкреНрд░реЛрдк рд░рдЦрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ?

рдореИрдВ рдЕрднреА рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреНрд░рддрд┐рдмрджреНрдз рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдмрдбрд╝реА рд╕рддрд╣ рд╣реИред DOM рдХреЗ рд▓рд┐рдП рд░рд┐рдЪ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ( ariaSet , dataSet , classList ) рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рд░рд┐рдПрдХреНрдЯ рдбреЛрдо рдореЗрдВ рдХрд┐рддрдирд╛ рдирд┐рд╡реЗрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдмрдирд╛рдо рдПрдХ рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд┐ рдЖрдкрдХреЛ рдПрдХ рд╕рдореГрджреНрдз рдбреЛрдо рдПрдкреАрдЖрдИ рджреЗрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдпреЗ рдкрд░рд┐рд╡рд░реНрддрди рдЕрдзрд┐рдХ рдХреЙрд╕реНрдореЗрдЯрд┐рдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдЪреНрдЪ рд╕рддрд╣ рдХреНрд╖реЗрддреНрд░ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЙрдирдХреЗ рд╕рд╛рде рд░реБрдХреВрдВрдЧрд╛ред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдзрдзрдХрддреЗ

@ryanflorence рдереЛрдбрд╝рд╛ рд╣рдЯрдХрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝реЗ рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рднреА (рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ) рдХреЛ HTML/css/svg -> jsx рдЯреНрд░рд╛рдВрд╕рдлрд╝реЛрдорд░ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдерд╛ рддрд╛рдХрд┐ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП HTML рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдиреЗ рдЫреЛрдЯреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреА рдЬрд╛ рд╕рдХреЗред рд░рд┐рдПрдХреНрдЯ рдкреНрд░реЛрдк рдХреЗ рд▓рд┐рдП attrsред рдЗрддрдиреЗ рд╕рд╛рд░реЗ рдорд╛рдирд╡-рдШрдВрдЯреЗ рдмрд░реНрдмрд╛рдж рдХрд░ рджрд┐рдП рдЧрдП рдЬреНрдпрд╛рджрд╛рддрд░ рдЦреЛрдЬ-рдФрд░-рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди :(

@jxub
https://transform.now.sh/html-to-jsx/

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

рдХреНрдпрд╛ рд░рд┐рдПрдХреНрдЯ рдлрд╛рдпрд░ рдЯреВ рд░рд┐рдПрдХреНрдЯ рдлрд╛рдЗрдмрд░ рдХреА рд╕рдорд╛рдирддрд╛ рдЧреИрд░-рджреЗрд╢реА рдЕрдВрдЧреНрд░реЗрдЬреА рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╣реИ?

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

@gaearon рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реИ!

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

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

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╡реИрд╕реЗ рднреА рдбреЛрдо рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╣рдо рдЬреЗрдПрд╕рдПрдХреНрд╕ рдХреЛ рдЬреЗрдПрд╕ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ рдбрдмреНрд▓реНрдпреВ 3 рд╕реА рдХреЗ рдХрд╣рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ https://github.com/facebook/jsx/issues/19

рдореЗрд░реА рдЯрд┐рдкреНрдкрдгреА рдЕрдВрдд рдореЗрдВ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, className рдареАрдХ рд╣реИред рдЬреЛ рд╣реИ рдЙрд╕реЗ рд╣реЛрдиреЗ рджреЛред рдЕрдкрдорд╛рди рдХреЛ рдЪреЛрдЯ рдореЗрдВ рди рдЬреЛрдбрд╝реЗрдВред

рдХреНрдпрд╛ рдХреЛрдИ рдХреГрдкрдпрд╛ рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореМрдЬреВрджрд╛ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ?

рдорд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдЗрдирдкреБрдЯ рдорд╛рди рджрд┐рдЦрд╛рдирд╛ рдмрдВрдж рдХрд░реЗрдВ

рдХреНрдпрд╛ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдЕрднреА рднреА рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рд╕рдЯреАрдХ event.target.value рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде рдирд┐рдпрдВрддреНрд░рд┐рдд рдЗрдирдкреБрдЯ рд╣реЛрдВрдЧреЗ, рдпрд╛ рдХреНрдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ рд░реЗрдлрд░реА рдФрд░ рдбреЛрдо рдиреЛрдбреНрд╕ рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ?

@nickmccurdy рдпрд╣ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХреНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ devtools

@tomdale рд░рд┐рдПрдХреНрдЯ рдПрдореНрдмрд░

рдЕрдЪреНрдЫрд╛! рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ 17 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рджреЗрдЦрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ ReactJS рдХрд╛ рдПрдХ рдирдпрд╛ рдпреБрдЧ рд╣реЛрдЧрд╛ред я╕П

@ рдЯреЛрдордбреЗрд▓ рд╣рдореНрдо: рдпрд╛рд░реНрди, рдлрд╛рдЗрдмрд░, рдлреИрдмреНрд░рд┐рдХ; рд╢рд╛рдпрдж рдПрдХ рдФрд░ рдХрдкрдбрд╝реЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╢рдмреНрдж рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдореИрдВ

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

@gaearon рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдПрдХрдорд╛рддреНрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ CustomElements рдПрд╡рд░реАрд╡реЗрдпрд░ рдЗрдВрдЯрд░рдСрдк рдЯреЗрд╕реНрдЯ рдкрд░ рдЦрд░рд╛рдм рд╕реНрдХреЛрд░ рдХрд░рддрд╛ рд╣реИ: https://custom-elements-everywhere.com/

рдирд╣реАрдВ, рдпрд╣реА рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ (рдХрд╕реНрдЯрдо рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддрддреНрд╡ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХреЛрдб рдкрде рд╣реИрдВ)ред рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреБрд░рд╛рдирд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдерд╛ рдФрд░ рдЬрдм рддрдХ рдирдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдареЛрд╕ рдирд╣реАрдВ рдерд╛, рддрдм рддрдХ рд╣рдо рдкреАрдЫреЗ рдХреА рдУрд░ рдирд╣реАрдВ рддреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдЫрддрд░реА рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдмреЗрд╣рддрд░ рдХрд╕реНрдЯрдо рддрддреНрд╡ рдЗрдВрдЯрд░рдСрдк рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдХреНрдпрд╛ рд░рд┐рдПрдХреНрдЯ рдлрд╛рдпрд░ рдЯреВ рд░рд┐рдПрдХреНрдЯ рдлрд╛рдЗрдмрд░ рдХреА рд╕рдорд╛рдирддрд╛ рдЧреИрд░-рджреЗрд╢реА рдЕрдВрдЧреНрд░реЗрдЬреА рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╣реИ?

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

рдХреНрдпрд╛ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдЕрднреА рднреА рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рд╕рдЯреАрдХ event.target.value рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде рдирд┐рдпрдВрддреНрд░рд┐рдд рдЗрдирдкреБрдЯ рд╣реЛрдВрдЧреЗ, рдпрд╛ рдХреНрдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ refs рдФрд░ DOM Nodes рд╕реЗ рд░реАрдбрд┐рдВрдЧ рд╡реИрд▓реНрдпреВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ?

рд╣рд╛рдВ, рдХреНрдпреЛрдВрдХрд┐ event.target.value рдПрдХ рд╕рдВрдкрддреНрддрд┐ рд╣реИ ред рд╣рдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЬреЛ рдХреЛрдИ рдЕрдиреНрдп рд▓реЛрдХрдкреНрд░рд┐рдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (AFAIK) рдФрд░ рдЬреЛ рдЕрдирдЧрд┐рдирдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рддрдм рддрдХ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдореВрд▓реНрдп рдкрд░ рд╕реАрдПрд╕рдПрд╕ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдЬреЛ рд╢рд╛рдпрдж рд╡реИрд╕реЗ рднреА рдЦрд░рд╛рдм рд╣реИ)ред

рдЕрдЪреНрдЫрд╛! рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ 17 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рджреЗрдЦрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рдЗрд╕реЗ 17 рддрдХ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рдирд╣реАрдВ рд╣реИрдВред рдпрд╣ 18 рдпрд╛ 19 рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд░рд┐рдПрдХреНрдЯ рдЬреИрд╕реА рдЕрдЪреНрдЫреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рдХрд╛рд╕ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред ЁЯОЙ class рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рдмрдирд╛ рджреЗрдЧрд╛, рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИ imo

@gaearon

рдХрд╕реНрдЯрдо рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддрддреНрд╡ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХреЛрдб рдкрде рд╣реИрдВ

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдареАрдХ рдХрд░рдирд╛ рднреА рд╣реИред рдХреНрдпрд╛ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рди рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ? рдпрд╣реА HTML рдФрд░ DOM рд╕реНрдкреЗрдХреНрд╕ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИред

@justinfagnani рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереА, рдЙрд╕ рд╕рдордп рд╣рдордиреЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рдерд╛ рдХрд┐ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкрд░рдВрдкрд░рд╛ рдирд╣реАрдВ рдереА рдХрд┐ рдХрд┐рд╕реА рд╕рдВрдкрддреНрддрд┐ рдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП - рдФрд░ рдПрдХ рдЬреЛрдЦрд┐рдо рдерд╛ рдХрд┐ рдПрдХ рдЪреЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдЙрдард╛рддреЗ рд╣реИрдВред рд╡реЗрдм рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ рдирдП рдЧреБрдг рдЬреЛрдбрд╝рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рддрдХ RFC рдФрд░ PRs рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдЖрдо рд╕рд╣рдорддрд┐ рд╣реИ рдЬрд┐рд╕ рдкрд░ @robdodson рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рд╣рдо рд╢рд╛рдпрдж рдЗрд╕реЗ рд╡рд╣рд╛рдВ рд╕реЗ рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВред

ЁЯСН ЁЯФе ЁЯФе ЁЯФе

рд░рд┐рдПрдХреНрдЯ рдлрд╛рдпрд░ рд╣рдореЗрдВ рдХреБрдЫ рдЪрддреБрд░ рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдХреВрд▓рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдЗрдиреНрдлрд░реНрдиреЛ рдореЗрдВ рд╣реИ - рд▓реЗрдХрд┐рди рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдХрд╛рд░рдг рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛ рдкрд╛рдпрд╛ рд╣реИред рд░реЛрдорд╛рдВрдЪрдХ рд╕рдордп :)

рдПрд▓рдЬреАрдЯреАрдПрдо

рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд className рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд -> class рдирд╛рдо рдмрджрд▓реЗрдВ: рдореБрдЭреЗ рдПрдХ classes рд╕рдВрдкрддреНрддрд┐ рдкрд╕рдВрдж рдЖрдПрдЧреА рдЬреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рд▓реЗрддреА рд╣реИред рдпрд╣ рдореБрдЭреЗ рдореЗрд░реЗ рдШрдЯрдХреЛрдВ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореИрдирд┐рдкреБрд▓реЗрд╢рди (рдпрд╛ рдХреНрд▓рд╛рд╕рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ) рдХреА рдкрд░реЗрд╢рд╛рдиреА рд╕реЗ рдмрдЪрд╛рдПрдЧрд╛ред

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

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

class рдФрд░ className рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВред

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

рдШрдЯрдХ рдПрдкреАрдЖрдИ рдХреЛ рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рддрд░реНрдХ рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ "рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ" рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ className рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рддреА рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рджрд╛рд╡реЗ рдХреЛ рдЧрд▓рдд рд╕рдордЭрд╛ рдЧрдпрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдкрд░ рдереЛрдбрд╝рд╛ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рд░рд┐рдПрдХреНрдЯ рдореЗрдВ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг, рд╣рдо рдЗрд╕ рдмрд╛рдд рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рддрд░рд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдореИрдВ рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ <Table> рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рд╕рд╣рд╛рд░рд╛ рдКрдВрдЯ рд╣реЛрдЧрд╛:

<Table
  rowHeight={10}
  headerBorderInset={5}
  renderRow={this.renderRow}
/>

рдореБрдЭреЗ рдХрд┐рд╕реА рдШрдЯрдХ рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ API рдореЗрдВ row_height рдпрд╛ row-height рдЬреИрд╕реЗ рдкреНрд░реЛрдк рдирд╛рдо рджреЗрдЦрдиреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИред рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЗ рдкреНрд░реЙрдкреНрд╕ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ "рдСрдкреНрд╢рди рдмреИрдЧ"), рдФрд░ рд╣рдо рдЖрдо рддреМрд░ рдкрд░ рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ camelCase рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ DOM рдореЗрдВ рд╣рдореЗрд╢рд╛ рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдИ рдЬрдЧрд╣реЛрдВ рдкрд░ DOM рдмрд╣реБрдд рд╕реБрд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рд╕рд╛рде рд╕рдВрд░реЗрдЦрд┐рдд рд╣реЛрддреА рд╣реИ рдЬреЛ camelCase рдХрд╛ рдЕрддреНрдпрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред

рд▓реЗрдХрд┐рди рдбреЛрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдпрд╣реАрдВ рдХрдВрдЯреАрд▓реА рд╣реЛ рдЬрд╛рддреА рд╣реИред

рдбреЛрдо рдЧреБрдг рд╕рд┐рд░реНрдл "рдЬреЗрдПрд╕ рдореЗрдВ рдЧреБрдг" рдирд╣реАрдВ рд╣реИрдВ

DOM рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдФрд░ рдЧреБрдг рд╣реИрдВред рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╡реЗ рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рдЖрдк рдЖрдорддреМрд░ рдкрд░ HTML рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВред рдЧреБрдг рд╡реЗ рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рдЖрдк рдЖрдорддреМрд░ рдкрд░ JS рд╕реЗ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ, DOM API рдЧреБрдг рд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╕реЗрдЯ рдХрд░рдиреЗ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИрдВ - рдФрд░ рд╡реЗ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

node.value = 10; // setting a property
node.setAttribute('value', '10'); // setting an attribute

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

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд┐рд░реНрдл рдЧреБрдг рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ

рдПрдХ рдЖрдо рдЧрд▓рдд рдзрд╛рд░рдгрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЪреВрдВрдХрд┐ рд░рд┐рдПрдХреНрдЯ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреЛрдо рдкреНрд░реЙрдкреНрд╕ рдХреЗ рд▓рд┐рдП camelCase рдХрдиреНрд╡реЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ DOM рдЧреБрдг рд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред рдпреЗ рдЧрд▓рдд рд╣реИред

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

рдореЗрд░рд╛ рдХрд╣рдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд░рд┐рдПрдХреНрдЯ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЧреБрдгреЛрдВ рдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рд╣реИ - рдФрд░ рдЗрд╕рдХрд╛ рдЗрд╕рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд░рд┐рдПрдХреНрдЯ DOM рддрддреНрд╡ _API_ рдХреЛ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо, рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдо, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдХреБрдЫ рдЕрдиреНрдп рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╕рдордЭ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред

рдлрд┐рд░ рднреА, рдЪрд▓реЛ рдмрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ?

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

рдЦреИрд░, рдмрд┐рд▓рдХреБрд▓ рдирд╣реАрдВред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдкреНрд░реЙрдкреНрд╕ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ DOM рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ:

<div
  tabIndex={1}
  data-id="123"
  aria-live="polite"
  nopin="nopin"
  itemType="http://schema.org/Movie"
  onClick={function() { alert('hi') }}
/>

рд╡рд┐рдбрдВрдмрдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдПрдХрдорд╛рддреНрд░ рдкреНрд░реЛрдк рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ DOM рдкреНрд░реЙрдкрд░реНрдЯреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рдЙрд╕реА рдирд╛рдо рд╕реЗ рд╣реИ ( tabIndex рдЕрдЧрд░ рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдереЗ) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ!

рддреЛ рдЗрд╕ рдмрд┐рдВрджреБ рддрдХ рдЖрдк рд╢рд╛рдпрдж рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рди рддреЛ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдФрд░ рди рд╣реА рд╕реБрд╕рдВрдЧрдд рд╣реИред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЧреБрдг рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ рдХрд┐ рдХрд╕реНрдЯрдо, рдЧреИрд░-рдорд╛рдирдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП), рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдПрдХ рд╕рдореГрджреНрдз рдПрдкреАрдЖрдИ ( data- рдмрдирд╛рдо dataSet ) рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред

рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╡рд┐рдЪрд▓рди рдХрд░рдирд╛ рдЪреБрдирддрд╛ рд╣реИ ( onClick рд░рд┐рдПрдХреНрдЯ рдмрдирд╛рдо onclick DOM рдкреНрд░реЙрдкрд░реНрдЯреА рдореЗрдВ) рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╕реНрдЯрдо рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХ рдЕрдХреНрд╕рд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдЬреИрд╕реЗ onItemClick рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк <Button onclick> рд▓реЗрдХрд┐рди <Table onItemClick> рд▓рд┐рдЦрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрд╕рдВрдЧрдд рд╣реЛрдЧрд╛ред рдФрд░ <Table onitemclick> рдХреИрдорд▓рдХреЗрд╕ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдПрдХ рдШрдЯрдХ рдПрдкреАрдЖрдИ рдореЗрдВ рдЯрд╛рд▓рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред

рдКрдкрд░, рдореИрдВрдиреЗ рд╕рдордЭрд╛рдпрд╛ рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА "рд╣рдореЗрд╢рд╛ рдбреАрдУрдПрдо рд╕рдВрдкрддреНрддрд┐ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ" рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИ , рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ (рддрд╛рдХрд┐ рдЕрдВрдЧреВрдареЗ рдХрд╛ рдирд┐рдпрдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдпрд╛рдВрддреНрд░рд┐рдХреА рдХрд╛ рд╡рд░реНрдгрди рди рдХрд░реЗ), рдФрд░ рдХрдИ рдореЗрдВ рдорд╛рдорд▓реЗ рдбреАрдУрдПрдо рдЧреБрдг рдмрд╕ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдо рдХреА рдЕрдиреБрдорддрд┐ рдХреЗ рд╕рд╛рде рд░рд╣рдирд╛ рд╣реЛрдЧрд╛ред

рдпрджрд┐ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЖрдЗрдП рд▓рдЧрд╛рддрд╛рд░ рдмрдиреЗ рд░рд╣реЗрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ?

рддреЛ рдХреНрдпреЛрдВ рди рдХреЗрд╡рд▓ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП? рдпрд╣ рдкреНрд░рд╢рдВрд╕рдиреАрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рдЙрд╕ рдкрд╣рд▓реЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдЯрдХрд░рд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рд▓рд╛рдпрд╛ рдерд╛ред рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рддрд░рд╣ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ред рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рдШрдЯрдХ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдкреНрд░реЙрдкреНрд╕ рдХреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд DOM рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

<Button
  borderColor='red'
  tabIndex={1}
 />

 // renders...

 <button
   tabIndex={1}
/>

рдХрд╕реНрдЯрдо Button рдХреЗ рд▓рд┐рдП рдЕрд╕рдВрдЧрдд рдкреВрдВрдЬреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдкреНрд░реЙрдкреНрд╕ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЕрдЬреАрдм рд╣реЛрдЧрд╛:

<Button
  borderColor='red'
  tabindex={1}
 />

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ tabIndex , cellSpacing рдЬреИрд╕реЗ рдкреНрд░реЙрдкреНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреНрдп рдбреЛрдо-рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░реЙрдкреНрд╕ рдХреИрдорд▓рдХреЗрд╕ рд╕рдореНрдореЗрд▓рди рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрдХреНрд╕рд░ рдШрдЯрдХ рдПрдкреАрдЖрдИ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

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

рдпрд╣ рдпрд╣ рднреА рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВ рдкреНрд░реЙрдкреНрд╕ рдЬреИрд╕реЗ data-* , aria-* , рдФрд░ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЙрдЪрд┐рдд рдЕрдкрд╡рд╛рдж рд╣реИрдВ (рднрд▓реЗ рд╣реА рд╣рдо рдЙрдирдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдореГрджреНрдз API рдмрдирд╛ рд╕рдХреЗрдВ )ред рд╡реЗ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдХрд╕реНрдЯрдо рдШрдЯрдХреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЖрдо рддреМрд░ рдкрд░, рд╡реЗ рдХрд╕реНрдЯрдо рдШрдЯрдХреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдбреАрдУрдПрдо рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдзрд┐рдХ рдпреБрдЧреНрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВ - рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡реЗ <Modal> рдпрд╛ <Button> рдЬреИрд╕реЗ рдПрдХ рд╕рдореГрджреНрдз рдХреИрдорд▓рдХреЗрд╕ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдмрди рдЬрд╛рддреЗ рд╣реИрдВред

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

рдЕрдЧрд░ "DOM рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдирд╛рдо" рдХрдиреНрд╡реЗрдВрд╢рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдХреБрдЫ рдФрд░ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдХреНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ "рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдо рдХрд╛ рдХреИрдорд▓рдХреЗрд╕ рд╕рдВрд╕реНрдХрд░рдг" рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪреЗрдХ рдЖрдЙрдЯ рд╣реЛрддрд╛ рд╣реИред

рдпрджрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрдЯреНрдЯрд░рдкрдВрдереА рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рдо srcSet рдирд╛рдо рдХреА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП DOM рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдирд╛рдо рд╣реИ srcset ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ autoCapitalize рд╣реИ рд▓реЗрдХрд┐рди DOM рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ autocapitalize рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ autoFocus рд╣реИ рд▓реЗрдХрд┐рди DOM рд╕рдВрдкрддреНрддрд┐ autofocus рд╣реИред

рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА DOM рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рдирд╛рдореЛрдВ рд╕реЗ рд╡рд┐рдЪрд▓рд┐рдд рд╣реЛ рд░рд╣реЗ рд╣реИрдВ, рдЬрдм рд╡реЗ рдХреИрдорд▓рдХреЗрд╕ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдиреНрд╡реЗрдВрд╢рди рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рд╣реИрдВред рдЬреЛ рд╣рдореЗрдВ class рдкрд░ рд▓рд╛рддрд╛ рд╣реИред

рдЕрдВрдд рдореЗрдВ: className рдмрдирд╛рдо class

рдЗрд╕реЗ className рдмрдирд╛рдиреЗ рдХреЗ рдореВрд▓ рдФрдЪрд┐рддреНрдп рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд░рд┐рдПрдХреНрдЯ DOM рдЧреБрдг рд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рдерд╛, рдФрд░ className DOM рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдирд╛рдо рд╣реИред

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

class рдХреЗ рдЦрд┐рд▓рд╛рдл рдПрдХ рдФрд░ рддрд░реНрдХ рдпрд╣ рдерд╛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдХреЛрдб рдорд╛рдиреНрдп ES3 (IE8 рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ) рдирд╣реАрдВ рдерд╛:

// Not valid in ES3
// Valid in ES5
var props = { class: 'foo' };

рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдм ES3 рдирд╣реАрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдпрд╛ рддреЛ рдЖрдк рдмреИрдмреЗрд▓ рдЬреИрд╕реЗ рдЯреВрд▓рдЪреЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдЖрдк рд╕рдВрднрд╡рддрдГ IE9+ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рд░рд┐рдПрдХреНрдЯ рдЕрдм IE8 рдХрд╛ рднреА рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рддреЛ class рдХреЗ рд╕рд╛рде рдПрдХрдорд╛рддреНрд░ рдЕрд╕реБрд╡рд┐рдзрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

// Not valid at all :-(
const class = props.class;
const { class } = props;

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

// Valid
const {class: cls} = foo;
const cls = props.class;

рдЗрддрдирд╛ рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рд╣реИ ред

рдЖрдо рддреМрд░ рдкрд░ рд▓реЛрдЧ class рдХреЛ рдкрдврд╝рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдмрд╛рд░ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рдШрдЯрдХреЛрдВ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЖрдВрддрд░рд┐рдХ <div> рдпрд╛ рдЕрдиреНрдп рд╣реЛрд╕реНрдЯ рддрддреНрд╡ рд╣реЛрддреЗ рд╣реИрдВред рддреЛ рдЖрдк <div className> рдХреЛ рдирд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдмрд╛рд░ $# class <div className> рд▓рд┐рдЦрдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрддреЗ рд╣реИрдВред рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ class рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рдЕрдзрд┐рдХ рдХреАрдмреЛрд░реНрдб рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреА рдмрдЪрдд рд╣реЛрдЧреА, рдЬрд┐рддрдирд╛ рдХрд┐ рдпрд╣ рдкреЗрд╢ рдХрд░реЗрдЧрд╛ред

рдпрд╣рд╛рдВ рдПрдХ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рд╣реИред

class рдХреЛ рдХрдИ рд╕реНрддрд░реЛрдВ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреИрдЯрд░реНрди рдирд╣реАрдВ рд╣реИред рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдореЗрдВ рдпрд╣ рдЕрдХреНрд╕рд░ рдирд╛рдЬреБрдХ рдШрдЯрдХреЛрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред рдЬрд┐рдирдХреА рд╢реИрд▓рд┐рдпрд╛рдБ рд╣рд░ рд╕рдордп рдЯреВрдЯрддреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣рд╛рдБ рдПрдХ рд╕реМ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЙрд▓рд╕рд╛рдЗрдЯреНрд╕ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдХреИрд╕реНрдХреЗрдб рдХреАрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА class рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдореВрд▓реНрдпрд╡рд╛рди рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕реЗ рдкреНрд░реЙрдкреНрд╕ рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рдПрдХ рдФрд░ рд▓рд╛рдЗрди рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдпрд╛ рдЖрдк рдХреЗрд╡рд▓ props.class рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ)ред

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

// Valid in ES2018

function Button({ color, ...rest }) {
  const buttonClass = rest.class +  ' Button-' + color;
  return <button {...rest} class={buttonClass} />
}

рдФрд░ рдЕрдЧрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рддреЛ рдЖрдк рдЗрд╕рд╕реЗ $ class рдкрдврд╝реЗ рдмрд┐рдирд╛ рд╣реА {...rest} рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рдереЗред рддреЛ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рд╕реАрдорд╛ рдмреЗрд╣рддрд░ рдШрдЯрдХ рдбрд┐рдЬрд╛рдЗрди рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреА рд╣реИред

рдХреНрдпреЛрдВ рди рджреЛрдиреЛрдВ?

why not both

рдЕрдВрдд рдореЗрдВ, рдХреНрдпрд╛ рд╣рдо рдХреЗрд╡рд▓ class рдФрд░ className рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ? рдПрдХ рддрд░рд╣ рд╕реЗ, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд╕рд╛рде рдЖрдк рдкрд░ рдЪрд┐рд▓реНрд▓рд╛рддреА рд╣реИред рдЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░рдг рд╣реИред

рдпрджрд┐ рд╣рдо рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рдмрд┐рдирд╛ рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдореБрджрд╛рдп рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдХрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдПрдирдкреАрдПрдо рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдЬреЛ рдХреНрд▓рд╛рд╕ рдкреНрд░реЛрдк рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЙрд╕реЗ рджреЛрдиреЛрдВ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдирд╛ рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдмреАрдЪ рдореЗрдВ рдПрдХ рднреА рдШрдЯрдХ рд╕рд╛рде рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░реЛрдк рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡рд░реНрдЧ рдЦреЛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╛ рдЖрдк class рдФрд░ className рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд╕рд╛рде "рдЕрд╕рд╣рдордд" рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдЙрдард╛рддреЗ рд╣реИрдВ рдЕрдиреНрдп, рдЙрд╕ рд╕рдВрдШрд░реНрд╖ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдпрдерд╛рд╕реНрдерд┐рддрд┐ рд╕реЗ рднреА рдмрджрддрд░ рд╣реЛрдЧрд╛, рдФрд░ рд╣рдо рдЗрд╕рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рд╕рд╛рд░рд╛рдВрд╢

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

рдЬрд┐рд╕реЗ рд╣рдо рдбрд╛рдЙрдирд╕рд╛рдЗрдбреНрд╕ (рдбреАрдУрдПрдо рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд) рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддреЗ рдереЗ, рд╡рд╣ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЕрдм рди рддреЛ рдбреАрдУрдПрдо рдЧреБрдг рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рди рд╣реА рдЙрдирдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╣рдо рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХреЗ рдЙрдкрднреЛрдЧ рдкрдХреНрд╖ рдкрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛-рдЖрдзрд╛рд░рд┐рдд рд▓реЗрдХрд┐рди рдХреИрдорд▓рдХреЗрд╕ рдПрдкреАрдЖрдИ рд░рдЦрдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ - рдЬрд┐рд╕ рдкрд░ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рдЧрднрдЧ рд╕реБрд╕рдВрдЧрдд рд╣реИрдВред рдФрд░ class="Button" рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ className="Button" рд╕реЗ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЧрд░ рдбреЛрдо рдПрдкреАрдЖрдИ рдЖрдЬ рдбрд┐рдЬрд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддреЛ рд╢рд╛рдпрдж рдпрд╣ рдЖрдкрдХреЛ .class рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдареАрдХ рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рджреЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдореЗрдВ class рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз ES5 рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рд▓рдЧрднрдЧ рджрд╕ рд╕рд╛рд▓ рдкрд╣рд▓реЗред

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

рдиреЛрдЯ: рдпрд╣ рдЕрдиреНрдп рд░рд┐рдПрдХреНрдЯ рдкреНрд░реЛрдк рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЬреЛ рдХреИрдорд▓рдХреЗрд╕реЗрдб рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдореЛрдВ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рд╣реИрдВред

@renatoagds

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

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдиреЛрдЯ рдХрд┐рдпрд╛:

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

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

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

рддреЛ рдХрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рдПрдХрдорд╛рддреНрд░ рдЕрд╕реБрд╡рд┐рдзрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

const { class } = props;

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдордп рдХреЗ рд╕рд╛рде, рдпрд╣ рддрд░реНрдХ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдХрд╛рдлреА рдордЬрдмреВрдд рдирд╣реАрдВ рд╣реИред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ> рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА, рдФрд░ рд▓реЗрдЦрди

const class = props.class;

рдЗрддрдирд╛ рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рд╣реИред

рджреЛ (рд╕рдВрднрд╡рддрдГ рдЫреЛрдЯреА) рдЪреАрдЬреЗрдВ:

  1. const class = props.class рдЕрдорд╛рдиреНрдп JavaScript рдирд╣реАрдВ рд╣реИ? рдореИрдВрдиреЗ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдерд╛, рдФрд░ рдПрдХ рддреНрд╡рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдХреНрд░реЛрдо рдЗрд╕реЗ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╕рд╛рде рд╣реА, рдпрд╣ рдЖрд▓реЗрдЦ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИред

  2. рдореИрдВ рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░рд╛рд╢рд╛ рдХрд╛ рдПрдХ (рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЫреЛрдЯрд╛) рдХреНрд╖реЗрддреНрд░ рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛: рдПрдирд╡реАрдПрдо (рдиреАрдЪреЗ рдЕрдкрдбреЗрдЯ рджреЗрдЦреЗрдВ)

const { oneProp, twoProp, className, ...rest }  = this.props;

// do stuff with oneProp, twoProp, className

return (
  <div
    someProp={prop}
    anotherProp={anotherProp}
    className={someClassName}
    {...rest}/>
);

рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рдХреБрдЫ рдРрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП...

const { oneProp, twoProp, ...rest }  = this.props;

// do stuff with oneProp, twoProp, this.props.className

return (
  <div
    someProp={prop}
    anotherProp={anotherProp}
    {...rest}
    class={someClassName}/>
);

рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╢реИрд▓реА рдореЗрдВ рд▓реЗрдЦрди рдФрд░ рдкрдарди рджреЛрдиреЛрдВ рдШрдЯрдХреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╣реИред

рдЕрджреНрдпрддрди рдХрд░реЗрдВ:

рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ,

const { class: className } = this.props;

рдЙрд╕рдиреЗ рдЪрд╛рд▓ рдЪрд▓реАред

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

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

рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░реИрдВрдбрдо рдЯрд┐рдк, рдореБрдЭреЗ рдЙрддреНрдХреГрд╖реНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдорд┐рд▓рд╛, svg2jsx рдмрдбрд╝реЗ SVG рдХреЛ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ!

@jamesрдХреГрдкрдпрд╛ рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореЗрд░рд╛ рджрд┐рдорд╛рдЧ рдЦрд╛рд▓реА рд╣реЛ рдЧрдпрд╛ - рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВред рд╕рдВрдкрд╛рджрд┐рддред

@james рдХреГрдкрдпрд╛ рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВред рд╡рд╣ рднреА рдЕрдХреНрд╕рд░ JSON рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреЗ рд▓рд┐рдП, рдЗрддрдирд╛ рдХрд╖реНрдЯрдкреНрд░рдж!

const { default: defaultVal } = property

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

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

рдореИрдВ рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░рд╛рд╢рд╛ рдХрд╛ рдПрдХ (рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЫреЛрдЯрд╛) рдХреНрд╖реЗрддреНрд░ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ:

const { oneProp, twoProp, className, ...rest }  = this.props;

// do stuff with oneProp, twoProp, className

return (
 <div className={someClassName} {...rest}/>
);

рдмрд╕ рдЗрд╕реЗ рдирд╖реНрдЯ рдордд рдХрд░реЛред

const { oneProp, twoProp, ...rest }  = this.props;

return (
  <div
    {...rest}
    class={'something ' + rest.class}
  />
);

@gaearon

рдХреНрдпрд╛ рд░рд┐рдПрдХреНрдЯ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЧреБрдгреЛрдВ рдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рд╣реИ

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

@justinfagnani рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рд╣рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдП рдЧрдП рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рджрд░реНрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдереЛрдбрд╝рд╛ рдмрд╛рд╣рд░ рд▓рдЧрддрд╛ рд╣реИред

@sompylasar

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

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ - рдФрд░ рд╣рдо рдЕрднреА рднреА рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖реЛрдВ рдХрд╛ рд╡рдЬрди рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХреБрдЫ рднреА рдлрд╛рдЗрдирд▓ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред

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

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

рдЖрдкрдХреЗ рдирд┐рд░реНрдгрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж, class рдХреЗ рд╡рд┐рд░реБрджреНрдз рдПрдХ рдФрд░ рддрд░реНрдХ рдЦреЛрдЬ рдпреЛрдЧреНрдпрддрд╛ рд╣реИред рдЬрдм рдЖрдк ES6 рдХреЛрдб рдореЗрдВ CSS рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ JS рдХреНрд▓рд╛рд╕ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдШрдЯрдХреЛрдВ рдХреЛ рдЦреЛрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ class рджреНрд╡рд╛рд░рд╛ рдХрд┐рддрдиреЗ рдЭреВрдареЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗрдВрдЧреЗ? рд╣рд╛рдВ, рдЖрдк class={ рдЦреЛрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди JSX рдореЗрдВ рдкреНрд░реЙрдкреНрд╕ рдХреЛ рдирд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ рдЬреЛ JS рдореЗрдВ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ? (рдореИрдВ рдкреНрд░реЙрдкреНрд╕ рдбрд┐рд╕реНрдЯреНрд░рдХреНрдЯрд┐рдВрдЧ рдХреЗ рднрд╛рд░реА рдЙрдкрдпреЛрдЧ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реВрдВ рд▓реЗрдХрд┐рди рд╡реЗ рдЕрднреА рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ) рдмреЗрд╢рдХ, рд╣рдореЗрдВ рдХреЛрдб рд╕рдВрдкрд╛рджрдХреЛрдВ рдореЗрдВ рдмреЗрд╣рддрд░ рд╕рдВрджрд░реНрдн-рдЬрд╛рдЧрд░реВрдХ рдПрдПрд╕рдЯреА-рдЖрдзрд╛рд░рд┐рдд рдЦреЛрдЬ рдЯреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдЯреЗрдХреНрд╕реНрдЯ рдФрд░ рд░реЗрдЧреЗрдХреНрд╕рдкреА рд╣реИред рдмреЗрд╢рдХ рдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕рд┐рдВрдЧ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрдбрд╝реА рдЖрдмрд╛рджреА рдиреЗ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдирд╛рдпрд╛ рдирд╣реАрдВ рд╣реИред

рдЖрд░рдХреНрд╖рд┐рдд рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдореЗрд░реЗ рд╕рд╛рде рд╕рд╣реА рдирд╣реАрдВ рдмреИрдарддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЗрд╕рд╕реЗ рдЕрдм рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рди рд╣реЛ; рдХреНрдпрд╛ рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ rest.class (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) x рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛрдЧрд╛?

@GeordieP рдЕрдЧрд░ рдпрд╣ рдЖрдЬ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдХрд▓ рдирд╣реАрдВ рдЯреВрдЯ рд╕рдХрддрд╛ред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд рдпрд╣реА рд╣реИ, рдФрд░ рдЗрд╕рдХреА рдХрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рд╣реИред

@gaearon рдореЗрд▓рд╛, рдлрд┐рд░ред рдЕрдЧрд░ рдпрд╣ рдХрд╛рдлреА рдмрдбрд╝реА рдЬреАрдд рд╣реИ, рддреЛ рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд╛рдУред

@sompylasar рдореИрдВ рдЖрдорддреМрд░ рдкрд░ className= рдпрд╛ className: рдЦреЛрдЬрддрд╛ рд╣реВрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рджреЛрдиреЛрдВ class рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред

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

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдореМрдЬреВрджрд╛ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдХреБрдЫ рднреА рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ className рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдПрдХ рдмреЗрд╣рддрд░ рдХрд╛рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

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

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

рд╕рд╛рде рд╣реА, рд╢реБрд░реБрдЖрддреА рдЕрднреА рднреА рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА (рдмреНрд▓реЙрдЧ/рд░реЗрдкреЛ/рдЖрджрд┐ рдХреЗ рд░реВрдк рдореЗрдВ) рд╕реЗ рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ className рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ?

рдЕрдВрдд рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ @sompylasar рдиреЗ рдХрд╣рд╛, рдпрд╣ рдореЗрд░реЗ рдХреЛрдбрдмреЗрд╕ рдХреЗ рднреАрддрд░ рдЦреЛрдЬ-рдХреНрд╖рдорддрд╛ рдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рддрд╛ рд╣реИред

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

рдереЛрдбрд╝рд╛ рд╣рдЯрдХрд░ рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝реЗ рджреБрдЦрдж рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рднреА (рдЬрд╣рд╛рдБ рддрдХ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ) рдПрдХ html/css/svg -> jsx рдЯреНрд░рд╛рдВрд╕рдлрд╝реЛрдорд░ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдерд╛ рддрд╛рдХрд┐ HTML attrs рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдиреЗ рдЫреЛрдЯреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╣рд╛рд░рд╛ред

@jxub - рдореИрдВрдиреЗ 2014 рдореЗрдВ рд╣реИрдХрдереЙрди рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ JSX рдХрдирд╡рд░реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ HTML рдмрдирд╛рдпрд╛: https://magic.reactjs.net/htmltojsx.htmред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрд╕рд╡реАрдЬреА рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ред рд╣реИрдХрд╛рдереЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдереА рдЬреЛ рд░рд┐рдПрдХреНрдЯ (https://github.com/reactjs/react-magic) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рд╛рджреЗ HTML рд╕рд╛рдЗрдЯ рдХреЛ "рдЕрдЬрд╛рдХреНрд╕рд┐рдлрд╛рдИ" рдХрд░реЗрдЧреА рдФрд░ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдПрдХ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдПрдЪрдЯреАрдПрдордПрд▓ рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рд╕реЗ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдЪрдЯреАрдПрдордПрд▓ рдХреЛ рдЬреЗрдПрд╕рдПрдХреНрд╕ рднрд╛рдЧ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдкреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ред

рд╣рдо рдЕрднреА рднреА IE11 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╣рдо рдХреБрдЫ рдореМрдЬреВрджрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдВрддрд░реЛрдВ рдХреЛ рд╕реБрдЪрд╛рд░реВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ - рдЬреЛ рдХрд┐ рдХрдИ рдЖрдзреБрдирд┐рдХ UI рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд░реБрдЦ рд╣реИред

@gaearon - рдЖрдзреБрдирд┐рдХ UI рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рдХреНрдпрд╛ рд╣реИрдВ рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдЕрдВрддрд░ рдХреЛ рд╕реБрдЪрд╛рд░реВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ? рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдореБрдЦ рдХрд╛рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред

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

рдорд╣рд╛рди рдирд╛рдЯреНрдп рдХрд▓рд╛рдХрд╛рд░ рдЯрд╛рдпрд╢рд▓рд░, рджреГрд╢реНрдпреЛрдВ рдХреЗ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рдмрдирд╛рддреЗ рд╣реБрдП, рдХреЛрдиреЗ рдореЗрдВ рдПрдХ рдЫреЛрдЯреЗ рд╣рд░реЗ рдХреБрддреНрддреЗ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЬрдм рдкреНрд░рд╡реЗрд╢ рд╕рдорд┐рддрд┐ рдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рдкреВрдЫрд╛: "рдореБрдЭреЗ рд╕рдм рдХреБрдЫ рдкрд╕рдВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрддреНрддрд╛ рдХрд╣рд╛рдБ рд╣реИ?", рдХрд▓рд╛рдХрд╛рд░ рдиреЗ рдЕрдлрд╕реЛрд╕ рдХреА рд╕рд╛рдВрд╕ рдХреЗ рд╕рд╛рде рдЙрд╕реЗ рдердкрдердкрд╛рдпрд╛ред

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

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

6436

рдЗрд╕ рдкрд░ рдЖрдкрдХреА рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди рдХреГрдкрдпрд╛ className -> class рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

рд╣рдо рд╕рднреА рдПрдХ рдмрд╛рд░ рдирдП рд░рд┐рдПрдХреНрдЯ рдереЗ рдФрд░ className рдиреЗ рд╣рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдХреЛ рд╕реАрдЦрдиреЗ рдФрд░ рдкреНрдпрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХрд╛ред

рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ jsx рдХреЗ рд╕рд╛рде vue рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛, рддреЛ рдЙрдирдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА class рдирд╣реАрдВ className рдерд╛, рдореИрдВ рдЕрд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ className рдХреЛ class рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд░рд┐рдПрдХреНрдЯ рд╡рд░реНрдЪреБрдЕрд▓ рдбреЛрдо рдореЗрдВ рдЕрдЧреНрд░рдгреА рд╣реИред , рдФрд░ рд╕реНрд╡рдпрдВ рдбреЛрдо рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВред

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд░реВрдЯ рдкрд░ рдИрд╡реЗрдВрдЯ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВ

@gaearon рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдФрд░ рдЙрдирд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛? рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрд╛рдЙрдВрдЯрд░-рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд рд╣реИ рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рд╕реНрд░реЛрдд рд░рд╣рд╛ рд╣реИ рдЬреЛ рд░рд┐рдПрдХреНрдЯ рдХреЗ рдЖрдВрддрд░рд┐рдХ рд╕реЗ рдЕрдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рднреНрд░рдорд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдФрд░ рдШрдЯрдирд╛ рд╕рд┐рдореБрд▓реЗрд╢рди рдФрд░ рдЦрд░рд╛рдм рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдерд╛рдУрдВ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд░рддреЗ рд╣реИрдВред

рдЬреЛ рдореБрдЭреЗ рджреВрд╕рд░реЗ рдиреЛрдЯ рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпрд╛ рд╣рдо react-dom/test-utils рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореБрдЭреЗ рдЗрд╕рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рднреА рдореБрджреНрджреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП Simulate рдХреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛рдиреЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ react-dom рдореЗрдВ рд╣реА рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛ рдЕрдм рдФрд░ред рдХреНрдпрд╛ рдпрд╣ рджрд╛рдпрд░реЗ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

/рд╕реАрд╕реА @kentcdodds

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

рдЕрдзрд┐рдХрд╛рдВрд╢ рдШреЛрд╖рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рдкреНрдпрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ className рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╣ рд╣реИред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдкрдХреЛ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдпрд╛ рдЗрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪрд░ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдФрд░ рдХреБрдЫ рдРрд╕рд╛ рд▓рд┐рдЦрдирд╛ (... рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ ...) рдЗрддрдирд╛ рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рд╣реИ, рдореЗрд░реЗ рд╡рд░реНрддрдорд╛рди рдЕрдиреБрднрд╡ рдореЗрдВ рдореИрдВ рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕) рдХреЛ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП _way_ рдХрдард┐рди рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВред рджреВрд╕рд░реА рдУрд░, рд╕рднреА рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд╣рдордиреЗ рдЕрдкрдиреА рдХрдВрдкрдиреА рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдпрд╛ рджреЛ рджреЗрд╡ className рд╕реЗ рднреНрд░рдорд┐рдд рдереЗ рдФрд░ рдХреБрдЫ рд╣реА рдорд┐рдирдЯреЛрдВ рдореЗрдВ рдХрдХреНрд╖рд╛ рдХреЗ рдирд╛рдо рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд░рд┐рдПрдХреНрдЯ рдПрдкреАрдЖрдИ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ред

(рдореЗрд░реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░рд╛рдп рдореЗрдВ, рдЬрдм рдореИрдВ _love_ рдХреЛ рдирд╖реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдирд╛рдордХрд░рдг рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрднреА-рдХрднреА рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдпрд╛рдд рдореЗрдВ рдирд╛рдо рдмрджрд▓рдиреЗ рд╕реЗ рдЕрд▓рдЧ рд╣реИ рдЬреЛ рдХрд╛рдлреА рд╕рдорд╛рди рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ _could_ рддрдм рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдиреНрдп рд╕рднреА рдХреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ _big_ рдЕрдкрд╡рд╛рдж рд╣реЛрдЧрд╛ рдЬреЛ рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдкрдиреА рдХрдВрдкрдиреА рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рджреВрд╕рд░реЛрдВ рдХреЗ рдЕрдиреБрднрд╡ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ ЁЯЩГред)

рдорд╣рд╛рди

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

рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмрджрд▓рд╛рд╡ рдкрд░ рдЗрддрдиреА рд░рд╛рдЬрдиреАрддрд┐рдХ рдкреВрдВрдЬреА рдЦрд░реНрдЪ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИ, рдЬрдм рдмрд╣реБрдд рд╕реА рдЕрдиреНрдп рдЕрдЪреНрдЫреА рдЪреАрдЬреЗрдВ рдШреЛрд╖рд┐рдд рдХреА рдЬрд╛ рд░рд╣реА рд╣реИрдВ?

рдЬрд╣рд╛рдВ рд╕реЗ рдореИрдВ рдЦрдбрд╝рд╛ рд╣реВрдВ, рдпрджрд┐ рдЖрдк рдХреЛрдИ рдирд┐рд░реНрдгрдп рд▓реЗ рд░рд╣реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдФрдЪрд┐рддреНрдп рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ "рдФрд░ рдХреБрдЫ рдРрд╕рд╛ рд▓рд┐рдЦрдирд╛ ... ... _рд╡рд╣_ рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рд╣реИред", рдЙрд╕ рдирд┐рд░реНрдгрдп рдореЗрдВ рдПрдХ _рд╡рд┐рд╢рд╛рд▓_ рдЙрд▓реНрдЯрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ className -> class рдкрд░рд┐рд╡рд░реНрддрди рдХреЗрд╡рд▓ рдЙрди рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдирд╣реАрдВ рд╣реИ рдЬрд┐рдирдХреА рдШреЛрд╖рдгрд╛ рдХреА рдЧрдИ рд╣реИред

рдпрд╣ рд░рд┐рдПрдХреНрдЯ рдлрд╛рдпрд░ рдкрд░ рдПрдХ рдкреНрд░рдореБрдЦ рдкреНрд░рдЧрддрд┐ рд╣реЛрдЧреА

рд▓рдЧрднрдЧ class v/s className , рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЦреБрдж рдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ JSX React.

рдЪреВрдВрдХрд┐ JSX рдПрдХ _DSL_ рд╣реИ рдЬрд┐рд╕реЗ HTML рдХреА рддрд░рд╣ рджрд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдпрдерд╛рд╕рдВрднрд╡ HTML рдХреЗ рдХрд░реАрдм рд░рдЦрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдбреАрдУрдПрдо рдПрдкреАрдЖрдИ рдореЗрдВ className рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рдЬреЗрдПрд╕рдПрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕реАрдзреЗ рдбреЛрдо рдПрдкреАрдЖрдИ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдпрджрд┐ рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдбреАрдУрдПрдо рдПрдкреАрдЖрдИ рд╕реЗ рдирд┐рдХрдЯрддрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓реЗрд╢рди рдореЗрдВ рдореИрдкрд┐рдВрдЧ рдХрд░рдирд╛ рдареАрдХ/рд╕рдВрднрд╡ рд╣реИ:
<img src="avatar.png" class="profile" /> тЖТ React.createElement("img", { src: "avatar.png", className: "profile" }) ред

JSX рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ HTML рдХрд╛ рдХреНрд▓реАрди рд╕реБрдкрд░рд╕реЗрдЯ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдореВрд▓реНрдпрд╡рд╛рди рд╣реЛрдЧрд╛ред

@mhenr18 рдиреЗ рдЬреЛ рдХрд╣рд╛ рд╣реИ рдЙрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЪреАрдЬреЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐:

  • рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЕрд╕рдВрдЧрдд рд╣реИ
  • рдПрдкреАрдЖрдИ рдХреИрдорд▓рдХреЗрд╕ рд╣реИ

рдЪреАрдЬреЛрдВ рдХреА рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕реНрдерд┐рддрд┐:

  • рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЕрд╕рдВрдЧрдд рд╣реИ
  • рдПрдкреАрдЖрдИ рдХреИрдорд▓рдХреЗрд╕ рд╣реИ
  • className -> class

рдХрдерд┐рдд рд▓рд╛рдн:

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

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд╛рдЙрдирд╕рд╛рдЗрдбреНрд╕:

  • className рдкрд░ рдирд┐рд░реНрднрд░ рд╕рдВрдкреВрд░реНрдг рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ (рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдЙрдиреНрдирдпрди рдкреНрд░рдпрд╛рд╕)
  • рдХрд┐рддрд╛рдмреЛрдВ, рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓реНрд╕, рдЙрджрд╛рд╣рд░рдгреЛрдВ, рдХреЛрдб, рдкреЛрд╕реНрдЯ, рд▓реЗрдЦреЛрдВ рдХрд╛ рдкреВрд░рд╛ рд╡рд┐рд╢рд╛рд▓ рд╣рд┐рд╕реНрд╕рд╛ рд╣рдореЗрд╢рд╛ рдЗрддрдирд╛ рдереЛрдбрд╝рд╛ рдЕрдорд╛рдиреНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
  • рдПрдХрдорд╛рддреНрд░ рд╡реИрдз рдЬреЗрдПрд╕ рд╢реЗрд╖ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╣реИ : const {class: cls} = props ред рд╕рд╛рджрд╛ рдЬреЗрдПрд╕ рдореЗрдВ рд╣рд░ рджреВрд╕рд░реЗ рд╕рдВрднрд╛рд╡рд┐рдд рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ рдЕрдорд╛рдиреНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
  • рд░рд┐рдПрдХреНрдЯ рдПрдкреАрдЖрдИ рдЕрд╕рдВрдЧрдд рд░рд╣рддрд╛ рд╣реИ, рдФрд░ рдЖрдЧреЗ рдХреА рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ (рдХреНрдпреЛрдВ htmlFor рдирд╣реАрдВ for рдЖрджрд┐)

рдпрджрд┐ рдореИрдВ рдПрдХ рдЙрддреНрдкрд╛рдж рдкреНрд░рдмрдВрдзрдХ рд╣реЛрддрд╛, рддреЛ рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рдореЗрд░реА рддрддреНрдХрд╛рд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реЛрддреА: рдХреНрдпрд╛?

@gaearon рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ рд╣реЛрдЧрд╛, рдХреГрдкрдпрд╛ рдкреАрдЖрд░ рдХреЛ "рд░рд┐рдПрдХреНрдЯ рдлрд╛рдпрд░" рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдЯреИрдЧ рдХрд░реЗрдВред

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

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

рдПрдХ рд╢рдмреНрдж рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдкреНрд░рдпрд╛рд╕ред
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ред
рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреЛрдо рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рдирд╣реАрдВ рджреЗрдЧрд╛ред
рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдкреНрддрд╛рд╣ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рджреЗрд╡реЛрдВ рдХреА рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдпрд╣ рдмрд╕ рд╕рдм рдХреБрдЫ рддреЛрдбрд╝ рджреЗрдЧрд╛ред

рдХреГрдкрдпрд╛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ, рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИ?

рдореИрдВ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдмреЗрдмреЗрд▓-рдкреНрд▓рдЧрдЗрди-рд░рд┐рдПрдХреНрдЯ-рдПрдЪрдЯреАрдПрдордПрд▓-рдПрдЯреАрдЖрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдореЗрд░реА рдЕрдЪреНрдЫреА рд╕реЗрд╡рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ className class рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдпрд╣ рдПрдХ рдкреНрд▓рдЧрдЗрди рджреНрд╡рд╛рд░рд╛ рдмреЗрд╣рддрд░ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреИрд╕рд╛ рдореИрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред

рдХреНрдпрд╛ рдкреВрд░реА " class v className " / " for v htmlFor " рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдмреИрдмрд▓ рдкреНрд▓рдЧрдЗрди рдирд╣реАрдВ рдерд╛ ?

рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдХрд┐рдП рдЧрдП рдирд╛рдордХрд░рдг рдирд┐рд░реНрдгрдпреЛрдВ рдХреЗ рд╕рд╛рде рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрддрддрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП рдПрдЪрдЯреАрдПрдордПрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред

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

рдореБрдЭреЗ рд░рд┐рдПрдХреНрдЯ рдЗрдВрдЯрд░реНрдирд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░реНрдпрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдорд┐рддреНрд░рддрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХреЗрд╡рд▓ рдпрд╣ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ "рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП"ред

рдХреГрдкрдпрд╛ className рдмрдирд╛рдо class рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рд▓рд╛рдн рд▓рдЧрднрдЧ рди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧрд┐рд░рд╛рд╡рдЯ рд╣реИред

рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдпрд╣ рди рдХреЗрд╡рд▓ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдмрджрд▓рд╛рд╡ рд╣реЛрдЧрд╛ рдмрд▓реНрдХрд┐ рд╣рдореЗрдВ _any_ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рд╕реЗ рд░реЛрдХ рджреЗрдЧрд╛ред

class рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдПрдХ рдЖрд░рдХреНрд╖рд┐рдд рдХреАрд╡рд░реНрдб рд╣реИ, рдФрд░ рд╣рдо рдЕрдм рдЗрд╕ рдкреНрд░реЛрдк рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрд╡реЗрджрди рдЕрд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рд╕реМрднрд╛рдЧреНрдп рд╕реЗ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмрдирд╛рдирд╛)ред рд╡рд╣реА htmlFor рдмрдирд╛рдо for рдХреЗ рд▓рд┐рдП рдЬрд╛рддрд╛ рд╣реИ, рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ (рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрджрд╕реВрд░рдд рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рдЖрднрд╛рд░реА рд╣реВрдВ рдХрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИ)ред

рдУрд╣ рд╡реИрд╕реЗ, рдЦреЛрдЬ рдпреЛрдЧреНрдпрддрд╛ ... рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЖрдк "рд░рд┐рдПрдХреНрдЯ рдХреНрд▓рд╛рд╕" рдХреЗ рд▓рд┐рдП Google рд╣реИрдВ, рдЖрдкрдХреЛ рдорд┐рд╢реНрд░рд┐рдд рд╕рд┐рдЧреНрдирд▓ рдорд┐рд▓реЗрдВрдЧреЗ: рд░рд┐рдПрдХреНрдЯ рдХреНрд▓рд╛рд╕ рдШрдЯрдХ, рд░рд┐рдПрдХреНрдЯ рдХреНрд▓рд╛рд╕ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯред рдЖрдк "рд░рд┐рдПрдХреНрдЯ рдХреНрд▓рд╛рд╕рдирд╛рдо" рдХреЗ рд▓рд┐рдП рдЧреВрдЧрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдкреБрд░рд╛рдирд╛ рджрд╕реНрддрд╛рд╡реЗрдЬ рдорд┐рд▓реЗрдЧрд╛ (рдХреЛрдб рдЕрдкрдЧреНрд░реЗрдб рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдЕрдкрдЧреНрд░реЗрдб рдХрд╛рд░реНрдп рдХреА рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд▓реЛрдЧ)ред

рдХреНрдпрд╛ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд▓рдХреНрд╖реНрдп рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХрд╛рдо рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╢реЛрд░ рдФрд░ рдорд┐рд╢реНрд░рд┐рдд рд╕рдВрдХреЗрдд рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╣реИ? рдореБрдЭреЗ рдЖрд╢рд╛ рдирд╣реАрдВ рд╣реИред

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

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

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

@sompylasar рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдХреНрд▓рд╛рд╕рдирд╛рдо = рдпрд╛ рдХреНрд▓рд╛рд╕рдирд╛рдо рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реВрдВ: рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рджреЛрдиреЛрдВ рдХрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реМрднрд╛рдЧреНрдп рд╕реАрдзреЗ рдЬреАрдердм = / рдкрд░ рдХрд░ рд░рд╣рд╛ рд╣реИ

рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдкрдврд╝реА рд╣реИрдВред рдореИрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдВ, рд▓реЗрдХрд┐рди class рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВред рдореБрдЦреНрдп рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ JSX 2.0 рдХреА рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд╢реЙрд░реНрдЯрдХрдЯ рдиреЛрдЯреЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рд╣реИ)ред
рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╕реБрдзрд╛рд░ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред
рдЕрдВрддрд┐рдо рдирд┐рд░реНрдгрдп рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ :) рдЖрдкрдХреЗ рдЕрджреНрднреБрдд рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрддреЛрдВ!

рдЖрдкрдХреА рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ, рдЖрдкрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдерд╛ "рдЕрдЧрд░ рдпрд╣ рдЖрдЬ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдХрд▓ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП"ред рдореЗрд░реЗ рдкреВрдЫрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗрдВ;)ред

рдореИрдВ рдЖрд░рдПрдордбрдмреНрд▓реНрдпреВрд╕реА https://jamesmfriedman.github.io/rmwc/ рдирд╛рдордХ рдПрдХ рдпреВрдЖрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реВрдВ рдЬреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ 15.4 рдкрд░ рд▓рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдПрдХ рдПрдХреАрдХреГрдд рдПрдкреАрдЖрдИ рд╕рддрд╣ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреНрд▓рд╛рд╕рдирд╛рдо рдХреЛ рдХрдХреНрд╖рд╛ рдореЗрдВ рдмрджрд▓рдирд╛, рдСрди-рдЗрдирдкреБрдЯ рдкрд░ рдмрджрд▓рдирд╛, рдФрд░ рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдУрд╡рд░рд╣рд╛рд▓ рдХрд░рдирд╛ рдЗрд╕реЗ рдЬрд╛рд░реА рд░рдЦрдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рдмрдирд╛ рджреЗрдЧрд╛ред

рдХреНрдпрд╛ рдПрдХ "рдХрдореНрдкреЗрдЯ" рдкрд░рдд рдХреА рдХреЛрдИ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдЬреЛ рдЗрд╕ рд╕рд╛рдорд╛рди рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рдЕрдиреБрд╡рд╛рдж рдХрд░ рд╕рдХрддреА рд╣реИ? рддреЛ рдореИрдВ рдЬреЛ рднреА рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдЧ рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХрдо рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдЪрд▓рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реВрдВред

рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдЕрдЬреАрдм рдХреЛрдб рдЕрдЬреАрдм рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдореИрдВ

рдЕрдЧрд░ className рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ class рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ htmlFor рдХреЛ for рдореЗрдВ рднреА рдмрджрд▓реЗрдВред
рдЪреВрдВрдХрд┐ class рдФрд░ for рдореВрд▓ рд░реВрдк рд╕реЗ рдЕрдорд╛рдиреНрдп рд╣реИ рдЬрдм рд╣рдо props рдирд╖реНрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

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

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдЕрдм рддрдХ, рдЖрдкрдиреЗ рдпрдерд╛рд╕реНрдерд┐рддрд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл рдмрд╣реБрдд рд╕рд╛рд░реА рдореБрдЦрд░ рд░рд╛рдп рд╕реБрдиреА рд╣реИ ("рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдХреНрд╖рд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА?") рдЬрдмрдХрд┐ рд╣рд░ рдХреЛрдИ рдЬреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦреБрд╢ рдерд╛ рд╡рд╣ рдЪреБрдк рд░рд╣рд╛; рдкреБрд░рд╛рдиреА рдХрд╣рд╛рд╡рдд рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ рдХрд┐ рд▓реЛрдЧ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╕рдореАрдХреНрд╖рд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдореАрдХреНрд╖рд╛ рджреЗрдиреЗ рдХреА рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд░рдЦрддреЗ рд╣реИрдВред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдЫреЛрдЯрд╛ рд╕реАрдЦрдиреЗ рдХреА рдЕрд╡рд╕реНрдерд╛ рдЗрд╕ рдкреНрд░реЛрдк рдХреЛ рд╣рд░ рдмрд╛рд░ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рд╢реЗрд╖ рдЖрд╡рд░рдг рд╕реЗ рдХрд╣реАрдВ рдмреЗрд╣рддрд░ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдереЛрдбрд╝рд╛ рдФрд░ рд▓реЛрдХрддрдВрддреНрд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рд╡рд░реНрддрди рд╕рдорд┐рддрд┐ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдЫрджреНрдо рд╕рдорд┐рддрд┐ рдереА рдЬрд┐рд╕рдиреЗ рдЖрдкрдХреЛ рдЗрд╕ рдмрджрд▓рд╛рд╡ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛) - рдФрд░ рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рд╣рд╛рд░рдиреЗ рд╡рд╛рд▓рд╛ рдкрдХреНрд╖ред рдмрд╕ рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рджрд┐рди-рдкреНрд░рддрд┐рджрд┐рди рдХрдо рд╕реЗ рдХрдо рд▓реЛрдЧреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдкреАрдПрд╕ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдШрдЯрдирд╛ рд╕рд╛рдордЧреНрд░реА

рдирдП рдЕрдкрдбреЗрдЯ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ

@gaearon рдХреНрдпрд╛ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдЕрдкрдирд╛ рдЙрджрд╛рд╣рд░рдг:

const { oneProp, twoProp, ...rest }  = this.props;

return (
  <div class={'something ' + rest.class} {...rest}/>
);

рдЗрд╕рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ рдФрд░ рд╡рд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдЬреИрд╕рд╛ рдЖрдк рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ? рдпрд╣ рдЙрддрдирд╛ рд╕реАрдзрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рддрдирд╛ "рдмрд╕ рдЗрд╕реЗ рдирд╖реНрдЯ рди рдХрд░реЗрдВред"

рдХреНрдпрд╛ рдореИрдВ рдЕрдХреЗрд▓рд╛ рд╣реВрдВ рдЬреЛ рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рдХреЗ рд╡рд░реНрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд рдирд╣реАрдВ рдерд╛? рдпрджрд┐ рдЖрдк рдореБрдЭрд╕реЗ рдкреВрдЫреЗрдВ рдХрд┐ рдРрд╕реА рдХреМрди рд╕реА рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реИрдВ рдЬреЛ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдХрднреА рдирд╣реАрдВ рдЖрддреАрдВред

рдлрд┐рд░ рднреА, рдЕрдкрдбреЗрдЯ рдореБрдлреНрдд рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рдореБрдлреНрдд рдкрд╕рдВрдж рд╣реИрдВред

рдХреНрдпрд╛ рдореИрдВ рдЕрдХреЗрд▓рд╛ рд╣реВрдВ рдЬреЛ рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рдХреЗ рд╡рд░реНрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд рдирд╣реАрдВ рдерд╛?

рдореБрдЭреЗ рдХреНрд▓рд╛рд╕ рдХреА рдХрддрдИ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдИрдИ 11 рдХреЗ рд╕рд╛рде рд╕реВрдХреНрд╖реНрдо рдмрдЧ рдордЬреЗрджрд╛рд░ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ (рдФрд░ рдлрд┐рд░ рднреА рдореИрдВ рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЕрднреА рднреА рдареАрдХ рд╣реВрдВ)

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдШрдЯрдирд╛ рд╢реНрд░реЛрддрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рд░рд┐рдПрдХреНрдЯ рдлрд╛рдпрд░ рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рд╣реЛ, рдЬреЛ рдХрд┐ рдореЛрдмрд╛рдЗрд▓ рдкрд░ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред #6436

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рд╣реИред

рдЕрд░реЗ @gaearon - рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдзрдиреНрдпрд╡рд╛рджред

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

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

рдореИрдВрдиреЗ рдЗрд╕реЗ рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдкрд╛рдпрд╛ рд╣реИ рдЬрд┐рдирдореЗрдВ рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рд░рд╣рд╛ рд╣реВрдВ (рдиреЛрдб, рдмреНрд▓реВрдмрд░реНрдб рдЗрддреНрдпрд╛рджрд┐)ред


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

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдХреИрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ> рдФрд░ рдХреМрди рд╕реЗ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдХреЗ рдкрд╛рд╕ рдПрдХ рдХреИрдиреА рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ

рдореИрдВ рдЖрд░рдПрдордбрдмреНрд▓реНрдпреВрд╕реА https://jamesmfriedman.github.io/rmwc/ рдирд╛рдордХ рдПрдХ рдпреВрдЖрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реВрдВ рдЬреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ 15.4 рдкрд░ рд▓рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдПрдХ рдПрдХреАрдХреГрдд рдПрдкреАрдЖрдИ рд╕рддрд╣ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреНрд▓рд╛рд╕рдирд╛рдо рдХреЛ рдХрдХреНрд╖рд╛ рдореЗрдВ рдмрджрд▓рдирд╛, рдСрди-рдЗрдирдкреБрдЯ рдкрд░ рдмрджрд▓рдирд╛, рдФрд░ рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдУрд╡рд░рд╣рд╛рд▓ рдХрд░рдирд╛ рдЗрд╕реЗ рдЬрд╛рд░реА рд░рдЦрдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рдмрдирд╛ рджреЗрдЧрд╛ред

рдХреНрдпрд╛ рдПрдХ "рдХрдореНрдкреЗрдЯ" рдкрд░рдд рдХреА рдХреЛрдИ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдЬреЛ рдЗрд╕ рд╕рд╛рдорд╛рди рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рдЕрдиреБрд╡рд╛рдж рдХрд░ рд╕рдХрддреА рд╣реИ? рддреЛ рдореИрдВ рдЬреЛ рднреА рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдЧ рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХрдо рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдЪрд▓рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реВрдВред

рдореБрдЭреЗ рдЖрдкрдХреА рдЪрд┐рдВрддрд╛рдУрдВ рд╕реЗ рд╕рд╣рд╛рдиреБрднреВрддрд┐ рд╣реИ (рдореИрдВрдиреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЕрдкрдирд╛ рдЙрдЪрд┐рдд рд╣рд┐рд╕реНрд╕рд╛ рднреА рд▓рд┐рдЦрд╛ рд╣реИ)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЪреВрдВрдХрд┐ рдХреБрдЫ рднреА рдмрджрд▓рдиреЗ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЯреНрд░реЗрдбрдСрдлрд╝ рд╣реИрдВ, рд╣рдо рд▓реЛрдЧреЛрдВ рдХреЛ рдХрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ рдЧрд▓рддреА рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдРрд╕рд╛ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рд╣рдордиреЗ 16.3 рдореЗрдВ рдЬреАрд╡рдирдЪрдХреНрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдерд╛) рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

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

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

рдпрд╣ рдХреБрдЫ рдХрд╛рдо рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдПрдХ рдмрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡реЗрдмрдкреИрдХ рдкреНрд▓рдЧрдЗрди рдпрд╛ рдПрдирдкреАрдПрдо рдЗрдВрд╕реНрдЯреЙрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ?) рдФрд░ рдХрдард┐рди рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрд╛рд░ рд░рд┐рд▓реАрдЬ рд╣реЛрдиреЗ рдФрд░ рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЪреАрдЬ рд╣реИред

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХрд▓рди рд╕рдордп рд╕рдВрдЧрддрддрд╛ рдкрд░рдд рдХреА рддрд░рд╣ред

рдореИрдВ рдХреЗ рд▓рд┐рдП htmlFor рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реВрдВред

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

рд░рд┐рдПрдХреНрдЯ рдПрдкреАрдЖрдИ рдЕрд╕рдВрдЧрдд рд░рд╣рддрд╛ рд╣реИ, рдФрд░ рдЖрдЧреЗ рдХреА рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ (рдХреНрдпреЛрдВ htmlFor рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ)

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЖрдЦрд┐рд░реА рд╡рд╛рдХреНрдп рдХреЛ рдпрд╛рдж рдХрд┐рдпрд╛ рдЬрдм рдореИрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ for рдХреЛ рднреА рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рддрдм рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдпрд╛ рджреЛ рджреБрд░реНрд▓рдн рдПрд╕рд╡реАрдЬреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ "рдКрдВрдЯ рдХреЗ рдЖрд╡рд░рдг рд╡рд╛рд▓реЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдо" рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдЧрдд рд╣реЛрдВрдЧреЗред рдЬрд┐рд╕реЗ рд╣рдо рдмрджрд▓ рднреА рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдкреВрд░реЗ "рдХреНрд▓рд╛рд╕ рд╡реА рдХреНрд▓рд╛рд╕рдирд╛рдо" / "рд╡реА рдПрдЪрдЯреАрдПрдордПрд▓рдлреЙрд░" рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрдмреЗрд▓ рдкреНрд▓рдЧрдЗрди рдирд╣реАрдВ рдерд╛?

рдореБрдЭреЗ рдЗрд╕рдХреЗ рдХреБрдЫ рдЙрд▓реНрд▓реЗрдЦ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реЗ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдЗрд╕ рд░реВрдкрд╛рдВрддрд░рдг рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреИрдмреЗрд▓ рдкреНрд▓рдЧ-рдЗрди рдПрдХ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЬреИрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

const props = {
   class: "foo"
}
<div {...props} />

рдпрд╣ рднреА рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдЖрдк class рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдШрдЯрдХ рдХреЗ рдкреНрд░реЛрдк рдореЗрдВ className рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╛, рдпрджрд┐ рдкреНрд▓рдЧрдЗрди рдХреЗрд╡рд▓ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рддрддреНрд╡реЛрдВ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрдЬреАрдм рд╣реЛрдЧрд╛ рдХрд┐ button рдХреЛ Button рд╕реЗ рдмрджрд▓рдиреЗ рд╕реЗ class рдкреНрд░реЛрдк рдХреЗ рд╕рдВрдХрд▓рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИред

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

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

рдХрдорд╛рд▓ рдХреЗ рдмрджрд▓рд╛рд╡ред . .

рдЕрджреНрднреБрдд! рдЗрд╕ рддрд░рд╣ рдХреЗ рд░реЛрдорд╛рдВрдЪрдХ рдЕрдкрдбреЗрдЯ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ className > class рдЗрддрдирд╛ рдмрдбрд╝рд╛ рдШреЛрдЯрд╛рд▓рд╛ рдерд╛ред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрджрдд рд╣реЛ рдЧрдИ рд╣реИред

рдХрдо рдмрдВрдбрд▓ рдЖрдХрд╛рд░ рдФрд░ рдЙрдиреНрдирдд рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдзреНрд╡рдирд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╢рд╛рдЬрдирдХ рд╣реИред рд╕реБрдкрд░ рд╕реНрдЯреЛрдХ!

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХреЛ рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВред
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдХреНрд▓рд╛рд╕рдирд╛рдо> рдХреНрд▓рд╛рд╕ рдмрд╣реБрдд рдХрдЯреНрдЯрд░рдкрдВрдереА рд╣реИ, рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рдкреНрд░рднрд╛рд╡ рд╣реИред
рдХреНрдпрд╛ рдпрд╣ рдХрдИ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреА рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рддрддрд╛ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛?

рд░рд┐рдПрдХреНрдЯ рдбреЛрдо рдХрд╛ рдПрдХ рддрд┐рд╣рд╛рдИ рдЫреЛрдбрд╝рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рд╡реЗрдм рдРрдк рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рднреА рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЛрдк рдЬреИрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдВ key рддрдерд╛ ref ред рдЬреИрд╕реЗ

<Foo @key="foo" @ref={callback} prop="hi" />

рдЗрд╕ рдкрд░ рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ - https://github.com/facebook/jsx/issues/66

@elado рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЧреИрд░ рдбреЛрдо-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдкреАрдЖрдИ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред

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

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

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рдг, рд░рдЦрд░рдЦрд╛рд╡ рдФрд░ рдЙрдиреНрдирдпрди рдХреЗ рдкреНрд░рдпрд╛рд╕ рдФрд░ рдЗрд╕рдХреЗ рдкреАрдЫреЗ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреЗ рдЬреБрдиреВрди рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ :)

рдпреЗ рднрд╡рд┐рд╖реНрдп {...update} рд╣реИрдВ

className -> class : рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рджреБрд░реНрд▓рдн рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрдм рдХреНрд▓рд╛рд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ JSX/рдСрдмреНрдЬреЗрдХреНрдЯ рдШреЛрд╖рдгрд╛ рдХреЗ рдмрд╛рд╣рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╣рдореЗрдВ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд╛рдордХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЕрд╕рдВрдЧрддрд┐ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛, рдХреЛрдб рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рд╕рдВрдЬреНрдЮрд╛рдирд╛рддреНрдордХ рднрд╛рд░ рдмрдврд╝рд╛рдирд╛ред
рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣рдорд╛рд░реЗ рдХреЛрдбрдмреЗрд╕ рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛/рдкреНрд░реЛрдк рдирд╛рдо рдмреЗрдореЗрд▓ рдХреЛ рдирд╣реАрдВ рд╣рдЯрд╛рдПрдЧрд╛ - рдпрд╣ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕реАрдорд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдпрд╛ рджреЗрд╢реА рдбреЛрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХрд╣реАрдВ рдореМрдЬреВрдж рд╣реЛрдЧрд╛ред рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЗрд╕ рдирд╛рдордХрд░рдг рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП "рдорд╛рдирдХреАрдХреГрдд" (рдФрд░ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд) рд╕рдорд╛рдзрд╛рди рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рд╣реИред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ className рдХреЛ рд╣рд░ рдЬрдЧрд╣ рд▓рдЧрд╛рддрд╛рд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░рддреЗ рд╣реБрдП - рджреЗрд╢реА рдбреЛрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рднреАред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╡рд╕реНрддреБрддрдГ рдПрдХрдорд╛рддреНрд░ рд╕реНрдерд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рд╣рдореЗрдВ рд╡рд░реНрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП class рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
className рд╢реБрд░реВ рд╕реЗ рд╣реА рдХрд╛рдлреА рдЕрдирд╛рд╡рд╢реНрдпрдХ рдФрд░ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдпрд╣ рдХрд╛рдлреА рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рд╛рдмрд┐рдд рд╣реБрдЖ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЖрд╕рд╛рди рдерд╛ред

рдореИрдВ $ dangerouslySetInnerHTML рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд╕реНрддреБ { __html } рд╕реЗ рднреА рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдКрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рд╡рд╛рд╕рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдФрд░ рд╢рд╛рдпрдж рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕рдВрдмрдВрдзрд┐рдд)ред

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

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

рдЖрджрд░реНрд╢ рд░реВрдк рдореЗрдВ рдореИрдВ рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рд░рд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐:

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

рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдпрд╣ рдЕрдзрд┐рдХ рдкрд╕рдВрдж рд╣реИ:

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

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

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕рдХреЗ 0.x рдкреНрд░рддрд┐рдорд╛рди рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдФрд░ рдПрдХ рдХреЛрд░ рд╡реЗрдм рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рд░рд┐рдПрдХреНрдЯ рдЕрднреА рднреА рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛рдУрдВ рдкрд░ рдордВрдерди рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЦрдбрд╝реЗ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рдордп рд╡реНрдпрддреАрдд рдХрд░рдирд╛ред

рдореВрд▓ рд░реВрдк рд╕реЗ рдореИрдВ рдЬреЛ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ, рдХреГрдкрдпрд╛, рдХреГрдкрдпрд╛ рдПрдХ рдПрдкреАрдЖрдИ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдЬреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдмрдбрд╝реЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рди рджреЗред

(рд╕рд╛рде рд╣реА IE11 рдХреА рдмрд╛рдд рджреБрдЦрдж рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдПрдХ рдРрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рд╣рдЯрд╛ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ EOL рдирд╣реАрдВ рд╣реИ - рдЕрдВрддрд┐рдо рд░рд┐рд▓реАрдЬ 52 рджрд┐рди рдкрд╣рд▓реЗред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдЯреАрдо рдХреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреЗрд╕рдмреБрдХ рдЯреАрдо рдФрд░ рд╕рднреА рдмрд╛рд╣рд░реА рдФрд░ рдЖрдВрддрд░рд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЯреАрдореЛрдВ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рддрд╛ рд╣реИред рдмрдЬрд╛рдп)ред

@ рдЙрд░реБрдЧреЗрдЯрд░

рдореИрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдСрдмреНрдЬреЗрдХреНрдЯ { __html } рд╕реЗ рднреА рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдЙрдВрдЧрд╛ рдЦрддрд░рдирд╛рдХ рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрдЯрдЗрдирд░рдПрдЪрдЯреАрдПрдордПрд▓ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд▓рдЧрддрд╛ рд╣реИ

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

@philipwhiuk

рдореВрд▓ рд░реВрдк рд╕реЗ рдореИрдВ рдЬреЛ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ, рдХреГрдкрдпрд╛, рдХреГрдкрдпрд╛ рдПрдХ рдПрдкреАрдЖрдИ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдЬреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдмрдбрд╝реЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рди рджреЗред

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

рд╕рд╛рде рд╣реА IE11 рдХреА рдмрд╛рдд рджреБрдЦрдж рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдПрдХ рдРрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рд╣рдЯрд╛ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ EOL рдирд╣реАрдВ рд╣реИ - 52 рджрд┐рди рдкрд╣рд▓реЗ рдЕрдВрддрд┐рдо рд░рд┐рд▓реАрдЬрд╝ред

рдХреЛрдИ рднреА IE 11 рдХрд╛ рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рд░рд┐рдПрдХреНрдЯ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ IE 11 рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реБрдЭрд╛рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ IE 11 рдХреЗ рд╡рд┐рдХрд╛рд╕ рдкрд░ рд╕рдорд╛рди рдкреНрд░рднрд╛рд╡ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред https://reactjs.org/docs/javascript-environment-requirements.html

рдореИрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдСрдмреНрдЬреЗрдХреНрдЯ { __html } рд╕реЗ рднреА рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдЙрдВрдЧрд╛ рдЦрддрд░рдирд╛рдХ рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрдЯрдЗрдирд░рдПрдЪрдЯреАрдПрдордПрд▓ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд▓рдЧрддрд╛ рд╣реИ

@urugator - рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдХреНрдпрд╛ рд╣реИ, рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдлреЗрд╕рдмреБрдХ рдкрд░ __html рдХрд╛ рд╕рдмрд╕реЗ рдЖрдо рдЙрдкрдпреЛрдЧ рд╕рд░реНрд╡рд░-рд░реЗрдВрдбрд░ рдХрд┐рдП рдЧрдП HTML рдХреЛ рд░рд┐рдПрдХреНрдЯ рдХрдВрдкреЛрдиреЗрдВрдЯ рдЯреНрд░реА рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рд╣реИред рдЙрд╕ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб __html рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рд▓рд┐рдВрдЯ рдирд┐рдпрдо рд╣реИрдВред рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдРрд╕реЗ рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ XHP рдХреЛ __html рдЧреБрдгреЛрдВ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдХреНрд░рдордмрджреНрдз рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрд╣реАрдВ рднреА рдХрд┐рд╕реА рднреА рд╕реБрд░рдХреНрд╖рд╛ рдЫреЗрдж рдХрд╛ рдкрд░рд┐рдЪрдп рди рджреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ XHP JSX рдХреЗ рд╕рдорд╛рди рд╣реИ (рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ JSX рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдкреНрд░реЗрд░рдгрд╛ рдереА) рдФрд░ рдЗрд╕рдореЗрдВ XSS рд╕реБрд░рдХреНрд╖рд╛ рднреА рд╣реИред

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

рддреЛ рд╣рд╛рдБ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рдирдмреВрдЭрдХрд░ рдХрдард┐рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдРрдкреНрд╕ рдореЗрдВ рдХрдИ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдпрдереЛрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдорд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдо рддреМрд░ рдкрд░ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХ рдореЗрдВ рд╕реАрдзреЗ __html рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдмрд▓реНрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЗрд╕реЗ рд▓реМрдЯрд╛рддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ рдХрд┐ рдбреЙрдХреНрд╕ createMarkup рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ: https://reactjs. org/docs/dom-elements.html#dangerouslysetinnerhtml)

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

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

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

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

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

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

рдпрджрд┐ рдЖрдк рдЙрддреНрд╕реБрдХ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдЗрд╕ рддрд░рд╣ рдХрд╛ рдХреЛрдб рд╣реИ

React.PropTypes = require('prop-types')
React.createClass = require('create-react-class')

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

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

(рд╕рд╛рде рд╣реА IE11 рдХреА рдмрд╛рдд рджреБрдЦрдж рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдПрдХ рдРрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рд╣рдЯрд╛ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ EOL рдирд╣реАрдВ рд╣реИ - рдЕрдВрддрд┐рдо рд░рд┐рд▓реАрдЬ 52 рджрд┐рди рдкрд╣рд▓реЗред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдЯреАрдо рдХреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреЗрд╕рдмреБрдХ рдЯреАрдо рдФрд░ рд╕рднреА рдмрд╛рд╣рд░реА рдФрд░ рдЖрдВрддрд░рд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЯреАрдореЛрдВ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рддрд╛ рд╣реИред рдмрдЬрд╛рдп)ред

рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд╣ рд░рд╣реЗ рд╣реИрдВред рдореИрдВрдиреЗ рдХрд╣реАрдВ рднреА рдирд╣реАрдВ рдХрд╣рд╛ рдЖрдИрдИ 11 рдХреЛ "рдмрд╣рд┐рд╖реНрдХреГрдд" рд╣реЛ рд░рд╣рд╛ рдерд╛ред

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

рд╕рд╛рде рд╣реА, рд╣рдореЗрдВ Facebook рдкрд░ рдЕрдиреНрдп рдЯреАрдореЛрдВ рдХреЛ "рдХрд╛рд░реНрдп рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ" рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЕрдЧрд░ рд╣рдо рдХреБрдЫ рддреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдЙрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рд╣рдо рдкрд░ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдо рдкреНрд░рд╡рд╛рд╕рди рд░рдгрдиреАрддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрд░рд╡рд╛рд╣ рдХрд░рддреЗ рд╣реИрдВ - рд╣рдореЗрдВ рдЖрдо рддреМрд░ рдкрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рдпрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред

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

рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рд▓реЛрдЧ рдЗрд╕рдХреЗ рдкреНрд░рддрд┐ рдЗрддрдиреЗ рдирдХрд╛рд░рд╛рддреНрдордХ рдХреНрдпреЛрдВ рд╣реИрдВред рдмрд╕ рддрдм рддрдХ рдЕрдкрдЧреНрд░реЗрдб рди рдХрд░реЗрдВ рдЬрдм рддрдХ рдЖрдкрдХреА рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреАрдВ?

рдХреНрдпрд╛ class рдмрдирд╛рдо className рдФрд░ for рдмрдирд╛рдо htmlFor рдХреЗ рд▓рд┐рдП рдХреАрд╡рд░реНрдб рд╕рдорд╕реНрдпрд╛ рдХреБрдЫ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдЬреЗрдПрд╕рдПрдХреНрд╕ рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрд░рдХреНрд╖рд┐рдд рд╢рдмреНрджреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ?

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рддрднреА рдЪрд┐рдВрддрд┐рдд рд╣реЛрддрд╛ рд╣реВрдВ рдЬрдм рдкрд░рд┐рд╡рд░реНрддрди рдЗрддрдиреЗ рдмрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ рдХрд┐ рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдо рдЕрдкреНрд░рдЪрд▓рд┐рдд рдЙрддреНрддрд░ рджреЗрддреЗ рд╣реИрдВ ... рджрд░реНрдж рдХреЛрдгреАрдп 2+ рдХреА рддрд░рд╣ "angular -angularjs -angular1.x" рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдЧреБрдЧрд▓ рдХрд░рддреЗ рд╕рдордп рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореИрдВ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рддрд╛ рд╣реВрдБ !!!

@gaearon

рддреБрдордиреЗ рдХрд╣рд╛ рдерд╛

"рд╣рдореЗрдВ рдХреБрдЫ рдкреБрд░рд╛рдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ"

рдпрд╣ рдбреНрд░реЙрдк рдХрдореНрдкреИрдЯрд┐рдмрд┐рд▓рд┐рдЯреА рд╡рд╛рд▓рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдореБрдЭреЗ рд╕рдорд╕реНрдпрд╛ рдереА, рди рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреЙрд▓реАрдлрд┐рд▓ рднрд╛рдЧред рдЕрдВрдзрдХрд╛рд░ рдпреБрдЧ рдореЗрдВ рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛ рдореЗрд░реА рдЪрд┐рдВрддрд╛ рдереАред

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВред рдХреНрдпрд╛ рдЗрд╕ рддрд░рд╣ рдХрд╛ 'рдореБрджреНрджрд╛' рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП RFC рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛?

рдпрд╣ рдбреНрд░реЙрдк рдХрдореНрдкреИрдЯрд┐рдмрд┐рд▓рд┐рдЯреА рд╡рд╛рд▓рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдореБрдЭреЗ рд╕рдорд╕реНрдпрд╛ рдереА, рди рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреЙрд▓реАрдлрд┐рд▓ рднрд╛рдЧред рдЕрдВрдзрдХрд╛рд░ рдпреБрдЧ рдореЗрдВ рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛ рдореЗрд░реА рдЪрд┐рдВрддрд╛ рдереАред

рдореИрдВ IE10 рдФрд░ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред рдореИрдВрдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдиреЛрдЯ рдХрд┐рдпрд╛ рдХрд┐ рд╣рдо IE11 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд░рд╣рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рд▓рдЧрднрдЧ 3% рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ 1% рдХрдЯрдСрдл рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИ рдЬрд╣рд╛рдБ рд╣рдо рдЗрд╕реЗ рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рдорд╛рдирддреЗ рд╣реИрдВред

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВред рдХреНрдпрд╛ рдЗрд╕ рддрд░рд╣ рдХрд╛ 'рдореБрджреНрджрд╛' рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП RFC рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛?

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

рдареАрдХ рд╣реИ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

@gaearon

рдпрд╣ рдкреНрд░рд╢рдВрд╕рдиреАрдп рд╣реИ рдХрд┐ рд╣рдо рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдШрдЯрдирд╛рдУрдВ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд▓реЗрдВрдЧреЗред

рдпрд╣ рдЙрд╕ рддрддреНрд╡ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реБрдП event.currentTarget рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕ рдкрд░ рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдореВрд▓ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдореЗрд╢рд╛ document рдХрд╛ рдЕрд░реНрде рд╣реЛрддрд╛ рд╣реИ - рдпрд╛ рд░рд┐рдПрдХреНрдЯ рд░реВрдЯ рдПрдХ рдмрд╛рд░ рдЙрд╕ рдкрд░ рд╕реНрд╡рд┐рдЪ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ?

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд┐рд░реНрдл рдЧреБрдг рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ

(...)

рдпрд╣рд╛рдБ рдореЗрд░рд╛ рдХрд╣рдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд░рд┐рдПрдХреНрдЯ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЧреБрдгреЛрдВ рдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рд╣реИ

рдпрд╣ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдХреНрдпреЛрдВ рд╣реИ рдЬрдм рдпрд╣ рдбреАрдУрдПрдо рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЗрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдЬрдм рддрдХ рдХрд┐ рдХреЗрд╡рд▓ рдЙрди рдЧреБрдгреЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ (рдФрд░ рдкреАрдЫреЗ) рдЬреИрд╕реЗ class / className рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред

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

рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ event.currentTarget рдЙрд╕ рддрддреНрд╡ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реБрдП рдЬрд┐рд╕ рдкрд░ рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЬреЛ рдореВрд▓ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдореЗрд╢рд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдЕрд░реНрде рд╣реЛрддрд╛ рд╣реИ - рдпрд╛ рд░рд┐рдПрдХреНрдЯ рд░реВрдЯ рдПрдХ рдмрд╛рд░ рдЙрд╕ рдкрд░ рд╕реНрд╡рд┐рдЪ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ?

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

рдпрд╣ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдХреНрдпреЛрдВ рд╣реИ рдЬрдм рдпрд╣ рдбреАрдУрдПрдо рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЗрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдЬрдм рддрдХ рдХрд┐ рдХреЗрд╡рд▓ рдЙрди рдЧреБрдгреЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╡рд░реНрдЧ/рд╡рд░реНрдЧрдирд╛рдо рдЬреИрд╕реЗ рдЧреБрдгреЛрдВ (рдФрд░ рдкреАрдЫреЗ) рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред

рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрддрд░ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╢рд╛рдпрдж рдореИрдВ рдЧрд▓рдд рд╣реВрдВ)ред

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

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

(рдРрд╕реЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдХрд╕реНрдЯрдо рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рдеред рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдВ рднреА, рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЙрддрдирд╛ рд╣реА рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЪреБрдирдирд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдЗрд╕ рдкрд░ рдХрд╣реАрдВ рдФрд░ рдмрд╣рд╕ рдХреА рдЧрдИ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреВрджрдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЗрд╕ рдмрд╣рд╕ рдореЗрдВ рдлрд┐рд░ рд╕реЗ - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ @robdodson рдЬреИрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИрдВ рдФрд░ рд╣рдо рдЙрди рдкрд░ рдЧреМрд░ рдХрд░реЗрдВрдЧреЗред)

@ рдбреЗрдирд┐рдпрд▓15
рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдиреАрддрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ (рдЬреЛ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдХрд╣реАрдВ рдФрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдЕрддрд┐рд░рд┐рдХреНрдд рдСрдмреНрдЬреЗрдХреНрдЯ рд░реИрдкрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИред
рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ dangerouslySetInnerHTML рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦрддрд░рдирд╛рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдЪреЗрддрд╛рд╡рдиреА рджреА рдЧрдИ рд╣реИред рдпрд╣реА рд╡рд╣ рдмрд┐рдВрджреБ рд╣реИ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ, рдкреНрд░рднрд╛рд╡реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдФрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред
рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ/рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ (рд╕рдВрднрд╡рддрдГ рдЕрд╕рдВрдХреНрд░рдорд┐рдд) рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛, рдЙрд╕реЗ рд▓рдкреЗрдЯреЗ рдЧрдП рдореВрд▓реНрдп рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдпрд╛ рд╕реНрд╡рдЪреНрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдмрдирд╛рдпреЗрдЧреАред
рдЕрдЧрд░ рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рддреЛ рд╢рд╛рдпрдж { __html } рдЬрдЯрд┐рд▓ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ рдФрд░ [{ _html: { __html }] рдЗрд╕реЗ рдФрд░ рднреА рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛ рджреЗрдЧрд╛ - рд╣рдореЗрдВ рдХрд┐рддрдиреА рдмрд╛рд░ рдпрд╣ рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреБрдЫ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЦрддрд░рдирд╛рдХ рд╣реИ ?

рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдХреЗ рд╕рд╛рде рдореИрдВ рддрд░реНрдХ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдлреЗрд╕рдмреБрдХ рдХреЗ рдмрд╛рд╣рд░ рдХрд┐рд╕реА рдкрд░ рднреА рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ " { __html } sanitized html рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ" рдирд┐рдпрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕реБрд░рд╛рдЧ рдирд╣реАрдВ рд╣реИред
рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рдПрдкреАрдЖрдИ рдореЗрдВ рд╕рд┐рд░реНрдл рдПрдХ рдФрд░ рдмрд╛рдзрд╛ рд╣реИред рд╕рдордп рдирд┐рдХрд╛рд▓рдиреЗ рдФрд░ рдЙрд╕ рдкрд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЕрдм рдФрд░ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдпрд╣ рдХреЗрд╡рд▓ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЧреИрд░-рд╕реНрд╡рдЪреНрдЫ рдбреЗрдЯрд╛ рдХреЛ рдЧрд▓рддреА рд╕реЗ рдЙрдкрдпреЛрдЧ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред

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

рдореБрдЭреЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рдХреИрд╕реЗ рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЬреЛ рдмрджрд▓рд╛рд╡ рдЖ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдЖрдП рд╣реИрдВ, рд╡реЗ 'рдмреНрд░реЗрдХрд┐рдВрдЧ' рдереЗред рдЙрди рд▓реЛрдЧреЛрдВ рдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреЛрдгреАрдп 2> 3> 4 рдмрд╛рд░ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдореБрдЭреЗ рдмрджрд▓рд╛рд╡ рдкрд╕рдВрдж рд╣реИрдВред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ className рд╕реЗ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ рдФрд░ class рдХреЛ рдирд╖реНрдЯ рдХрд░рдирд╛ рдкрд░реЗрд╢рд╛рдиреА рдХрд╛ рд╕рдмрдм рдмрди рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдХрд┐ рдЖрдк рд▓реЛрдЧ рдХреНрдпрд╛ рд▓реЗрдХрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВред

рдореИрдВ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХреЛ рд╡рд┐рд╖рдп рдкрд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЪрд╛рд╣реЗ рдЖрдкрдХреЛ рдЯреИрдирд┐рдВрдЧ рдЦрддрд░рдирд╛рдХ HTML рдорджрджрдЧрд╛рд░ рд▓рдЧреЗ рдпрд╛ рдирд╣реАрдВ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд╕рдВрдж рд╣реИ

рдпрд╣ рдирдП рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд╣реА рдореМрдХрд╛ рд╣реИ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрд╡рд╛рдЧрдд рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реИ рдХрд┐ рдРрд╕рд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдмрд╕ рд▓реЛрдЧреЛрдВ рдХреЛ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рджреЗрдиреЗ рд╕реЗ рдХреЛрдИ рдирдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдпрд╣ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдФрд░ рдкреНрд░рд╡рд╛рд╕рди рд▓рд╛рдЧрдд рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

@gaearon 2c рдореЗрдВ рдлреЗрдВрдХрдирд╛ рд▓реЗрдХрд┐рди рд╡реЗ рджреЛ рдирдХрд╛рд░рд╛рддреНрдордХ рд╡рд░реНрддрдорд╛рди рдирдХрд╛рд░рд╛рддреНрдордХ (рд╕реАрдЦрдиреЗ рдХреА рдХрдХреНрд╖рд╛ рдХреА рдПрдХ рдмрд╛рд░ рдХреА рдЫреЛрдЯреА рд▓рд╛рдЧрдд => рд╡рд░реНрдЧрдирд╛рдо рдмрдирд╛рдо рд╣рдореЗрд╢рд╛ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА + рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░-рд╕реНрддрд░ рдкреНрд░рд╡рд╛рд╕рди рд▓рд╛рдЧрдд рд╕реЗ рдмрдЪрдиреЗ) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрдбрд╝реЗ рдпрд╛ рдмрдбрд╝реЗ рд▓рдЧрддреЗ рд╣реИрдВред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛: рджрд┐рд▓:

рдКрдкрд░ @natew рдЧреВрдВрдЬ рд░рд╣рд╛ рд╣реИ:

@gaearon 2c рдореЗрдВ рдлреЗрдВрдХрдирд╛ рд▓реЗрдХрд┐рди рд╡реЗ рджреЛ рдирдХрд╛рд░рд╛рддреНрдордХ рд╡рд░реНрддрдорд╛рди рдирдХрд╛рд░рд╛рддреНрдордХ (рд╕реАрдЦрдиреЗ рдХреА рдХрдХреНрд╖рд╛ рдХреА рдПрдХ рдмрд╛рд░ рдХреА рдЫреЛрдЯреА рд▓рд╛рдЧрдд => рд╡рд░реНрдЧрдирд╛рдо рдмрдирд╛рдо рд╣рдореЗрд╢рд╛ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА + рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░-рд╕реНрддрд░ рдкреНрд░рд╡рд╛рд╕рди рд▓рд╛рдЧрдд рд╕реЗ рдмрдЪрдиреЗ) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрдбрд╝реЗ рдпрд╛ рдмрдбрд╝реЗ рд▓рдЧрддреЗ рд╣реИрдВред

рд╡реИрд╕реЗ рднреА, className рд╕реЗ class рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рдкреАрдЫреЗ рдХреНрдпрд╛ рдкреНрд░реЗрд░рдгрд╛ рд╣реИ?
рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдХреЛ рджреЛ рддрд░реНрдХреЛрдВ рддрдХ рдЙрдмрд╛рд▓ рд╕рдХрддрд╛ рд╣реВрдВ, (рдЕрдЧрд░ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рд╕реБрдзрд╛рд░реЗрдВ):

рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧ рдЬреЛ рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рдХрд░реАрдм рдЕрд╡рдзрд╛рд░рдгрд╛рддреНрдордХ рд░реВрдк рд╕реЗ

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

function Button({ color, ...rest }) {
  const buttonClass = rest.class +  ' Button-' + color;
  return <button {...rest} class={buttonClass} />
}

рдореЗрд░рд╛ рдиреЛрдм рд╕рд┐рд░ рдлрдЯ рдЧрдпрд╛ рд╣реЛрдЧрд╛ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╕рдордп рд▓реЛрдЧ рдПрдкреАрдЖрдИ рд╕реЗ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред ClassName рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдорд╛рдзрд╛рди рд╣реИред рдХрдХреНрд╖рд╛ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдХрдо рдЯрд╛рдЗрдкрд┐рдВрдЧ

рдмреНрд░реБрд╣, рдпрд╣ рдЪрд╛рд░ рд╡рд░реНрдг 8^) рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рднрд▓реЗ рд╣реА рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ className рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдмрд╛рд░ class рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрдВ, рдЬрдм рд╣рдо рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЕрдзрд┐рдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╣реИред рддреЛ рдореИрдВрдиреЗ 12 рдмрд╛рд░ 4 рдХрдо рдЕрдХреНрд╖рд░ рдЯрд╛рдЗрдк рдХрд┐рдП рд╣реЛрдВрдЧреЗ рд▓реЗрдХрд┐рди рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ class рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реВрдВ рддреЛ 50 рдФрд░ рд╡рд░реНрдг рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ? рдпрд╣ рд╕рд┐рд░реНрдл рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд╣реИред

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

рдХреНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЖрдЬ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рддреЛ рд░рд┐рдПрдХреНрдЯ рдХреНрд▓рд╛рд╕рдирд╛рдо рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп class рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛?
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред
рд░рд┐рдПрдХреНрдЯ рдЖрдЬ рдУрдкрди рд╕реЛрд░реНрд╕ рдирд╣реАрдВ рдерд╛ рдФрд░ рдЕрдЧрд░ рдЗрд╕реЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдПрдХ рд╕рд╛рд▓ рдореЗрдВ рдУрдкрди рд╕реЛрд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛/рд╣реЛрддрд╛ рддреЛ рдЙрд╕ рд╕рдордп рдирд┐рд░реНрдгрдп рдХрд╛ рдПрдХ рдЕрд▓рдЧ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред
рдХрднреА-рдХрднреА рд╣рд░ рдЭреБрд░реНрд░реА рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдирд┐рд░рдВрддрд░рддрд╛ рд╕реЗ рдЪрд┐рдкрдХреЗ рд░рд╣рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред

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

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

рдореИрдВ рдбреИрди рдЪрд░реНрдЪ рд╕реЗ рдкреНрд░рд╛рд░реНрдердирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЕрдкрдирд╛ рд╡рд┐рдЪрд╛рд░ рдмрджрд▓ рджреЗрдВред

рдореБрдЭреЗ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдЙрдиреНрдирдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЗрд╕реЗ vue рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓рддреЗ рд╣реБрдП рдирд╣реАрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ред рд▓реЗрдХрд┐рди рдХреНрд▓рд╛рд╕рдирд╛рдо-> рдХреНрд▓рд╛рд╕ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджрд░реНрджрдирд╛рдХ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП className -> class рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдкреНрд░реЗрд░рдгрд╛ рдирд╣реАрдВ рд╣реИред className рдбреЛрдо рдореЗрдВ рдореМрдЬреВрдж рд╣реИ рдЬрдмрдХрд┐ рдЖрд░рдХреНрд╖рд┐рдд рдкреНрд░реЛрдк рдирд╛рдо рд╣реИрдВ рдЬреЛ рдХрд╣реАрдВ рд╕реЗ рднреА рдЖрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ htmlFor ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ рддреЛ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдо рд╡реНрдпрд╛рдкрдХ рд╣реИ рдЬреЛ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

@sonhanguyen htmlFor рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдм рдПрдкреАрдЖрдИ рдирд╛рдо рднреА рд╣реИ: https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/htmlFor

@allan2coder рдЗрд╕реЗ рдХрд┐рд╕реА рд╕рд░рдгреА рдореЗрдВ рд▓рдкреЗрдЯрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЗрд╕реЗ <React.Fragment> рдпрд╛ <> рдореЗрдВ рд▓рдкреЗрдЯреЗрдВред

@allan2coder рдХреГрдкрдпрд╛ рдЗрд╕ рд╕реВрддреНрд░ рдХреЛ рд╡рд┐рд╖рдп рдкрд░ рд░рдЦреЗрдВ, рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рджрд░реНрдЬ рдХрд░рдХреЗ рдкреНрд░рд╢реНрди рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ patch-package рдкрд░ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдПрдХ рдРрд╕рд╛ рдкреИрдХреЗрдЬ рд╣реИ рдЬреЛ рдЖрдкрдХреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдкреИрдЪ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрд╕рдорд░реНрдерд┐рдд рд░рд┐рдПрдХреНрдЯ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред рдмреЗрд╢рдХ, рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ @philipwhiuk рдХреА рдХреБрдЫ рдЪрд┐рдВрддрд╛рдУрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

рдореИрдБ рдЖрд╢рд╛ рдХрд░рддрд╛ рд╣реВрдБ рдХрд┐ред

  • рдСрдирдЪреЗрдВрдЬ рд╕реЗ рдСрдирдЗрдирдкреБрдЯ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкреЙрд▓реАрдлрд┐рд▓ рди рдХрд░реЗрдВред

рдЙрдкрд░реЛрдХреНрдд рд╢рдмреНрджреЛрдВ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЙрддреНрд╕реБрдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдСрдирдЪреЗрдВрдЬ рдЗрд╡реЗрдВрдЯ рдХреЛ рдореВрд▓ рдШрдЯрдирд╛ рдХреЗ рдХрд░реАрдм рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрд╛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?

@MuYunyun

рд╢рдмреНрджреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╡реЗ рдСрдирдЪреЗрдВрдЬ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдЬреНрдпрд╛рджрд╛ рдорддрд▓рдм рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЕрдиреНрдп рдЖрдзреБрдирд┐рдХ рдХрд╛рдореЛрдВ рдХреА рддрд░рд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрдЧрддрддрд╛ рдкрд░рдд рдирд╣реАрдВ рд╣реЛрдЧреА, рди рд╣реА рдпрд╣ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рд╡рд░реНрддрдорд╛рди рдСрдирдЪреЗрдВрдЬ рдСрдирдкреБрдЯ + рдХреБрдЫ рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддрд╛ рд╣реИред рдбреАрдУрдПрдо рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рдШрдЯрдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╕рдорд╛рди рдЕрд░реНрдерд╢рд╛рд╕реНрддреНрд░ рдирд╣реАрдВ рд╣реИ: https://developer.mozilla.org/en-US/docs/Web/Events/change

@jxub

рдереЛрдбрд╝рд╛ рд╣рдЯрдХрд░ рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝реЗ рджреБрдЦрдж рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рднреА (рдЬрд╣рд╛рдБ рддрдХ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ) рдПрдХ html/css/svg -> jsx рдЯреНрд░рд╛рдВрд╕рдлрд╝реЛрдорд░ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдерд╛ рддрд╛рдХрд┐ HTML attrs рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдиреЗ рдЫреЛрдЯреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╣рд╛рд░рд╛ред рдЗрддрдиреЗ рд╕рд╛рд░реЗ рдорд╛рдирд╡-рдШрдВрдЯреЗ рдмрд░реНрдмрд╛рдж рдХрд░ рджрд┐рдП рдЧрдП рдЬреНрдпрд╛рджрд╛рддрд░ рдЦреЛрдЬ-рдФрд░-рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди :(

рдореИрдВ рдЕрдиреНрдп рд╕рдВрдкрд╛рджрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛, рд▓реЗрдХрд┐рди IntelliJ IDEA (рдФрд░ WebStorm, PhpStorm рдЖрджрд┐) рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддрд╛ рд╣реИ, рдЬрдм рдЖрдк JS рдореЗрдВ HTML рдХреЛрдб рдкреЗрд╕реНрдЯ рдХрд░рддреЗ рд╣реИрдВред

рдереЛрдбрд╝рд╛ рд╣рдЯрдХрд░ рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝реЗ рджреБрдЦрдж рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рднреА (рдЬрд╣рд╛рдБ рддрдХ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ) рдПрдХ html/css/svg -> jsx рдЯреНрд░рд╛рдВрд╕рдлрд╝реЛрдорд░ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдерд╛ рддрд╛рдХрд┐ HTML attrs рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдиреЗ рдЫреЛрдЯреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╣рд╛рд░рд╛ред рдЗрддрдиреЗ рд╕рд╛рд░реЗ рдорд╛рдирд╡-рдШрдВрдЯреЗ рдмрд░реНрдмрд╛рдж рдХрд░ рджрд┐рдП рдЧрдП рдЬреНрдпрд╛рджрд╛рддрд░ рдЦреЛрдЬ-рдФрд░-рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди :(

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╣реИ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ: https://magic.reactjs.net/htmltojsx.htm

рд╣рдореЗрдВ рдЙрд╕ рдкреНрд░рдпрд╛рд╕ рдХреЛ рдкреБрдирд░реНрдЬреАрд╡рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ рдЖрдк рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдХреГрдкрдпрд╛ рдХрд░реЗрдВ: https://github.com/reactjs/reactjs.org/issues/484ред рдЕрдм рддрдХ рдХрд┐рд╕реА рдиреЗ рдорджрдж рдХреА рдкреЗрд╢рдХрд╢ рдирд╣реАрдВ рдХреА рдФрд░ рдЙрд╕рдХрд╛ рдкреАрдЫрд╛ рдХрд┐рдпрд╛ред

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╣реИ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ: https://magic.reactjs.net/htmltojsx.htm

рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд╣рд▓реЗ рдХрдИ рдмрд╛рд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╣реИ - рдХреБрдЫ рдШрдЯрдХреЛрдВ рдХреЛ рдЖрдЙрдЯрд╕реЛрд░реНрд╕рд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдПрдЪрдЯреАрдПрдордПрд▓/рд╕реАрдПрд╕рдПрд╕ рдЬрд╛рдирдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдЖрдЙрдЯрд╕реЛрд░реНрд╕рд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрдо рд╣реИ рд▓реЗрдХрд┐рди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВред

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

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХрддрд░рдлрд╛ рд╣реИ (рдХреЗрд╡рд▓ рдорд╛рдЗрдЧреНрд░реЗрдЯ _to_ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛)ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдирд╣реАрдВ рд╣реИред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЪреАрдЬреЛрдВ рдХреЛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧрд╛ ...

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХрддрд░рдлрд╛ рд╣реИ (рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░реЗрдВ)ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдирд╣реАрдВ рд╣реИред

рдХреНрдпреЛрдВ? рдпрд╣ рджреВрд╕рд░реА рддрд░рдл рдФрд░ рднреА рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдмрд╕ ReactDOMServer.renderToString рдЪрд▓рд╛рдПрдВред

рд░рд┐рд▓реАрдЬ рдХрд╛ рдмреЗрд╕рдмреНрд░реА рд╕реЗ рдЗрдВрддрдЬрд╛рд░

@gaearon

рдХреНрдпреЛрдВ? рдпрд╣ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдФрд░ рднреА рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдмрд╕ ReactDOMServer.renderToString рдЪрд▓рд╛рдПрдБред

рдареАрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ: рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЬреЛ рд▓реЛрдЧ рдПрдЪрдЯреАрдПрдордПрд▓/рд╕реАрдПрд╕рдПрд╕ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЬреЗрдПрд╕ рдХреЛрдб рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╡реЗ рдШрдЯрдХреЛрдВ рдХреЗ рдорд╛рд░реНрдХрдЕрдк/рд╢реИрд▓реА/рд▓реЗрдЖрдЙрдЯ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХреЗрдВред

рдЗрд╕реЗ рдЕрднреА рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕реЗ html/css рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВ рдФрд░ htmltojsx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдм рдореБрдЭреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рд░реНрдХрдЕрдк/рд╢реИрд▓реА/рд▓реЗрдЖрдЙрдЯ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╕реНрд╡рдпрдВ рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реИред

рдЕрдЧрд░ рдореИрдВ ReactDOMServer.renderToString рдкрд░ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдЭреЗ рд╕реНрдерд┐рд░ HTML рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЙрд╕ HTML рдореЗрдВ рд╕рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдШрдЯрдХ рдХреЛрдб рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ UI рд▓реЛрдЧреЛрдВ рдХреЛ рджреЗрдирд╛ рдФрд░ рдЙрдирдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд╕рднреА рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдореЗрд░рд╛ рддрд░реНрдХред

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

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

рдпрд╣ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдореИрдВ рдЬреНрдпрд╛рджрд╛рддрд░ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдкреНрд░рд╡рд╛рд╕рди рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рдмрд╛рд╣рд░ рднреА htmltojsx рд╣рдо рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдХреНрдпреЛрдВ рдЙрдкрдпреЛрдЧреА рд╣реИ :)

рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдПрдЪрдЯреАрдПрдордПрд▓/рд╕реАрдПрд╕рдПрд╕ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЬреЗрдПрд╕ рдХреЛрдб рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╡реЗ рдШрдЯрдХреЛрдВ рдХреЗ рдорд╛рд░реНрдХрдЕрдк/рд╢реИрд▓реА/рд▓реЗрдЖрдЙрдЯ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХреЗрдВред

рдпрд╣ рдХрд┐рддрдиреА рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдереЛрдбрд╝рд╛ JSX рд╕рд┐рдЦрд╛рдирд╛ рдХрд┐рддрдирд╛ рдХрдард┐рди рд╣реЛрдЧрд╛? рд╡реИрд╕реЗ рднреА рд░рд┐рдПрдХреНрдЯ-рд╕реЗрд╡реА рдЗрдВрдЬреАрдирд┐рдпрд░ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдЕрдЧрд░ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рд┐рд╖рдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЖрдЬрдХрд▓ рдХреЗрд╡рд▓ HTML/CSS рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред

( @gaearon рдЕрдЧрд░ рдпрд╣ рд╢реЛрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЗрд╕реЗ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдкрд░реЛрдХреНрдд рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╛рдореВрд▓реА рдУрдЯреА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЙрддреНрддрд░ рд╣реИ)

рдпрд╣ рдХрд┐рддрдиреА рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдереЛрдбрд╝рд╛ JSX рд╕рд┐рдЦрд╛рдирд╛ рдХрд┐рддрдирд╛ рдХрдард┐рди рд╣реЛрдЧрд╛? рд╡реИрд╕реЗ рднреА рд░рд┐рдПрдХреНрдЯ-рд╕реЗрд╡реА рдЗрдВрдЬреАрдирд┐рдпрд░ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЦреИрд░, рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:

  • рдХреЗрд╡рд▓ рдЙрди рдареЗрдХреЗрджрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ рдЬреЛ рдЖрдкрдХреЗ рд╡рд░реНрддрдорд╛рди рд░рд┐рдПрдХреНрдЯ рд╕реНрдЯреИрдХ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдВред рд╕реНрдЯрд╛рдЗрд▓-рдШрдЯрдХреЛрдВ рдХреЛ рд╕реАрдЦрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдвреВрдВрдврдирд╛ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИ
  • рдиреЛрдб (рдПрдирдкреАрдПрдо), рдЕрдкрдирд╛ рд╕реНрдЯреИрдХ (рд░рд┐рдПрдХреНрдЯ, рд╡реЗрдмрдкреИрдХ рдЖрджрд┐) рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдФрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЕрдиреНрдп рд╕рднреА рдЪреАрдЬреЗрдВ рдпреВрдЖрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрджреНрдпрддрд┐рдд рд░рдЦреЗрдВред
  • рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд┐рдЦрд╛рдПрдВ, рдпрд╣ рд╕реАрдЦреЗрдВ рдХрд┐ рдХреИрд╕реЗ devtools, рдХрдВрд╕реЛрд▓ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред
  • рдЙрдиреНрд╣реЗрдВ рд░рд┐рдПрдХреНрдЯ рдХрд░рдирд╛ рд╕рд┐рдЦрд╛рдПрдВ, рдЗрд╕рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреНрдпрд╛ рд╣реИ, рд╕рд╛рдорд╛рди рдЬреИрд╕реЗ className , key рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ рдЖрджрд┐ред
  • рдХреЗрд╡рд▓ рдЙрди рдареЗрдХреЗрджрд╛рд░реЛрдВ рдФрд░ рдлреНрд░реАрд▓рд╛рдВрд╕рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ рдЬреЛ HTML/CSS рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЙрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЗрдЪреНрдЫреБрдХ рд╣реИрдВред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЪреАрдЬреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдорд╣рдВрдЧрд╛ рднреА рдмрдирд╛рддрд╛ рд╣реИред

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

рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдпрд╣ рдХреНрдпреЛрдВ рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЖрдо рд╕рдорд╕реНрдпрд╛ рд╣реИ (рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╣реИ)ред рднрд▓реЗ рд╣реА рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд░рд┐рдПрдХреНрдЯрдбреЙрдо рдХреЗ рдореВрд▓ рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рд╣реИред

рдпрд╣ рдХрд╛рдлреА рдЕрд▓рдЧ рд╡рд┐рд╖рдп рд╣реИ :-) рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХреЛ рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рдпрд╛ рдХрд╣реАрдВ рдФрд░ рдЬрд╛рд░реА рд░рдЦреЗрдВред

"рдЬрд┐рд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рдЖрдк рдПрдХ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦрддреЗ рд╣реИрдВ рд╡рд╣ рдПрдХ рдРрд╕рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ рдЬреЛ рдЙрдкрдХрд░рдг рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реИ"
~ рдЧреИрд░реА рдмрд░реНрдирд╣рд╛рд░реНрдЯ

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

16.3 рдореЗрдВ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ (рдпрджрд┐ рдореБрдЭреЗ рд╕рд╣реА рдпрд╛рдж рд╣реИ) рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрдм vdom рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдореВрд▓ HTML рддрддреНрд╡реЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рд╕реА рднреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдХреЗ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдЧрд╛, рдореБрдЭреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛрдбрдмреЗрд╕ рдЕрдм рдмрдЧ рд╕реЗ рдЧреНрд░рд╕реНрдд рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдордиреЗ рдЗрд╕ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЦрд░рд╛рдм рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдерд╛

<div {...this.props} />

рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ рдХрд╛рдлреА рдирд┐рд░рд╛рд╢ рд╣реВрдВ рдХрд┐ рдбреИрди рд╕реБрдЭрд╛рд╡ рджреЗ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рднрдпрд╛рдирдХ рдХреЛрдб рдХреЛ рд╕рднреА рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдлреИрд▓рд╛рддреЗ рд░рд╣реЗрдВред

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

<Child {...props} />

const Child = (props) => <div {...props} />

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

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

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

@gaearon рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ! :) (рдкреАрдПрд╕ред рдЯреАрдПрд▓ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ; рдбреЙ рдЖрдЧреЗ)

рд╡реИрд╕реЗ рднреА, рдореИрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░рдирд╛рдореЛрдВ рд╕реЗ рдЬреЛ рдХреБрдЫ рд╕реАрдЦрд╛ рд╣реИ, рдЙрд╕рдореЗрдВ рдХреБрдЫ рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ "рдиреНрдпреВрдирддрдо" рд░рд┐рдПрдХреНрдЯ рд╡реНрдпреБрддреНрдкрдиреНрди рдмрдирд╛рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдм рдореИрдВ рдкреНрд░рджрд░реНрд╢рди/рд╕реБрд╡рд┐рдзрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рд╢реБрд░реВ рдореЗрдВ рд╕рд┐рд░реНрдл рдПрдХ рдордЬреЗрджрд╛рд░ рд╕рд╛рдЗрдб рдкреНрд░рдпреЛрдЧ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдХрдИ рдЕрдиреНрдп рд▓рд╛рднреЛрдВ рд╕рд╣рд┐рдд рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рддрд┐рдкрд╛рджрди/рдЕрджреНрдпрддрди/рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ + 300% рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рджреЗрдЦ рд░рд╣рд╛ рдерд╛ред рд╡рд╣ рднреА рдкреВрд▓ рдХрд┐рдП рдЧрдП рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ред

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

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

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

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

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

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

рд╡реИрд╕реЗ рднреА, рд╢рд╛рдпрдж рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рд┐рд░реНрдл рдЬреБрдЖ рдФрд░ рдореИрдВ рд╢рд╛рдпрдж рдЬреНрдпрд╛рджрд╛рддрд░ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдмрддрд╛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдЬрд╛рдирдХрд╛рд░реА рд╣реЛред рдЗрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрддрд░ рд╢рд╛рдпрдж рдЖрдкрдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк "рд╕рд╛рджрдЧреА" рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИ :)

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рднреВрд▓ рдЬрд╛рдКрдВ, рдЖрдкрдХреЛ рдореЗрд░реЗ objectKeyValueReconcile рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд░реБрдЪрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдЬреИрд╕реЗ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реЗ/рдЕрдЧрд▓реЗ рдкреНрд░реЙрдкреНрд╕ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддреНрдпрдзрд┐рдХ рддреЗрдЬрд╝ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рддред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд╛рд╕реНрддрд╡рд┐рдХ-рд╡рд┐рд╢реНрд╡ рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

https://github.com/syranide/surgical/blob/master/packages/surgical/private/objectKeyValueReconcile.js

imho рдореИрдВ "рд╡рд░реНрдЧ" рд╡рд┐рдЪрд╛рд░ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред JSX рдЕрдВрддрддрдГ рдорд░ рдЬрд╛рдПрдЧрд╛ред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдбреЛрдо рдореЗрдВ рдЧреИрд░-рддрддреНрд╡ рдЖрдзрд╛рд░рд┐рдд рдбреЛрдо/рд╡рд┐рдВрдбреЛ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреНрдпрд╛ рд╣реИрдВ? рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдирд┐рд╖реНрдХрд╛рд╕рди рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЕрднреА рднреА рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдИрд╡реЗрдВрдЯ рдПрдХрддреНрд░рд┐рдд/рдЕрджреНрдпрддрди/рдмреИрдЪрд┐рдВрдЧ рд╣реЛрдВрдЧреЗред рдХреАрдкреНрд░реЗрд╕, рдЖрдХрд╛рд░ рдмрджрд▓рдирд╛ рдФрд░ рд╡рд┐рдВрдбреЛ рд╕реНрдХреНрд░реЙрд▓ рдЗрд╡реЗрдВрдЯ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рджреГрд╢реНрдп рд╣реИрдВ рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдВрднрд╡рддрдГ https://developer.mozilla.org/en-US/docs/Web/Events рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢/рд╕рднреА рд╕реВрдЪреА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рд╕реЗ рдПрдХ рд╣реА рдЕрдореВрд░реНрдд рдХреЗ рдкреАрдЫреЗ рдлрд╛рдпрджреЗрдордВрдж рд╣реЛред

рдпрд╣ рд╕рдмрд╕реЗ рдкреБрд░рд╛рдиреЗ рдЦреБрд▓реЗ рдЕрдВрдХ #285 рдореЗрдВ рднреА рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рддреА рд╣реИред

@gaearon

className -> class рдХрд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкреНрд░рднрд╛рд╡ рд╣реЛрдЧрд╛:

({ className }) => <div className={className} />

рд╣реЛ рдЬрд╛рдПрдЧрд╛

({ ...rest }) => <div class={rest.class} />

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

@kans

рдпрд╛ рдпрд╣:

props => <div class={props.class} />

рдпрд╣ рдореВрд▓ рдХрд╛рд░реНрдп рдХреЗ рд╕рдорд╛рди рдЬрдЯрд┐рд▓рддрд╛ рд╣реИред

рдореБрдЭреЗ рдХреНрд▓рд╛рд╕рдирд╛рдо рдкрд╕рдВрдж рдЖрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдХреНрд▓рд╛рд╕ рдЬреЗрдПрд╕ рдореЗрдВ рдПрдХ рдХреАрд╡рд░реНрдб рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдПрдХ рдмрдбрд╝рд╛ рд╕реМрджрд╛ рд╣реИред рдореБрдЭреЗ рдЧреНрд▓реИрдорд░рд╕ рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЗ рд╕рд╛рде рд╕реНрдЯрд╛рдЗрд▓ рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рд╕рд╛рд▓реЛрдВ рдореЗрдВ рдХреНрд▓рд╛рд╕рдирд╛рдо рдХреЛ рджреЛ рджрд░реНрдЬрди рдмрд╛рд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╣реИ ?? рд▓рдЧрднрдЧ рдирд╣реАрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рд╡рд┐рдЪрд╛рд░ рдЬреЛ рдореЗрд░реЗ рд╕рд╛рде class рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реБрдЖ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрд▓рд╛рд╕рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рд╕реАрдПрд╕рдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рд╡реЗ class рдХреЗ html/css рдореЙрдбрд▓ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░реЛрдк рдХрд╛ рдЕрддреНрдпрдзрд┐рдХ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд░реНрдл рд╕реАрдПрд╕рдПрд╕ рдХреЛрдб рд╕реЗ рдЬреБрдбрд╝ рд░рд╣рд╛ рд╣реИ, рдареАрдХ рд╣реИ, рддреЛ рдХреНрдпреЛрдВ рди рдЗрд╕реЗ рдПрдЪрдЯреАрдПрдордПрд▓/рд╕реАрдПрд╕рдПрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рддрд░рд╣ рдХрдХреНрд╖рд╛ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ?

рдбрд┐рдЬрд╝рд╛рдЗрди рд╕рд┐рд╕реНрдЯрдо рдХреЛрдб рдХреЗ рдмрд╛рд╣рд░ IMO, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╡рд┐рдХрд╛рд╕ рдЖрдорддреМрд░ рдкрд░ рд╡реИрд╕реЗ рднреА рдХреНрд▓рд╛рд╕рдирд╛рдо рдпрд╛ рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЬрдм рдореБрдЭреЗ рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рдХреБрдЫ рдЫреЛрдЯреЗ рдпреВрдЖрдИ рдШрдЯрдХреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрддреА рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░рдд рдкрд░ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдмрд╣реБрдд рдХреБрдЫ рдЙрдЪреНрдЪ рд╕реНрддрд░ рд╣реИ (рдЬреИрд╕реЗ, рдХрд╣реЗрдВ, <Columns verticalAlign="center"> рдпрд╛ <BodyText /> )ред

рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ className рд╕реЗ class рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рд╕реЗ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдкреНрд░реЛрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рд░рд┐рдПрдХреНрдЯ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдореЗрдВ рдЖрдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрд░реЛрдзрд┐рдд рди рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП) , рдЖрджрд┐), рдХреНрдпреЛрдВ рди рд╕рд┐рд░реНрдл рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ?

рдХреГрдкрдпрд╛ рдмрдВрдбрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдХрдо рдХрд░реЗрдВред

рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рдмрдбрд╝рд╛, рдмреНрд░реЗрдХрд┐рдВрдЧ рдЕрдкрдбреЗрдЯ рд╣реИ, рд╢рд╛рдпрдж рд╣рдо рд░рд┐рдПрдХреНрдЯ рдЬреАрд╡рдирдЪрдХреНрд░ рдирд╛рдордХрд░рдг рдХреЛ рднреА рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!

рдпрд╛рдиреА shouldComponentUpdate => shouldUpdate , рдЖрджрд┐ред рдпрд╣ рдирд╛рдордХрд░рдг рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд╕реЗ рдкрд░реЗ рд╣реИред

@AlexGalays

рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рдмрдбрд╝рд╛, рдмреНрд░реЗрдХрд┐рдВрдЧ рдЕрдкрдбреЗрдЯ рд╣реИ, рд╢рд╛рдпрдж рд╣рдо рд░рд┐рдПрдХреНрдЯ рдЬреАрд╡рдирдЪрдХреНрд░ рдирд╛рдордХрд░рдг рдХреЛ рднреА рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!

рдпрд╛рдиреА shouldComponentUpdate => shouldUpdate, рдЖрджрд┐ред рдпрд╣ рдирд╛рдордХрд░рдг рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд╕реЗ рдкрд░реЗ рд╣реИред

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

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

@ljharb
рдЙрдлрд╝, рд╡рд╛рдХрдИ!

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

рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрд╕реНрдЯрдо-рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ рдЗрдВрдЯрд░рдСрдк рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдХрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдлрд╝реЛрд░рдо рдореЗрдВ рдХреБрдЫ рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдереНрд░реЗрдбреНрд╕ рдкрд░ рд▓реЗ рдЬрд╛рдирд╛ рдЙрдЪрд┐рдд рд╣реИ (https://discuss.reactjs.org)? рдЪреВрдВрдХрд┐ рдЧрд┐рдЯрд╣рдм рдореБрджреНрджреЛрдВ рдХреЛ рдлреЛрд░рдо рдкреЛрд╕реНрдЯ рдХреА рддрд░рд╣ рдереНрд░реЗрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╣реА рдореБрджреНрджреЗ рдореЗрдВ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

className -> class рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдореБрдЭреЗ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрддрд╛ рд╣реИ

рджреЗрдЦрд┐рдП, 2019 рд░рд┐рдПрдХреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕

const {
  class: className, // YouKnowIamRight PepeHands
  someFancyProp,
  ...restProps
} = props

рдореИрдВ рдЗрд╕реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред

рдореБрдЭреЗ HTML рдХреЛ рдХреЙрдкреА рдкреЗрд╕реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдФрд░ className рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рдореИрдВ рдЙрди рдореБрджреНрджреЛрдВ рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ рдЬреЛ class рдЖрд░рдХреНрд╖рд┐рдд рдХреАрд╡рд░реНрдб рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдореИрдВ className рдХреЗ рд╕рд╛рде рд░рд╣рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдордЬрдмреВрдд рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдЪрд┐рдВрддрд╛ рди рд╣реЛ (рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд░реАрдпрддрд╛ рдирд╣реАрдВ)

рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл рдореЗрд░реА рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░рд╛рдп рд╣реИред

рдЬрдмрдХрд┐ рдореИрдВ class рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдирд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдШрд░реНрд╖рдг рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдХрдХреНрд╖рд╛ рдХреЗ рдирд╛рдо рдХреЛ рдкреНрд░реЛрдк рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡ рджреЗрддреЗ рд╣реИрдВред

className рдХреЛ рдПрдХ рд░рд┐рдПрдХреНрдЯ рдХрдВрдкреЛрдиреЗрдВрдЯ (рдЬреЛ рдХрд┐ рдХреЗрд╡рд▓ DOM рдПрд▓рд┐рдореЗрдВрдЯ рдирд╣реАрдВ рд╣реИ) рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдпрд╛ рддреЛ рдмрд┐рдирд╛ рдХреЛрдИ рдирдпрд╛ рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд┐рдП рдХрд╛рдлреА рдЫреЛрдЯреЗ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдмреНрд▓реЙрдХреНрд╕ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рд╡рд╣ рдХрдВрдкреЛрдиреЗрдВрдЯ рдЗрд╕рдХреЗ рдХреБрдЫ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП <Button /> рдШрдЯрдХ) рдЖрдк рд╢рд╛рдпрдж @gaearon рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдФрд░ рд╕рд╛рде рд╣реА рд╕рд╛рде рдкреНрд░реЛрдк рдХреЗ "рдмрд╛рдХреА" рдХреЛ DOM рддрддреНрд╡ рдкрд░ рднреА рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдШрд░реНрд╖рдг рдЖрдкрдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдФрд░ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░реЗред

рдЕрдкрдиреЗ рд╡рд┐рдирдореНрд░ рдЕрдиреБрднрд╡ рд╕реЗ, рдореБрдЭреЗ HTML рдХреЛ JSX рдореЗрдВ рдХреЙрдкреА рдХрд░рдирд╛ рдкрдбрд╝рд╛ (рдФрд░ class рдХреЛ className рд╕реЗ рдмрджрд▓ рджреЗрдВ) рдЬрд┐рддрдирд╛ рдореИрдВ рдпрд╛рдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдПрдХ рдШрдЯрдХ рдмрдирд╛рдирд╛ рдЬреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ className ред

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

@philipwhiuk рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдЙрди рдкреНрд░реЙрдкреНрд╕ рдХреЛ рдлреИрд▓рд╛рддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЖрдк рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреЛрдИ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред

@ рдЬреЗ-рдПрдл1

рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдЙрди рдкреНрд░реЙрдкреНрд╕ рдХреЛ рдлреИрд▓рд╛рддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЖрдк рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреЛрдИ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред

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

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

рдЖрдк рдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕реЗ (рд╣рд╛рдВ, рдЖрдк рдХрд░рддреЗ рд╣реИрдВ) рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреЗрдХреНрд╕реНрдЯ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЧреИрд░-рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбреЙрдЯ рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп props рдФрд░ state рд╕реЗ рд▓рдЧрднрдЧ рд╣рд░ рдореВрд▓реНрдп рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВред

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

рдпрджрд┐ рдЖрдк рдереЛрдбрд╝реЗ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИрдВ рддреЛ рдЖрдк рдЕрдкрдиреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп рддрдХрдиреАрдХреА рдирд┐рд╣рд┐рддрд╛рд░реНрдереЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдореИрдВ рдХрд┐рд╕реА рдХреЛ рднреА className рдХреЗ рддрдХрдиреАрдХреА рдирд┐рд╣рд┐рддрд╛рд░реНрдереЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдХрд╣рддреЗ рд╣реБрдП рдирд╣реАрдВ рджреЗрдЦрддрд╛ред

рдПрдХ рдФрд░ рдмрд╛рдд рдЬрд┐рд╕ рдкрд░ рдЖрдкрдХреЛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдХреЛрд░ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬрд╝ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ (рдореБрдЭреЗ рдЧрд▓рдд рд╕рд╛рдмрд┐рдд рдХрд░реЗрдВ, рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕реЛрдЪреЗрдВ)

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

рд▓реЗрдХрд┐рди рдлрд┐рд░, рдореЗрд░реА рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░рд╛рдпред

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

@AlexGalays React рд╕рд╣реА рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рд╕рд╛рде рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдЧреИрд░-рдЕрдиреБрдкрд╛рд▓рди рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЙрдирдХрд╛ рдРрдк рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдФрд░ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддрд░реАрдХреЛрдВ рд╕реЗ рдЯреВрдЯ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдирд╛ рдорджрджрдЧрд╛рд░ рд╣реЛрддрд╛ рд╣реИред

рдпрд╣ рдХреЗрд╡рд▓ рд╡рд┐рдХрд╛рд╕ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдУрд╡рд░рд╣реЗрдб рдирд╣реАрдВ рд╣реИред

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

рдХреНрдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдЧ рдХреЗ рд▓рд┐рдП рдШрдЯрдирд╛ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрд╛рдВрдзрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛?

class Compo exntends Compoent {
 onClick() {
   ...
 }
  render() {
   <button onClick={this.onClick} >click me </button>
  }
}

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

@cullophid

рдХреНрдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдЧ рдХреЗ рд▓рд┐рдП рдШрдЯрдирд╛ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрд╛рдВрдзрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛?

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

class Compo extends Compoent {
 onClick = () => {
   ...
 }
 render() {
   <button onClick={this.onClick}>click me</button>
 }
}

рдШрдЯрдирд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЕрдиреНрдп рд▓рд╛рдн (рдХреНрдпрд╛ рд╣рдо рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреВрд▓рд┐рдВрдЧ рдХреЗ рдХрдЪреНрдЪреЗ рдбреЛрдо рдШрдЯрдирд╛рдУрдВ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рд╕рднреА рдврд╛рдВрдЪреЗ рдХрд░рддреЗ рд╣реИрдВ? :)) рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХрд░рдирд╛ рднреА рдЖрд╕рд╛рди рд╣реИред

рдПрдХ рдорд╣рд╛рди рдпреЛрдЬрдирд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ! рдЖрдИрдИ 11 рд╕рдорд░реНрдерди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╡рд╛рдХрдИ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ (рднрд▓реЗ рд╣реА рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдЕрдкрдиреЗ рдкреЙрд▓реАрдлрд┐рд▓ рдХреЛ рд╢рд┐рдкрд┐рдВрдЧ рдХрд░рдирд╛ рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рд╣реИ)ред рд╕рд░рдХрд╛рд░реА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ, рдЬрдм рд╡реЗ IE 11 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдВрдЧреЗ, рддреЛ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдЬреНрдЮрд╛рдд рд╣реИ :(

@MatthewHerbst рдПрдХ рд╣реА рдирд╛рд╡, рд╣рдорд╛рд░реЗ рдЧреНрд░рд╛рд╣рдХ IE 11 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕рдХрд╛ рдкрд░реНрдпрд╛рдкреНрдд рдЯреНрд░реИрдлрд╝рд┐рдХ рд╣реИ

рдмрд╕ рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдЭрдВрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рд╕рдм рд╕реБрдкрд░ рд░реЛрдорд╛рдВрдЪрдХ рд╣реИред рдПрдХ рдмрд╛рдд рдЬреЛ рдореИрдВрдиреЗ рдкрдврд╝реА рд╡рд╣ рдореБрдЭреЗ рдЪрд┐рдВрддрд┐рдд рдХрд░рддреА рдереА:

рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╣рдо рдХреБрдЫ рдореМрдЬреВрджрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдВрддрд░реЛрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ

рдЕрднреА рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдХрд┐рд╕реА рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ "рдЬрд╕реНрдЯ рд╡рд░реНрдХ" рдХрд░реЗрдЧрд╛ рдЬреЛ рд░рд┐рдПрдХреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрд░реЙрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдРрдк рдХреА рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░реА рдмрди рдЬрд╛рдПрдЧреАред рдпрд╣ рд╕рдВрднрд╡рддрдГ рдмрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рдкреЗрд╢ рдХрд░реЗрдЧрд╛ред ... рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдореЗрд░реЗ рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛ред :)

рд╡реИрд╕реЗ рднреА, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдорд╣рд╛рди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

@kentcdodds рдиреЗ JSX 2.0 рдПрдХреАрдХрд░рдг рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдЪрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдерд╛ рдЬрд┐рд╕реЗ рдореИрдВ рд░рдгрдиреАрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдврд╝ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рднреА рдирд╣реАрдВ рджреЗрдЦрд╛ред рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рд┐рд░реНрдл рд╣рд╡рд╛ рдореЗрдВ рдерд╛ рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рдЬрд┐рд╕реЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рд░реЛрдХ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?

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

@hbroer рд▓рд┐рдЧреЗрд╕реА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░?

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

  • "рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ" - рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде "рдирдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ" рд╕рдВрджреЗрд╢ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╢рд╛рдпрдж Microsoft рд╣реЙрдЯрд▓рд╛рдЗрди рдХреЗ рдЯреЗрдХреНрд╕реНрдЯ рдФрд░ рдлрд╝реЛрди рдирдВрдмрд░ рдХреА рдорджрдж рд╕реЗ ^^
  • "рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ" - рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрдЧрдарди рдХреЛ рдЕрдкрдиреЗ рдкрд░рд┐рд╡реЗрд╢ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЙрдирдХреЗ рдЙрдкрдХрд░рдг рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдХрд░реЗрдВрдЧреЗред

рдореИрдВ рдЕрддреАрдд рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╕реЗ рдирдлрд░рдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдирдИ рддрдХрдиреАрдХ рдХреЗ рд▓рд╛рдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдХреНрдпреЛрдВрдХрд┐ 90% рдХреЛрдбрд░ рдЕрднреА рднреА рдкрд┐рдЫрд▓реА рд╕рджреА рдореЗрдВ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рдиреАрдЪреЗ рдХреЗ 15% рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЗ рднрджреНрджреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред ^^ рдпрд╣ "рдУрд╣ рдЗрд╕ рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ 6 рдирд░реНрдб рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реИ, рд╣рдореЗрдВ рдЕрдЧрд▓реЗ 10 рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдЙрд╕ 15% рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╣реЛрдЧрд╛"ред

рд╡реЗрдмрдХрд┐рдЯ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬ 7 рдФрд░ 8 рдХреЗ рд▓рд┐рдП рдПрдЬ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдПрдо $ рд╕реАрдоред

@hbroer рд╕рдм рдХреБрдЫ рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЕрдЧрд░ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЕрдиреНрдп рдордиреБрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рд╣рд╛рдиреБрднреВрддрд┐ рд░рдЦреЗрдВред

(рдЕрд▓рдЧ рд╕реЗ, M$ рдПрдХ рд╕реБрдВрджрд░ рдХрд┐рд╢реЛрд░ рд╣реИ рдФрд░ 90 рдХреЗ рджрд╢рдХ рдХреЗ рдЙрддреНрддрд░рд╛рд░реНрдз рдХрд╛ рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╕рдВрджрд░реНрдн рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ; рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдЗрд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА)

рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ, рдпрд╣рд╛рдБ рдХрдИ M$ fanboiz рд╣реИрдВред :DI рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдордиреБрд╖реНрдпреЛрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрди рд╕рдВрдЧрдардиреЛрдВ рдкрд░ рдирд╣реАрдВ рдЬреЛ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдкреНрд░рдЧрддрд┐ рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВ, рдпрд╛ рдХреЛрдбрд░реНрд╕ рдЬреЛ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЙрд╕ рдкреБрд░рд╛рдиреА рдмрдХрд╡рд╛рд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрдХреЗрдЬ рд╕реЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ "рдкреБрд░рд╛рдиреА рдмрдХрд╡рд╛рд╕ рд╕рдВрдЧрдд" рдмрдирд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди 2019 рдореЗрдВ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ >=2019 рддрдХрдиреАрдХ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдХрд░ рдХреЛрдбрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ <=2013 рддрдХрдиреАрдХ рдХреЛред рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдХрд╛рдлреА рдмреБрд░рд╛ рд╣реИ (рдУрд╣ рд╣рдо рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдФрд░ рддрд░реАрдХреЗ рд╕реЗ рдХрд░рддреЗ рд╣реИрдВ) рд╕рдлрд╛рд░реА рдФрд░ (рдкреБрд░рд╛рдиреА) рдХрд┐рдирд╛рд░реЗ рдХреА рдмрдХрд╡рд╛рд╕ред

рдорд╛рдЗрдХреНрд░реЛрдбреНрд░реЙрдк

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

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

рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ, рдпрд╣рд╛рдБ рдХрдИ M$ fanboiz рд╣реИрдВред

@hbroer рдореИрдВ рдпрд╣рд╛рдБ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдХрдВрдмрд▓ рд╡рд┐рдЬреНрдЮрд╛рдкрди рд╣реЛрдорд┐рдирдо рд╣рдорд▓реЛрдВ рдХреЗ рд╕рд╛рде рджреЗрдЦрддрд╛ рд╣реВрдБред

рд▓реЗрдХрд┐рди 2019 рдореЗрдВ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ >=2019 рддрдХрдиреАрдХ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдХрд░ рдХреЛрдбрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ <=2013 рддрдХрдиреАрдХ рдХреЛред

рдирд╣реАрдВ, рдпрд╣ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

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

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

browsers

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

рдкреАрдПрд╕ рдореИрдВ рдПрдХ рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ рдЬреЛ рдХрдЯрд╛рдХреНрд╖ рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛ рдФрд░ рдореБрд╕реНрдХреБрд░рд╛рд╣рдЯ рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ ^^

@hbroer рдЖрдк рджрд┐рдЦрд╛ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ IE11 рд╡рд░реНрддрдорд╛рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдбрд┐рдВрдЧ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИред

рдФрд░ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗред https://browserl.ist рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рджреЗрдЦреЗрдВред

рдкреАрдПрд╕ рдореИрдВ рдПрдХ рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ рдЬреЛ рдХрдЯрд╛рдХреНрд╖ рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛ рдФрд░ рдореБрд╕реНрдХреБрд░рд╛рд╣рдЯ рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ ^^

рд╣рд╛рдБ, рдирд╣реАрдВред рдпрд╣ рдЯреНрд░реЛрд▓ рдФрд░ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреЗ рдзрдордХрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпреЛрдЬрд┐рдд рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд░рдгрдиреАрддрд┐ рд╣реИред "рдХреНрдпрд╛?! рдореИрдВрдиреЗ рддреБрдореНрд╣рд╛рд░рд╛ рдЕрдкрдорд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛! рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдордЬрд╛рдХ рдерд╛!"ред

рдЧреНрд░рд╣ рдкрд░ 0.20% рд▓реЛрдЧ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ "рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ" рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдП рдЧрдП, 6.4 рдорд┐рд▓рд┐рдпрди рдордиреБрд╖реНрдп рд╣реИрдВред рдкреНрд░рддрд┐рд╢рдд рдмрд┐рд▓реНрдХреБрд▓ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВред рдордиреБрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб; рдЕрддреАрдд рдФрд░ рднрд╡рд┐рд╖реНрдп, рдФрд░ рдЖрдкрдХреЗ рдмрдВрдбрд▓ рдЖрдХрд╛рд░, рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред

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

рдЕрдм 2019 рдореЗрдВ рдореИрдВ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реАрдПрд╕рдПрд╕ рдЧреНрд░рд┐рдб (рдЬрд┐рд╕рдореЗрдВ IE11 рдкрд░ рдХреЗрд╡рд▓ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╕рдорд░реНрдерди рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛, рдФрд░ ES6 рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдореИрдВ рдЙрд╕ рдкреБрд░рд╛рдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдкреЙрд▓реАрдлрд╝рд┐рд▓ рд╡рд┐рддрд░рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред IE11 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрд╕ рдПрдХ рд╕рдВрджреЗрд╢ рдорд┐рд▓рддрд╛ рд╣реИ: рдЕрдкрдирд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

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

рдореИрдВ рд╣рд░ рдЙрд╕ рдмреНрд░рд╛рдЙрдЬрд░ рдкрд░ рдирдЬрд░ рд░рдЦрддрд╛ рд╣реВрдВ рдЬреЛ рдкреБрд░рд╛рдирд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдПрдЬ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рдЙрд╕ IE11 рдмрдХрд╡рд╛рд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдВрдбреЛрдЬ 7 (рдЬреЛ рдЬрдирд╡рд░реА 2020 рдХреЛ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрдзреБрдирд┐рдХ рд▓реЛрдЧ рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред ^^

рдХреЛрдИ рднреА рдЖрдкрдХреЛ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдФрд░ рд╕рдВрдЧрддрддрд╛ рдкреИрдХреЗрдЬ рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреЛрд░ рдЕрдк рдЯреВ рдбреЗрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдкреБрд░рд╛рдиреЗ M$ рддрдХрдиреАрдХреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдХреЗрд╡рд▓ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдХреЗ рдХрд╛рд░рдг рдкреАрдЫреЗ рдирд╣реАрдВ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

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

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

рд░рд┐рдПрдХреНрдЯ рдлрд╛рдпрд░ рдХреА рдкреНрд░рдЧрддрд┐ рд╕реНрд╡рдпрдВ рдЕрдкреНрд░рднрд╛рд╡рд┐рдд рд▓рдЧрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдмрд╣рд╕ рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рд╣рд╛рд╕рд┐рд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рд╣реИред рдЖрдЗрдП рдХреГрдкрдпрд╛ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рдореБрдЦреНрдп рд╡рд┐рд╖рдп рдкрд░ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдпрд╣ #6410 рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрд╡рд╕рд░ рд╣реЛрдЧрд╛? рдпрд╣ onChange / onInput рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЗ рд╕рдорд╛рди рд▓рдЧрддрд╛ рд╣реИред

5 рдЬреВрди 2019 рд╕реЗ рдЕрдкрдбреЗрдЯ

рдЗрд╕реЗ рдмреАрддреЗ рдПрдХ рдЕрд░реНрд╕рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдХрд╣рд╛рдВ рд╣реИрдВ, рдЗрд╕ рдкрд░ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЕрдкрдбреЗрдЯ рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╣рдордиреЗ рджрд┐рд╕рдВрдмрд░ рдореЗрдВ рдлрд╛рдпрд░ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред https://github.com/facebook/react/pull/14382 рдФрд░ рдЕрдиреНрдп рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рдХреБрдЫ рдХрд╛рд░реНрдп рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреИрд╕реЗ рд╣реА рд╣рдордиреЗ рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЙрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬреЛ рд╣рдореЗрдВ рд▓рдЧрддрд╛ рдерд╛ рдХрд┐ рд╡реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдпрд╛ рдкреБрд░рд╛рдиреЗ рдереЗ, рд╣рдордиреЗ рдХрдИ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреА рдЦреЛрдЬ рдХреА рдЬрд╣рд╛рдВ рдпрд╣ рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рдерд╛ рдФрд░ рдмрдЧ рдХреЛ рд░реЛрдХрд╛ - рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рднреАред рд╣рдо рдЕрднреА рднреА рд╡рд┐рд░рд╛рд╕рдд рдХреА рдХрдореА рдХреЛ рдХрдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрдЪреНрдЪреЗ DOM рдИрд╡реЗрдВрдЯ рдХреЗ рдХрд░реАрдм рд╣реЛрдирд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рджрд┐рд╢рд╛ рд╣реИред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛрдб рдХреЛ рдХреЗрд╡рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдореЗрдВ рдХрдИ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЯреНрд░реЗрдбрдСрдлрд╝ рдирд╣реАрдВ рд╣реИред рдФрд░ рдЗрд╕реЗ рдРрдк рд╕реНрддрд░ рдкрд░ рдареАрдХ рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

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

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

рдЗрд╕ рдЬрд╛рдВрдЪ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдордиреЗ рдЕрдиреНрдп рдорджреЛрдВ рдкрд░ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдХрд╛рдо рд░реЛрдХ рджрд┐рдпрд╛ рд╣реИ рдЬреЛ рд░рд┐рдПрдХреНрдЯ рдлрд╛рдпрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ, рдФрд░ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдХреЗрд╡рд▓ рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИред рдЙрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд░рд┐рдПрдХреНрдЯ рдлреНрд▓реЗрдпрд░ (https://github.com/facebook/react/issues/15257) рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рдиреЗ рд▓рдЧрд╛ред рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдХрд╛рдлреА рдЪреБрдиреМрддреАрдкреВрд░реНрдг рд╣реИ рдФрд░ рдЗрд╕ рд╕реВрдЪреА рдХреА рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдкрд╣рд▓реЗ рдЗрд╕ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

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

рд░рд┐рдПрдХреНрдЯ рдлреНрд▓реЗрдпрд░ рдЕрднреА рднреА рдПрдХ рдкреНрд░рдпреЛрдЧ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕рдХреА рд╕рдордЧреНрд░ рджрд┐рд╢рд╛ рдореЗрдВ рдХрд╛рдлреА рдЖрд╢реНрд╡рд╕реНрдд рд╣реИрдВ, рдФрд░ рдЕрдВрддрддрдГ рдЗрд╕реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдУрдкрди рд╕реЛрд░реНрд╕ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред (рдЕрднреА рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЖрдк рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдХреЛрдИ рд╕реЗрд╡рд░ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрд╕ рдкрд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред) рдлрд╛рдпрд░ рдХреА рддрд░рд╣, "рдлреНрд▓реЗрдпрд░" рд╕рд┐рд░реНрдл рдПрдХ рдХреЛрдбрдиреЗрдо рд╣реИ - рдЬрдм рддрдХ рд╣рдо рдЗрд╕реЗ рд╢рд┐рдк рдХрд░рддреЗ рд╣реИрдВ, рддрдм рддрдХ рдпрд╣ рд╣реЛрдЧрд╛ рдЙрдЪрд┐рдд рдирд╛рдордХрд░рдг, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг, рдЖрджрд┐ред рд╢рд╛рдпрдж react/events рдпрд╛ рдРрд╕рд╛ рдХреБрдЫред рд╣рдо рдЕрдВрддрддрдГ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдореЗрдВ рднреА рд╕рдордХрдХреНрд╖ рдШрдЯрдирд╛рдУрдВ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

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

рдорд╣рд╛рди рдХрд╛рдо! рдЗрд╕рд▓рд┐рдП рдорд╛рдЙрд╕ рдФрд░ рдЯрдЪ рдЗрд╡реЗрдВрдЯ рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдЕрднреА рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рд▓реНрдХрд╛ рдФрд░ рд░рд┐рдПрдХреНрдЯ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛрдЧрд╛ред

рдХреНрдпрд╛ "рд░рд┐рдПрдХреНрдЯ рдлреНрд▓реЗрдпрд░" рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рд┐рдПрдХреНрдЯ рдкреИрдХреЗрдЬ рдХреЗ рдПрдХ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдПрдЧрд╛ рдпрд╛ рдПрдкреАрдЖрдИ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЗрдВрд╕реНрдЯрд╛рд▓реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА?

рд╣рдо рдЕрдкреНрд░рдпреБрдХреНрдд рдХреЛрдб рдХреЛ рдмрдВрдбрд▓ рд╣реЛрдиреЗ рд╕реЗ рдмрдЪрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рддреЛ рд╡рд░реНрддрдорд╛рди рдЗрд░рд╛рджрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐ рдПрдкреАрдЖрдИ рдСрдкреНрдЯ-рдЗрди рд╣реЛрдирд╛ рд╣реИред рд╢рд╛рдпрдж рдПрдХ рд╣реА рдкреИрдХреЗрдЬ рдореЗрдВ рдЕрд▓рдЧ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБред

рдХреНрдпрд╛ рдпрд╣ рдорд╛рдЙрд╕ рдФрд░ рдЯрдЪ рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдкреЙрдЗрдВрдЯрд░рдЗрд╡реЗрдВрдЯ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдПрдЧрд╛? рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рдЕрдкрдбреЗрдЯ рдореЗрдВ рдЗрд╕ рд╡реЗрдм рдорд╛рдирдХ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рджреЗрдЦрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдореЗрдВ рд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

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

рдФрд░ рдпрд╣рд╛рдБ рд╡рд░реНрддрдорд╛рди рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдзрд╛ рд▓рд┐рдВрдХ рд╣реИред

@jonathantneal рд╣рд╛рдВ, рдирдИ рдкреНрд░рдгрд╛рд▓реА рдкреЙрдЗрдВрдЯрд░ рдЗрд╡реЗрдВрдЯреНрд╕ рдХрд╛ рднрд╛рд░реА рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ - рдкреЙрдЗрдВрдЯрд░ рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдорд╛рдЙрд╕/рдЯрдЪ рдЗрд╡реЗрдВрдЯреНрд╕ рдореЗрдВ рдлреЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рдеред

рдореБрдЭреЗ рдЪрд┐рдВрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ https://github.com/facebook/react/issues/11347 рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд░рд┐рдПрдХреНрдЯ рдлрд╝реНрд▓реИрдВрдХ https://custom-elements-everywhere.comред

рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдирдпрд╛ рд╕реНрд╡рд░реВрдк рджреЗрддреЗ рд╕рдордп рдХреГрдкрдпрд╛ рд╢реИрдбреЛ рд░реВрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ - рдХреЗрд╡рд▓ рд░рд┐рдПрдХреНрдЯ рд░реВрдЯ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рд╕реЗ рдЖрдЬ рдЕрдзрд┐рдХрд╛рдВрд╢ рдореБрджреНрджреЛрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреЗрд╡рд▓ рддрддреНрд╡ рд╕реЗ рдЬреБрдбрд╝рдирд╛ (https://github.com/facebook/react/issues/9242, https:// github.com/facebook/react/issues/15759, https://github.com/facebook/react/issues/13713, https://github.com/facebook/react/issues/11827

рдЗрд╕ рдЕрдкрдбреЗрдЯ рдореЗрдВ: https://github.com/facebook/react/issues/13525#issuecomment -499196939 @gaearon рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рд╣реИ:

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

рдореИрдВ рдЙрддреНрд╕реБрдХ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдЗрди рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреА рд╕реВрдЪреА рдХрд╣реАрдВ рднреА рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ?

@gaearon рдЕрдм рдЬрдм рдлреНрд▓реЗрдпрд░ рдмрд╛рд╣рд░ рд╣реЛ рдЧрдпрд╛ рд╣реИ (SCNR), рдХреНрдпрд╛ рдХреЛрдИ рдЕрджреНрдпрддрди рдпреЛрдЬрдирд╛ рд╣реИ ( 5 рдЬреВрди, 2019 рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ) рдХреИрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдирд╛ рд╣реИ?

рдФрд░ @trusktr рдХреА рддрд░рд╣, рдореИрдВ рднреА рдпрд╣рд╛рдВ #11347 рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

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

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

рдореБрдЭреЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд░ рдПрдХ рдЕрдкрдбреЗрдЯ рджреЗрдВ:

  • value рд╡рд┐рд╢реЗрд╖рддрд╛ (https://github.com/facebook/react/issues/11896) рдореЗрдВ рдЗрдирдкреБрдЯ рдорд╛рди рджрд┐рдЦрд╛рдирд╛ рдмрдВрдж рдХрд░реЗрдВред рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ https://github.com/facebook/react/pull/6406 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ 15.2.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдмрд╣реБрдд рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд▓реЛрдЧреЛрдВ рдХрд╛ DOM рдХрд╛ рд╡реИрдЪрд╛рд░рд┐рдХ рдореЙрдбрд▓ рдпрд╣ рд╣реИ рдХрд┐ value рдЬреЛ рд╡реЗ DOM рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ рд╡рд╣ value JSX рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдбреЛрдо рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЬрдм рдЖрдк рдХрд┐рд╕реА рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ value рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд░рд┐рдПрдХреНрдЯ рднреА рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╕реАрдПрд╕рдПрд╕ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХреБрдЫ рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╢рд╛рдпрдж рдорджрджрдЧрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди, рдмрдЧ рдХрд╛ рдПрдХ рдЭрд░рдирд╛ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ - рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдЕрднреА рднреА рдЖрдЬ рддрдХ рдареАрдХ рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВред рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдХреБрдЫ рдирддреАрдЬреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: https://github.com/facebook/react/issues/7179 , https://github.com/facebook/react/issues/8395 , https://github.com/facebook /react/issues/7328 , https://github.com/facebook/react/issues/7233 , https://github.com/facebook/react/issues/11881 , https://github.com/facebook/react /рдореБрджреНрджреЛрдВ/7253 , https://github.com/facebook/react/pull/9584 , https://github.com/facebook/react/pull/9806 , https://github.com/facebook/react/pull /9714 тАЛтАЛ, https://github.com/facebook/react/pull/11534 , https://github.com/facebook/react/pull/11746 , https://github.com/facebook/react/pull/12925 . рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рд▓рдбрд╝рддреЗ рд░рд╣рдирд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдпрд╛рддреНрд░рд╛ рдХрд╛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ DOM рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ ( @nhunzaker , @awery , @jquense , рдФрд░ @ philipp-spiess ) рдХреЗ рдЕрдердХ рдкрд░рд┐рд╢реНрд░рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд┐рд╕реНрддреГрдд DOM рдкрд░реАрдХреНрд╖рдг рдЬреБрдбрд╝рдирд╛рд░ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдкреНрд░рддрд┐рдЧрдорди рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗред

рд╣рдо рдЕрднреА рднреА рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рд░рд┐рдПрдХреНрдЯ 17 рдХреЛ "рдЖрд░рдХреНрд╖рд┐рдд" рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдиреНрдпреВрдирддрдо рд╕рдВрднрд╡ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛ рд╕рдХреЗрдВ рддрд╛рдХрд┐ рдпрд╣ рдЗрд╕ рд╕реВрдЪреА рдХреЗ рдЕрдЧрд▓реЗ рдЖрдЗрдЯрдо рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХреЗред рддреЛ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рд░рд┐рдПрдХреНрдЯ 18 рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдЧрд╛ред

  • рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдмрдЬрд╛рдп рд░рд┐рдПрдХреНрдЯ рд░реВрдЯ рдкрд░ рдИрд╡реЗрдВрдЯ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВ (https://github.com/facebook/react/issues/2043)ред рд░рд┐рдПрдХреНрдЯ рдРрдкреНрд╕ рдХреЛ рдмрдбрд╝реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рддреЗ рд╕рдордп рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдмрди рдЬрд╛рддрд╛ рд╣реИред рдПрдЯрдо рд╕рдВрдкрд╛рджрдХ рдЙрди рдкрд╣рд▓реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ рдЬреЛ рдЗрд╕рд╕реЗ рдЯрдХрд░рд╛рдП рдереЗред рдХреЛрдИ рднреА рдмрдбрд╝реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдЕрдВрддрддрдГ stopPropagation рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдПрдЬ рдХреЗрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреА рд╣реИ рдЬреЛ рдиреЙрди-рд░рд┐рдПрдХреНрдЯ рдХреЛрдб рдХреЗ рд╕рд╛рде рдпрд╛ рд░рд┐рдПрдХреНрдЯ рд░реВрдЯреНрд╕ (https://github.com/facebook/react/issues/8693, https://github) рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред .com/facebook/react/pull/8117, https://github.com/facebook/react/issues/12518)ред рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд░реВрдЯ рдкрд░ рдИрд╡реЗрдВрдЯ рдХреЛ рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рддрд╛рдХрд┐ рд╣рдо рдЕрдкрдбреЗрдЯ рдХреЗ рджреМрд░рд╛рди рдХрдо рд░рдирдЯрд╛рдЗрдо рдЪреЗрдХ рдХрд░ рд╕рдХреЗрдВред

рд╣рдо рдЗрд╕реЗ рд░рд┐рдПрдХреНрдЯ 17 рдореЗрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдХрд╛рдо рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд┐рдХрд▓рд╛ рд▓реЗрдХрд┐рди рд╢реБрдХреНрд░ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ред

  • onChange рд╕реЗ onInput рдкрд░ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рди рдХрд░реЗрдВ (https://github.com/facebook/react/issues/9657)ред рд╡рд┐рд╕реНрддреГрдд рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдореБрджреНрджрд╛ рджреЗрдЦреЗрдВред рдпрд╣ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ DOM рдореЗрдВ input рдИрд╡реЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдиреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд░рд┐рдПрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдИрд╡реЗрдВрдЯ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЬрдмрдХрд┐ рд╣рдо рдЖрдо рддреМрд░ рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдн рдХреЗ рдмрд┐рдирд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрдбрд╝реЗ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрддреЗ рд╣реИрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдХреБрдЫ рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рднреА рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рдирд┐рдпрдВрддреНрд░рд┐рдд рдЗрдирдкреБрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдЬреИрд╕реЗ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд░реВрд░реА рд╣реИред рддреЛ рдЗрди рджреЛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ onInput рдФрд░ onChange рдмрдирд╛рдиреЗ рдХреЗ рдЕрд╡рд╕рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ DOM рдИрд╡реЗрдВрдЯ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред

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

  • рдШрдЯрдирд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдХрд╛рдлреА рд╕рд░рд▓ рдмрдирд╛рдПрдВ (https://github.com/facebook/react/issues/4751)ред 2013 рдореЗрдВ рдЗрд╕рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рдж рд╕реЗ рд╡рд░реНрддрдорд╛рди рдШрдЯрдирд╛ рдкреНрд░рдгрд╛рд▓реА рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рдмрджрд▓реА рд╣реИред рдЗрд╕реЗ рд░рд┐рдПрдХреНрдЯ рдбреЛрдо рдФрд░ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдореЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╕рд╛рд░ рд╣реИред рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрдИ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╣рд▓ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдПрдБ рдкреИрджрд╛ рдХрд░рддреА рд╣реИрдВред рдпрд╣ рд░рд┐рдПрдХреНрдЯ рдбреЛрдо рдмрдВрдбрд▓ рдЖрдХрд╛рд░ рдХреЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП рднреА рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рд╣рдорд╛рд░реЗ рдпрд╣рд╛рдВ рдХреЛрдИ рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рд╢рд╛рдпрдж рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлреЛрд░реНрдХ рдХрд░ рджреЗрдВрдЧреЗ, рдФрд░ рдлрд┐рд░ рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдХрд┐рддрдирд╛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рд╣рдо рдбреАрдУрдПрдо рд╣рдореЗрдВ рдЬреЛ рджреЗрддреЗ рд╣реИрдВ рдЙрд╕рдХреЗ рдХрд░реАрдм рд░рд╣рддреЗ рд╣реИрдВред рдпрд╣ рдкреНрд░рд╢рдВрд╕рдиреАрдп рд╣реИ рдХрд┐ рд╣рдо рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдШрдЯрдирд╛рдУрдВ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд▓реЗрдВрдЧреЗред рд╣рдореЗрдВ рдореАрдбрд┐рдпрд╛ рдЗрд╡реЗрдВрдЯ рдЬреИрд╕реЗ рдмрдмрд▓рд┐рдВрдЧ рдЗрд╡реЗрдВрдЯ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ DOM рдореЗрдВ рдмрдмрд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмрдмрд▓ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред рд╣рдо рдХреБрдЫ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдкреЛрд░реНрдЯрд▓реНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреБрджрдмреБрджрд╛рдирд╛, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рд╕рд░рд▓ рдорд╛рдзреНрдпрдореЛрдВ (рдЬреИрд╕реЗ рдИрд╡реЗрдВрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рднреЗрдЬрдирд╛) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рдкреИрд╕рд┐рд╡ рдЗрд╡реЗрдВрдЯ рдЗрд╕рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

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

  • className тЖТ class (https://github.com/facebook/react/issues/4331, рдпрд╣ рднреА рджреЗрдЦреЗрдВ https://github.com/facebook/react/issues/13525#issuecomment- 417818906 рдиреАрдЪреЗ)ред рдпрд╣ рдЕрдирдЧрд┐рдирдд рдмрд╛рд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░рд┐рдПрдХреНрдЯ 16 рдореЗрдВ class рдХреЛ DOM рдиреЛрдб рдореЗрдВ рдЬрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдЬреЛ рднреНрд░рдо рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╡рд╣ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕реАрдорд╛рдУрдВ рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╡рд╣ рдмрдЪрд╛рд╡ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╣рдо рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЕрдкрдиреЗ рдЖрдк рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдКрдкрд░ рдХреА рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рджреЛрдиреЛрдВ рдХреЛ рдмрд┐рдирд╛ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдПрдХ рдШрдЯрдХ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЛ рджреЛрдиреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╕реАрдЦрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЙрдирдореЗрдВ рдкрд░рд╕реНрдкрд░ рд╡рд┐рд░реЛрдзреА рд╣реЛрдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рд╣реИред рдЪреВрдВрдХрд┐ рдХрдИ рдШрдЯрдХ className (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЬреЛрдбрд╝рдХрд░) рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдмрд╣реБрдд рддреНрд░реБрдЯрд┐-рдкреНрд░рд╡рдг рд╣реИред

рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд╛ рд╕рдмрд╕реЗ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд╣рд┐рд╕реНрд╕рд╛ рдерд╛ред рддрдм рд╕реЗ, рд╣рдордиреЗ рд╣реБрдХ рдЬрд╛рд░реА рдХрд┐рдП, рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдШрдЯрдХреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдлрд╝рдВрдХреНрд╢рди рдШрдЯрдХреЛрдВ рдореЗрдВ, рд╣рдо рдЖрдо рддреМрд░ рдкрд░ рдкреНрд░реЙрдкреНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк { class, ... } рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред рддреЛ рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдПрд░реНрдЧреЛрдиреЛрдорд┐рдХ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рд╢рдВрд╕рдиреАрдп рд╣реИ рдХрд┐ рд╣рдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕ рдкрд░ рдлрд┐рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдпрд╛ рдХрдо рд╕реЗ рдХрдо class рдХреЛ рдЪреЗрддрд╛рд╡рдиреА рди рджреЗрдВ рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рд╡рд╣ рдХрд░рдиреЗ рджреЗрдВ рдЬреЛ рд╡реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдардВрдбреЗ рдмрд╕реНрддреЗ рдореЗрдВ рдбрд╛рд▓ рджреЗрдВрдЧреЗред

рдирдорд╕реНрддреЗ, рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ рд╣реИ!
рд╕рд┐рд░реНрдл рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рд░рд┐рдПрдХреНрдЯ-рдбреЛрдо рдЙрддреНрдкрд╛рдж рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдпреЛрдЬрдирд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рд╣реИ? рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЕрднреА рднреА рдПрдХ рдУрд╡рд░рд╣реЗрдб рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ 100+ KB рд░рд┐рдПрдХреНрдЯ-рдбреЛрдо рдЬреЗрдПрд╕ рдФрд░ рдлрд┐рд░ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдЧрд╛ред рдлрд┐рд░ рдРрдк-рд╡рд┐рд╢рд┐рд╖реНрдЯ JS.
рд╕рд╛рдордЧреНрд░реА-рд╕рдореГрджреНрдз рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЕрдзрд┐рдХ рдЕрд╡рд░реЛрдзрди рдФрд░ рдЕрдзрд┐рдХ TTI рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рд╣реИред

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрджрд▓рд╛рд╡ рдХрдм рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ?

@ morevolk-latei рдЖрдкрдХреЗ рдорд╛рдк рдореЗрдВ, 100 KB ReactDOM рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

jvorcak picture jvorcak  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

zpao picture zpao  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

huxiaoqi567 picture huxiaoqi567  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

UnbearableBear picture UnbearableBear  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

hnordt picture hnordt  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ