рддрддреНрд╡ рднрдЧреНрди

рд╣реИрд▓реЛ, рдореЗрд░рд╛ рдирд╛рдо рд╣реИ ... рдпрд╛рд░ред рд╣рд╛рдереЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 2 рд╣реИред рдкреИрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 2 рд╣реИред рд░рдХреНрдд рдХрд╛ рдкреНрд░рдХрд╛рд░ 1. рд░реАрд╕рд╕ рд╕рдЪ рд╣реИред


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


рддреАрди рдЖрджрдореА рдФрд░ рдПрдХ рд▓рдбрд╝рдХреА


рдПрдХ рд╕реАрдЯ рд╣реЛ, рдПрдХ рдЖрдХрд░реНрд╖рдХ рдпрд╛рддреНрд░рд╛ рдЖрдкрдХреЛ рдЧрдВрднреАрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рдордиреЗ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реА рд╣реИ, рдЬреЛ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдХреНрд╕рд░ рдХрдо рдХрд░рдХреЗ рдЖрдВрдХрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдкрд░реАрдХреНрд╖рдг


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


рдпрд╛рдВрдбреЗрдХреНрд╕ рд╕рд┐рдХ рдХреА рдЖрдБрдЦреЛрдВ рд╕реЗ рдереВрдерди


рдЗрд╕ рдкреЗрдЬ рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓реЗрдЖрдЙрдЯ рдбрд┐рдЬрд╛рдЗрдирд░ рдХреЛ рджреЗрдВ рдФрд░ рд╡рд╣ рдЖрдкрдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджреЗрдЧрд╛:


<body> <aside> <div class="card"> <div class="username">admin</div> </div> <!-- -  --> </aside> <section> <!-- -  --> </section> </body> 

Backfill рд╕рд╡рд╛рд▓: рдШрд░-рддрддреНрд╡ рдХреЛ рдХреИрд╕реЗ рдЦреЛрдЬреЗрдВ рдЬрд╣рд╛рдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛ?


рджреЛ рддрд░реАрдХреЗ, рд▓реЗрдХрд┐рди рд╕рд╛рд░ рдПрдХ рд╣реИ


рдпрд╣рд╛рдБ рдкрд░реАрдХреНрд╖рдХ рдХреЗ рдкрд╛рд╕ рджреЛ рдХреБрд░реНрд╕рд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ:


  1. рдлреЙрд░реНрдо рдХреЗ css рдпрд╛ xpath рдЪрдпрдирдХрд░реНрддрд╛ рдХреЛ aside > .card > .username рдФрд░ рдкреНрд░рд╛рд░реНрдердирд╛ рдХрд░реЗрдВ рдХрд┐ рдХреЛрдИ рдЕрдиреНрдп рдХрд╛рд░реНрдб рд╕рд╛рдЗрдбрдмрд╛рд░ рдореЗрдВ рдХрднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдФрд░ рдХрд╛рд░реНрдб рдкрд░ рдХреЛрдИ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджрд┐рдпрд╛ред рдФрд░ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдХрд┐рд╕реА рдиреЗ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдмрдЯрди рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИред рдФрд░ рдЙрд╕рдиреЗ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рд╕реЙрдХреЗрдЯ рдореЗрдВ рдирд╣реАрдВ рд▓рдкреЗрдЯрд╛ред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдирд╛рдЬреБрдХ рдЪрдпрдирдХрд░реНрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдкреГрд╖реНрда рдкрд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдереЛрдбрд╝реЗ рд╕реЗ рдмрджрд▓рд╛рд╡реЛрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ред
  2. рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдкреЗрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВ ред рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдЧреБрд╕реНрд╕реЗ рдХреЛ рднрдбрд╝рдХрд╛рдиреЗ рдХрд╛ рдпрд╣ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рдЙрд╕рдХреЗ рдкрд╛рд╕ рдШрдЯрдХреЛрдВ рдкрд░ рд╕рдм рдХреБрдЫ рд╣реИред рдФрд░ рдШрдЯрдХреЛрдВ рдХреЛ рдмрд╣реБрдд рдХреБрдЫ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЖрд╡реЗрджрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдкрддрд╛ (рдФрд░ рдкрддрд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред рдпрд╣ рдорд╛рдирдирд╛ тАЛтАЛрднреЛрд▓рд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдШрдЯрдХ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдкреНрд░рддрд┐ рдореЗрдВ рдкреГрд╖реНрда рдкрд░ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдШрдЯрдХ рдореЗрдВ рд╣реА рд╕реАрд╡рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрд╡реЗрджрди рдХреЗ рд╕реНрддрд░ рдкрд░, рдХреЗрд╡рд▓ рд▓реЗрдЧреЛрд╕рд╛рдЗрдбрдмрд╛рд░ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдШрдЯрдХ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдХреЗ рдХрдИ рд╕реНрддрд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдлреЗрдВрдХрдирд╛ рднреА рдПрдХ рдЕрд╡рд╕рд░ рд╣реИред

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


рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпреИрдВрдбреЗрдХреНрд╕ рдХреЗ рд▓реЗрдЖрдЙрдЯ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдиреЗ рдЗрд╕ рд╕рд░рд▓ рдмреНрд▓реЙрдХ рдХреЗ рд▓реЗрдЖрдЙрдЯ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯрд╛ (рдореБрдЭреЗ 90% рдХрдЪрд░рд╛ рдирд┐рдХрд╛рд▓рдирд╛ рдкрдбрд╝рд╛ рддрд╛рдХрд┐ рд╕рд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗ):


 <div class="desk-notif-card"> <div class="desk-notif-card__card"> <div class="desk-notif-card__domik-user usermenu-link"> <a class="home-link usermenu-link__control" href="https://passport.yandex.ru"> <span class="username desk-notif-card__user-name">admin</span> </a> <!-- -  --> </div> </div> </div> <!-- -  --> 

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


рдУрд╣ рдХреНрдпрд╛ рдореБрд╢реНрдХрд┐рд▓ рд╡рд┐рдХрд▓реНрдк рд╣реИ


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


 <input class="input__control input__input" id="text" name="text" /> 

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


рдЖрдВрдХрдбрд╝реЗ


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


рдЪреЗрд╣рд░рд╛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ


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


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


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ


рдпрд╛рдВрдбреЗрдХреНрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╡реАрд░ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХрд╛ рдлрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:


 <div class="desk-notif-card__domik-user usermenu-link"> <a class="home-link usermenu-link__control" href="https://passport.yandex.ru" data-statlog="notifications.mail.login.usermenu.toggle" > <!-- -  --> </a> <a class="home-link desk-notif-card__user-icon-link usermenu-link__control avatar" href="https://passport.yandex.ru" data-statlog="notifications.mail.login.usermenu.toggle-icon" > <!-- -  --> </a> </div> 

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


рд╢реИрд▓рд┐рдпреЛрдВ


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


 const Morda = ()=> <div class="morda"> {/* - */} <LegoSidebar /> </div> 

рдФрд░ рдпрд╣рд╛рдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдШрдЯрдХреЛрдВ рдХрд╛ рдПрдХ рдмрдВрдбрд▓ рд╣реИ:


 const LegoSidebar = ( { username } )=> <aside className="lego-sidebar"> <LegoCard> <LegoUsername>{ username }</LegoUsername> </LegoCard> </aside> const LegoCard = ( {} , ... children )=> <div className="lego-card"> { ... children } </div> const LegoUsername = ( {} , ... children )=> <div className="lego-username"> { ... children } </div> 

рд╕рднреА рд╕рднреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдо рджреЗрддреЗ рд╣реИрдВ:


 <body class="morda"> <aside class="lego-sidebar"> <div class="lego-card"> <div class="lego-username">admin</div> </div> <!-- -  --> </aside> </body> 

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╡реЗрд▓реЗрд░рд┐рдпрди рдХреА рдЬрд░реВрд░рдд рд╣реИ


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


 const LegoSidebar = ( { username , rootClass , cardClass , usernameClass } )=> <aside className={ "lego-sidebar " + rootClass }> <LegoCard rootClass={ cardClass }> <LegoUsername rootClass={ usernameClass}>{ username }</LegoUsername> </LegoCard> </aside> const LegoCard = ( { rootClass } , ... children )=> <div className={ "lego-card " + rootClass }> { ... children } </div> const LegoUsername = ( { rootClass } , ... children )=> <div className={ "lego-username " + rootClass }> { ... children } </div> 

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


рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рдкрд╛рдирд╛


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


 .morda .lego-sidebar > .lego-card > .lego-username:first-letter { color : inherit; } 

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рд╕реНрдерд╛рдиреАрдп рдирд╛рдореЛрдВ рдХреЛ рд▓реЗ рдЬрд╛рдПрдЧрд╛:


 const Morda = ()=> <div> {/* - */} <Lego_sidebar id="sidebar" /> </div> const Lego_sidebar = ( { username } )=> <aside> <Lego_card id="profile"> <Lego_username id="username">{ username }</Lego_username> </Lego_card> </aside> const Lego_card = ( {} , ... children )=> <div> { ... children } </div> const Lego_username = ( {} , ... children )=> <div> { ... children } </div> 

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


 <body class="morda"> <aside class="lego_sidebar morda_sidebar"> <div class="lego_card lego_sidebar_profile morda_sidebar_profile"> <div class="lego_username lego_sidebar_username morda_sidebar_username">admin</div> </div> <!-- -  --> </aside> </body> 

рддрдм рд╣рдо рдХрд┐рд╕реА рднреА рддрддреНрд╡ рдХреЛ рд╕реНрдЯрд╛рдЗрд▓ рдХрд░ рд╕рдХрддреЗ рдереЗ, рдЪрд╛рд╣реЗ рд╡рд╣ рдХрд┐рддрдирд╛ рднреА рдЧрд╣рд░рд╛ рдХреНрдпреЛрдВ рди рд╣реЛ:


 .morda_sidebar_username:first-letter { color : inherit; } 

рдирд╣реАрдВ, рдпрд╣ рд╢рд╛рдирджрд╛рд░ рд╣реИред рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред


5 рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рдж, рд╣рд┐рдкреНрд╕реНрдЯрд░ рдХреЛрдб рдХрд╛ 99% рдХреЗрд╡рд▓ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ


рдЖрдЗрдЯрдо рд╕реНрдерд╛рдирд╛рдВрддрд░рдг


рдПрдХ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЦреБрдж рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВред VirtualDOM, IncrementalDOM, DOM Batching рдФрд░ рдЕрдиреНрдп рдЬреЛ рдХреБрдЫ рднреА рдЖрдк рдХреБрдЫ рд╣реА рд╕реЗрдХрдВрдб рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░реИрдо рдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ DOM рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ: рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо


 <div class="dashboard"> <div class="column-todo"> <div class="task"> <!--  html --> </div> <!--    --> </div> <div class="column-wip"> </div> <div class="column-done"> </div> </div> 

рдЗрд╕ рддрд░рд╣ рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ:


 { todo : [ { /*   */ }, /*   */ ] , wip : [] , done : [] , } 

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


рдЧрд▓рдд рдмреЙрдбреА рдореЗрдВ рдкрд╣рдЪрд╛рди рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐


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


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


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


 <div id="/dashboard"> <div id="/dashboard/column-todo"> <div id="/dashboard/todo/priority=critical"> <div id="/dashboard/task=y43uy4t6"> <!--  html --> </div> <!--    --> </div> <!--     --> </div> <div id="/dashboard/column-wip"> <div id="/dashboard/wip/assignee=jin"></div> <!--     --> </div> <div id="/dashboard/column-done"> <div id="/dashboard/done/release=0.9.9"></div> <!--     --> </div> </div> 

рдмреЛрд▓рдиреЗ рд╡рд╛рд▓рд╛ рд╕рдореВрд╣


рдЕрд░реНрде рд╡рд┐рдЬреНрдЮрд╛рди


рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдПрдХ рд▓реЗрдЖрдЙрдЯ рдбрд┐рдЬрд╛рдЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВред рдФрд░ рдЖрдкрдХреЛ рд╡рд╣рд╛рдБ рдПрдХ div рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдкреНрд░рд╕реНрддреБрдд? рдЕрдм рдЦреБрдж рдХреЛ рдорд╛рд░ рд▓реЛред рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА html рд╕реЗ рднреНрд░рд╖реНрдЯ рд╣реИрдВред


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдкрдХреЛ рдПрдХ div рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдб рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдмреНрд▓реЙрдХ рд╣реИред title - рдЗрд╕ рдмреНрд▓реЙрдХ рдХрд╛ рдирд╛рдо, рдЙрдкрдпреЛрдЧ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдЗрд╕рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред div рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдмреНрд▓реЙрдХ рд╣реИ рдЬреЛ рдЗрд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣реАрдВ рднреА рд╣реЛред рдпрджрд┐ рд╣рдо рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдЯрд╛рдЗрдк рдХрд░ рд░рд╣реЗ рдереЗ, рддреЛ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:


 const Title : DIV 

рд╣рдо рддреБрд░рдиреНрдд рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:


 const Title : DIV = new DIV({ children : [ taskName ] }) 

рдФрд░ рд╕рдордп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рджреЗрдВ:


 const Title = new DIV({ children : [ taskName ] }) 

рдЦреИрд░, рдпрд╣рд╛рдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ HTML рднреА рджреВрд░ рдирд╣реАрдВ рд╣реИ:


 const Title = <div>{ taskName }</div> 

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ Title рдХреЗрд╡рд▓ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдирд╛рдо рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрддреНрд╡ рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рд╢рдмреНрджрд╛рд░реНрде рд╣реИред рдФрд░ рдЗрд╕реЗ рди рдЦреЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:


 const Title = <div id="title">{ taskName }</div> 

рдФрд░ рдлрд┐рд░ рд╕реЗ рд╣рдо рддрдирд╛рддрдиреА рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд▓реЗрддреЗ рд╣реИрдВ:


 <div id="title">{ taskName }</div> 

рд╢реЗрд╖ рддрддреНрд╡ рдЬреЛрдбрд╝реЗрдВ:


 <div id="task"> <div id="title">{ taskName }</div> <div id="deadline">{ taskDue }</div> <div id="description">{ taskDescription }</div> </div> 

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЯрд╛рд╕реНрдХ рдХрд╛рд░реНрдб рдХреЗ рд╢реАрд░реНрд╖рдХ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рдЕрдиреНрдп рд╣реЗрдбрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдб рд╣реЗрдбрд░ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:


 <div id="/dashboar/column-todo"> <div id="/dashboard/column-todo/title">To Do</div> <div id="/dashboard/task=fh5yfp6e"> <div id="/dashboard/task=fh5yfp6e/title">{ taskName }</div> <div id="/dashboard/task=fh5yfp6e/deadline">{ taskDue }</div> <div id="/dashboard/task=fh5yfp6e/description">{ taskDescription }</div> </div> <div id="/dashboard/task=fhty50or"> <div id="/dashboard/task=fhty50or/title">{ taskName }</div> <div id="/dashboard/task=fhty50or/deadline">{ taskDue }</div> <div id="/dashboard/task=fhty50or/description">{ taskDescription }</div> </div> </div> 

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


рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╢рдмреНрджрд╛рд░реНрде рд╕рджрд╕реНрдпрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд╕реНрдерд╛рди рдирд╣реАрдВред рдпрджреНрдпрдкрд┐ рдЯрд╛рд╕реНрдХ рдХрд╛рд░реНрдб /dashboard/task=fh5yfp6e /dashboard/todo рдХреЙрд▓рдо рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рдпрд╣ /dashboard рдЕрдВрддрд░реНрдЧрдд рдЖрддрд╛ рд╣реИред рдпрд╣ рд╡рд╣ рдерд╛ рдЬрд┐рд╕рдиреЗ рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рдерд╛ред рдЙрд╕рдиреЗ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ред рдЙрд╕рдиреЗ рдЙрд╕реЗ рдПрдХ рдирд╛рдо рджрд┐рдпрд╛ рдФрд░ рдЙрд╕рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХреАред рд╡рд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рдЙрд╕реЗ рдирд╖реНрдЯ рдХрд░ рджреЗрдЧрд╛ред


рдЬрд╛рдирд┐рдП рдХреМрди рд╣реИ рдЖрдкрдХрд╛ рдбреИрдбреА


рд▓реЗрдХрд┐рди "рд╕рд╣реА html рдЯреИрдЧреНрд╕" рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢рдмреНрджрд╛рд░реНрде рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╣реИ рдЯрд╛рдЗрдкрд┐рдВрдЧ:


 <section id="/dashboard/column-todo"> <h4 id="/dashboard/column-todo/title">To Do</h4> <figure id="/dashboard/task=fh5yfp6e"> <h5 id="/dashboard/task=fh5yfp6e/title">{ taskName }</h5> <time id="/dashboard/task=fh5yfp6e/created">{ taskCreated }</time> <time id="/dashboard/task=fh5yfp6e/deadline">{ taskDue }</time> <div id="/dashboard/task=fh5yfp6e/description">{ taskDescription }</div> </figure> </section> 

рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рд╕рд╛рде рджреЛ time рдЯреИрдЧ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред


рд╕реНрдерд╛рдиреАрдпрдХрд░рдг


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


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

рдлрд┐рд░ рд╕реЗ рджреЛ рдмреБрд░рд╛рдЗрдпреЛрдВ рдХрд╛ рд╡рд┐рдХрд▓реНрдк


рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдо рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдмреИрдардирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рд╕реЗ рдПрдХ рджреГрдврд╝ рдЖрдзрд╛рд░ рдкрд░ рдЧрд░реНрд╡ рд╕реЗ рдЦрдбрд╝реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдлрд┐рд░ рд╣рдореЗрдВ рдкреНрд░рдХрд╛рд░ (рдШрдЯрдХ, рдЯреЗрдореНрдкрд▓реЗрдЯ) рдХреЗ рдирд╛рдо рдХреЗ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рднреАрддрд░ рддрддреНрд╡ рдХрд╛ рд╕реНрдерд╛рдиреАрдп рдирд╛рдо рдФрд░ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХреА рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдирд╛рдоред рдХреЙрд▓рдо рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ "рдбрди" рдкрд╛рда рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреБрдВрдЬреА github_issues_dashboard:column-done:title ред рдФрд░ рдЯрд╛рд╕реНрдХ рдХрд╛рд░реНрдб рдореЗрдВ рдЯрд╛рд╕реНрдХ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмрдЯрди рдкрд░ "рдбрди" рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд▓рд┐рдП, рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА github_issues_task-card:button-done:label ) рд╣реЛрдЧрд╛ред рдпреЗ, рдмреЗрд╢рдХ, рд╡реЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдмрд╛рдд рдХреА рдереА, рд▓реЗрдХрд┐рди рдпреЗ рдХреБрдВрдЬреА рдЙрдиреНрд╣реАрдВ рдирд╛рдореЛрдВ рд╕реЗ рдмрдирддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╛ рдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ рдШрдЯрдХ рддрддреНрд╡реЛрдВ рдХреЛ рджреЗрддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд╛рдо рджреЗрддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд┐рднрд┐рдиреНрди рдХреБрдВрдЬрд┐рдпреЛрдВ рдФрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреА рдкреАрдврд╝реА рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рддреЛ рдЖрдкрдХреЛ рдЗрди рдЪрд╛рдмрд┐рдпреЛрдВ рдФрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдПрдХ рд╣реА рдЗрдХрд╛рдИ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдЧрдбрд╝рдмрдбрд╝ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ рдЯреВрдЯрддреА рд╣реИред


рдбрд┐рдмрдЧрд┐рдВрдЧ


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


   !  !   ,   : Uncaught TypeError: f is not a function at <Button> at <Panel> at <App> 

"рд╣рд╛рдБ, рдХреБрдЫ рдкреИрдирд▓ рдкрд░ рд╡рд╣реА рдкреНрд░рд╕рд┐рджреНрдз f , рдХреБрдЫ рдкреИрдирд▓ рдкрд░," рд╕реЛрдлреЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдХрд╣реЗрдВрдЧреЗ, "рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИред"


рдпрд╣рд╛рдБ рдФрд░ рдореВрд░реНрдЦ


рдпрд╛ рдирд╣реАрдВ? рдФрд░ рдЕрдЧрд░ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдереЗ:


 /morda/sidebar/close 

- рд╣рд╛рдБ, рд╕рд╛рдЗрдбрдмрд╛рд░ рдХреНрд▓реЛрдЬ рдмрдЯрди рдЯреВрдЯ рдЧрдпрд╛ рд╣реИред VasyaPas, рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рд╣реИ, рдЙрдиреНрд╣реЛрдВрдиреЗ рд░реЛрд▓ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ред


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


рдпрд╣ рдХрд╛рдлреА HTML рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред


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


 <button id="Components['/morda/sidebar/close']">X</button> 

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


рдХреНрдпрд╛ рдХрд░реЗрдВ?


рдпрджрд┐ рдЖрдк $ рдореЛрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдмрд╕ рдмреИрда рдЬрд╛рдУ рдФрд░ рдкреВрд░реНрдг рдореЗрдВ рдХрдВрдкрди рдорд╛рд▓рд┐рд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:


 $ya_morda $mol_view sub / <= Sidebar $ya_lego_sidebar $ya_lego_sidebar $mol_view sub / <= Profile $ya_lego_card sub / <= Username $ya_lego_username sub / <= username \ $ya_lego_card $mol_view $ya_lego_username $mol_view 

рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдмрд╕ рдПрдХ рдШрдЯрдХ рдХреЛ рдПрдХ рдЕрдиреЛрдЦрд╛ рдирд╛рдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рдлрд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд DOM рдЗрд╕ рдШрдЯрдХ рд╡рд┐рд╡рд░рдг рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ:


 <body id="$ya_morda.Root(0)" ya_morda mol_view > <ya_lego_sidebar id="$ya_morda.Root(0).Sidebar()" ya_lego_sidebar mol_view ya_morda_sidebar > <ya_lego_card id="$ya_morda.Root(0).Sidebar().Profile()" ya_lego_card mol_view ya_lego_sidebar_profile ya_morda_sidebar_profile > <ya_lego_username id="$ya_morda.Root(0).Sidebar().Username()" ya_lego_username mol_view ya_lego_sidebar_username ya_morda_sidebar_username > admin </ya_lego_username> </ya_lego_card> </ya_lego_sidebar> </body> 

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


 Uncaught (in promise) Error: Test error at $mol_state_local.value("mol-todos-85").calculate at $mol_state_local.value("mol-todos-85").pull at $mol_state_local.value("mol-todos-85").update at $mol_state_local.value("mol-todos-85").get at $mol_app_todomvc.Root(0).task at $mol_app_todomvc.Root(0).task_title at $mol_app_todomvc.Root(0).task_title(85).calculate at $mol_app_todomvc.Root(0).task_title(85).pull at $mol_app_todomvc.Root(0).task_title(85).update at $mol_app_todomvc.Root(0).task_title(85).get at $mol_app_todomvc.Root(0).Task_row(85).title at $mol_app_todomvc.Root(0).Task_row(85).Title().value at $mol_app_todomvc.Root(0).Task_row(85).Title().event_change 

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдирд╣реАрдВ рдЬреЛ рджреБрдирд┐рдпрд╛ рдХреЛ рдПрдХ рдмреЗрд╣рддрд░ рдЬрдЧрд╣ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ


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


 const Dashboard = ()=> ( <div> <Column id="/column-todo" title="To Do"> <Task id="/task=fh5yfp6e" title="foobar" deadline="yesterday" content="Do it fast!" /> </Column> <Column id="/column-wip" title="WIP" /> <Column id="/column-done" title="Done" /> </div> ) const Column = ( { title } , ... tasks )=> ( <div> <div id="/title">{ title }</div> { tasks } </div> ) const Task = ({ title , deadline , description })=> ( <div> <div id="/title">{ title }</div> <div id="/deadline">{ deadline }</div> <div id="/description">{ description }</div> </div> ) const App = ()=> <Dashboard id="/dashboard" /> 

рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЙрддреНрдкрд╛рджрди:


 <div id="/dashboar"> <div id="/dashboar/column-todo"> <div id="/dashboard/column-todo/title">To Do</div> <div id="/dashboard/task=fh5yfp6e"> <div id="/dashboard/task=fh5yfp6e/title">foobar</div> <div id="/dashboard/task=fh5yfp6e/deadline">yesterday</div> <div id="/dashboard/task=fh5yfp6e/description">Do it fast!</div> </div> </div> <div id="/dashboar/wip"> <div id="/dashboard/column-wip/title">WIP</div> </div> <div id="/dashboar/done"> <div id="/dashboard/column-done/title">Done</div> </div> </div> 

рдУрд╣ рдХрд┐рддрдирд╛ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ


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


рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдХреЛ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рдЕрджреНрд╡рд┐рддреАрдп рдирд╛рдо рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ:


  • E2E рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рд╕рд╛рджрдЧреА рдФрд░ рд╕реНрдерд┐рд░рддрд╛ред
  • рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрдкрдпреЛрдЧ рдХреЗ рдЖрдВрдХрдбрд╝реЗ рдФрд░ рдЙрд╕рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдПрдХрддреНрд░ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреАред
  • рдЖрд╕рд╛рди рд╕реНрдЯрд╛рдЗрд▓ред
  • рдХреНрд╖рдорддрд╛ рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрдиред
  • рд╕рдЯреАрдХ рдФрд░ рд╡реНрдпрд╛рдкрдХ рд╢рдмреНрджрд╛рд░реНрдеред
  • рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдореЗрдВ рдЖрд╕рд╛рдиреАред
  • рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреА рдЖрд╕рд╛рдиреАред

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


All Articles