MaskJS, рдЪрд▓реЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди, рдпрд╛ рдирдИ рдмрд╛рдЗрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ



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

рдиреБрдХрд╕рд╛рди рдХреА:

рдпрджрд┐ рд╡рд┐рд╖рдп рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ -


рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐

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

рдереЛрдбрд╝рд╛ рдЗрддрд┐рд╣рд╛рд╕

рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдореБрдЭреЗ String.format('N: #{a} : #{b}',{a:1,b:2}) рдПрдХ рдлрдВрдХреНрд╢рди рдХреА рдЬрд░реВрд░рдд рдереАред
рдореБрдЭреЗ рдЬрд▓реНрдж рд╣реА рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ html рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рд╣рд╛рде рдмрдВрдзреЗ рд╣реИрдВред рд╕рдм рдХреЗ рдмрд╛рдж, рдПрдХ рд╣рд╛рд▓рдд, рд╕рд╢рд░реНрдд рджреГрд╢реНрдпрддрд╛ рдФрд░ рд╕реВрдЪрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рд░реВрдкрдг рдЪрд╛рд╣рддрд╛ рд╣реИред рд╡рд┐рднрд┐рдиреНрди рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрдиреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ html рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд┐рд╢реНрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдВрдЧрд▓реА рдШреГрдгрд╛ рдорд╣рд╕реВрд╕ рд╣реБрдИ, рд╕рд╛рде with(){} рдФрд░ eval/new Function('') рднреА рдХреГрдкрдпрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдпрд╣ рд╕реЛрдЪрдХрд░ рдХрд┐ "рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдереЛрдбрд╝реА рдЬрд╝рд░реВрд░рдд рд╣реИ" рдФрд░ рдЕрдкрдиреЗ рд▓рд┐рдП рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рддреЛ рджреЛ рдЯреИрдЧ list рдФрд░ visible рдФрд░ #{a==1?1:-1} рдЬреИрд╕реЗ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖред рдореБрдЭреЗ рд╕рд┐рд░реНрдл рдПрдХ regexp рдХреЗ рд╕рд╛рде рдЯреИрдЧ рдвреВрдВрдврдирд╛ рдерд╛, рдФрд░ String.format ред рдФрд░ рдбреЗрдврд╝ рд╕рд╛рд▓, рдЗрд╕ рдЗрдВрдЬрди рдиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдиреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреА рд╕реЗрд╡рд╛ рдХреА - рдпрд╣ рдлреБрд░реНрддреАрд▓рд╛ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд▓реЛрдЧреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдерд╛ред

"рдФрд░ рд╣рдо рд╣рдореЗрд╢рд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИрдВ ..."

рдпрд╣ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрддрдиреЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИрдВ - рдареАрдХ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдореИрдВ рд╣реВрдВред рдореИрдВ рдЗрд╕реЗ рдФрд░ рднреА рддреЗрдЬреА рд╕реЗ, рдФрд░ рднреА рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдЗрд╕рд▓рд┐рдП рдХрд┐ html / рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрд╕ рдХреЗ рдмрд┐рдирд╛ рдЖрдЧреЗред рдЙрд╕ рд╕рдордп рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рдирддрд╛ рдерд╛: рдореБрдЭреЗ рдХрд╕реНрдЯрдо рдЯреИрдЧ рдЪрд╛рд╣рд┐рдП - рддрд╛рдХрд┐ рдореИрдВ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЗ рдмрд┐рдирд╛ рджрд╕ рдмрд╛рд░ рдПрдХ рд╣реА HTML рд╕рдВрд░рдЪрдирд╛ рдирд╣реАрдВ рд▓рд┐рдЦреВрдВрдЧрд╛ (рддрд╛рдХрд┐ рдШрд░ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ рд╡рд╣рд╛рдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░реВрдВ) ред рдФрд░ рдЕрдм, рдЬреИрд╕реЗ рд╣реА рдореИрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреИрдЧ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕рд░ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрда рдЧрдпрд╛, рддрдм, рдмрд╛рд╣рд░, рдХрд▓рд╛ рдХреА рдЗрдЪреНрдЫрд╛, рдЬреЛ рд╢рд┐рдерд┐рд▓ рд╣реЛрдиреЗ рд▓рдЧреА, рдЬрд╛рдЧ рдЙрдард╛ - " рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ред рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ред рдпрд╣ 93 рд╡реЗрдВ рдХреЗ рдлреЛрд░реНрдб рдореЛрдВрдбреЛ рд╣реИред рдФрд░ рдЕрдм рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╣рд╕реНрддреНрд░рд╛рдмреНрджреА рд╣реЛ рдЪреБрдХрд╛ рд╣реИред рд╣рд╛рдВ, рд╡рд╣рд╛рдБ рд╣реИред рдФрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЕрд▓рдЧ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдиреЗ CoffeeScript Sass / Less ZenCoding рджреЗрдЦреА рд╣реИ? рдЬрд┐рд╕ рд╕реЗ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдЙрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВ, рдЕрдиреНрдпрдерд╛ рдореИрдВ рдЖрдкрдХреЛ рд╕реЛ рдЬрд╛рдиреЗ рдирд╣реАрдВ рджреЗрддрд╛ - рдмрд╕ рдкрддрд╛ рд╣реИ ред " рдФрд░ рдЗрд╕ рджрдмрд╛рд╡ рдореЗрдВ рдореИрдВ рд╡рд┐рд░реЛрдз рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдореБрдЦреНрдп рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдЗрдВрдЬрди рдХреА рдЧрддрд┐ рдереА - рдХрд┐рд╕реА рдХреЛ рднреА рдПрдХ рд╕реБрдВрджрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди 100 рдПрдЪрдкреА рдХреЗ рд╕рд╛рдеред рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХрд╛рд░ред

рдЪрд▓реЛ рд╡реНрдпрд╛рдкрд╛рд░ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЙрддрд░реЛ: рд▓рдХрдбрд╝реА

рдЪреВрдВрдХрд┐ рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдПрдХ рдкреЗрдбрд╝ рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдиреЛрдб рд╣реИрдВ: рдЯреИрдЧ = {tagName:'someTagName', attr: { key:'value'}, nodes:[] } рдФрд░ рд▓рд┐рдЯрд░рд▓ = {content:'Some String'} ред рдФрд░ рдкреБрд░рд╛рдиреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ 1.5 рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рдж рд╕реЗ, рдореБрдЭреЗ рдпрд╣ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдбреЗрдЯрд╛ рдХреЛ рдЯреИрдЧ рдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдо рдХреЗ рдирд╛рдо рдкрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВрдВрдЧрд╛, рдлрд┐рд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреА рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рдЙрдирдореЗрдВ рдбреЗрдЯрд╛ рдбрд╛рд▓рдирд╛ рд╕рдВрднрд╡ рдХрд░реЗрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, рдиреЛрдбреНрд╕ рдирд┐рдореНрди рд░реВрдк рдореЗрдВ рд╣реЛрдВрдЧреЗ: рдЯреИрдЧ: = {tagName:'name', attr: { key:('value'||function)}, nodes:[] } рдФрд░ рд▓рд┐рдЯрд░рд▓: = {content:('Some String'||function)} ред рдЬрд╣рд╛рдВ function рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдЙрди рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬрд┐рдирдХреА рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдПрдХ рдкреЗрдбрд╝ рд▓рдЧрд╛рдпрд╛, рдЕрдм рддрдХ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ ( рдпрд╣ рдпрд╛ рддреЛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ )ред

рдПрдирд╛рд▓рд╛рдЗрдЬрд░ / рдкрд╛рд░реНрд╕рд░

рджрд┐рд▓рдЪрд╕реНрдк рдЕрдВрдХ:

рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рд╕рд░рд▓ рд░реВрдк рд╕реЗ рд╕рд░рд▓ рд╣реИ - рдпрд╣ 40 рд▓рд╛рдЗрдиреЗрдВ рд╣реИред (рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдирд┐рдХрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рджреГрд╢реНрдпрддрд╛ рдЦреЛ рдЬрд╛рдПрдЧреА)
рдХреЛрдб рдХрд╛ рдЯреБрдХрдбрд╝рд╛
 var current = T; for (; T.index < T.length; T.index++) { var c = T.template.charCodeAt(T.index); switch (c) { case 32: //" " continue; case 39: // "'"   T.index++; var content = T.sliceToChar("'"); //  sliceToChar  indexOf    'escape character' //  . indexOf  ,  ,      charCodeAt/charAt/[] if (~content.indexOf('#{')) content = T.serialize == null ? this.toFunction(content) : { template: content }; current.nodes.push({ content: content }); if (current.__single) { //   ,   ,   ;  div > ul > li > span > 'Some' if (current == null) continue; do (current = current.parent) while (current != null && current.__single != null); } continue; case 62: /* '>' */ current.__single = true; continue; case 123: /* '{' */ continue; case 59: /* ';' */ case 125: /* '}' */ if (current == null) continue; //   ; ,   } -    do(current = current.parent) while (current != null && current.__single != null); continue; } //    -  tag   var start = T.index; do(c = T.template.charCodeAt(++T.index)) while (c !== 32 && c !== 35 && c !== 46 && c !== 59 && c !== 123); /** while !: ' ', # , . , ; , { */ var tag = { tagName: T.template.substring(start, T.index), parent: current }; current.nodes.push(tag); current = tag; this.parseAttributes(T, current); //    ; > {,     T.index--; } 



рдбрд┐рдЬрд╛рдЗрдирд░

рдкреЗрдбрд╝ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП html string рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдмреЗрдХрд╛рд░ рд╣реИ, рдЖрдкрдХреЛ рддреБрд░рдВрдд рд╣реА documentFragment рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рд╣рд╛рд▓рд╛рдБрдХрд┐ function renderHtml рднреА рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ) ред рдпрд╣ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдкрд░ рдмрд┐рддрд╛рдП рдЧрдП рд╕рдордп рдХреА рдмрд╣реБрдд рднрд░рдкрд╛рдИ рдХрд░рддрд╛ рд╣реИред
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдлрд┐рд░ рд╕реЗ рддреБрдЪреНрдЫ рд╣реИ:
рдХреЛрдб рдХрд╛ рдЯреБрдХрдбрд╝рд╛
 function buildDom(node, values, container) { if (container == null) container = document.createDocumentFragment(); if (node instanceof Array) { for (var i = 0, length = node.length; i < length; i++) buildDom(node[i], values, container); return container; } if (CustomTags.all[node.tagName] != null) { var custom = new CustomTags.all[node.tagName](); for (var key in node) custom[key] = node[key]; custom.render(values, container); return container; } if (node.content != null) { //  container.appendChild(document.createTextNode(typeof node.content === 'function' ? node.content(values) : node.content)); return container; } var tag = document.createElement(node.tagName); for (var key in node.attr) { var value = typeof node.attr[key] == 'function' ? node.attr[key](values) : node.attr[key]; if (value) tag.setAttribute(key, value); } if (node.nodes != null) { buildDom(node.nodes, values, tag); } container.appendChild(tag); return container; } 



рдХрд╕реНрдЯрдо рдирд┐рдпрдВрддреНрд░рдг

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд╕реНрдЯрдо рдирд┐рдпрдВрддреНрд░рдг рджреГрд╢реНрдп рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдПрдХ рдкрдВрдЬреАрдХреГрдд рдЯреИрдЧ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рд╣реИрдВрдбрд▓рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдЧрд╛, attr рдФрд░ nodes рдорд╛рдиреЛрдВ рдХреА рдПрдХ shallow copy рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЕрд╕реЗрдВрдмрд▓реА рд╕рдВрджрд░реНрдн рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рд╣рдорд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ .render(currentValues, container) рдлрд╝рдВрдХреНрд╢рди .render(currentValues, container) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

Function (рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╕реНрдЯреНрд░рд┐рдВрдЧ)

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

, рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВред

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


рдЙрджрд╛рд╣рд░рдг
рд╕реНрд░реЛрдд рдХреЛрдб



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

рд╕реМрднрд╛рдЧреНрдп рд╣реИ

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


All Articles