21 рдирд╡ре░ 2025┬╖8 рдорд┐рдирдЯ рдкрдврд╝рдиреЗ рдореЗрдВ

рддреЗрдЬрд╝ рднрд╛рд░реА рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП Vue 3 рдПрдбрдорд┐рди UI рдкреНрд░рджрд░реНрд╢рди рдЪреЗрдХрд▓рд┐рд╕реНрдЯ

рдЗрд╕ Vue 3 рдПрдбрдорд┐рди UI рдкреНрд░рджрд░реНрд╢рди рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ virtualization, рдбреЗрдмрд╛рдЙрдиреНрд╕ рд╕рд░реНрдЪ, memoized рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдФрд░ рдмреЗрд╣рддрд░ рд▓реЛрдбрд┐рдВрдЧ рд╕реНрдЯреЗрдЯреНрд╕ рд╕реЗ рднрд╛рд░реА рд╕реВрдЪрд┐рдпрд╛рдБ рддреЗрдЬрд╝ рд╣реЛ рд╕рдХреЗрдВред

рддреЗрдЬрд╝ рднрд╛рд░реА рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП Vue 3 рдПрдбрдорд┐рди UI рдкреНрд░рджрд░реНрд╢рди рдЪреЗрдХрд▓рд┐рд╕реНрдЯ

рднрд╛рд░реА рдПрдбрдорд┐рди рд╕реВрдЪрд┐рдпрд╛рдБ рдзреАрдореА рдХреНрдпреЛрдВ рд▓рдЧрддреА рд╣реИрдВ

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

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

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

рдЕрдВрджрд░ рд╕реЗ рдкреИрдЯрд░реНрди рднреА рд╕рд░рд▓ рд╣реИ: рдмрд╣реБрдд рд╕рд╛рд░реА рдЪреАрдЬрд╝реЗрдВ рдмрд╣реБрдд рдмрд╛рд░ reтАСrender рд╣реЛ рд░рд╣реА рд╣реИрдВред рдПрдХ рдХреАтАСрд╕реНрдЯреНрд░реЛрдХ filtering рдЯреНрд░рд┐рдЧрд░ рдХрд░рддреА рд╣реИ, filtering рдЯреЗрдмрд▓ рдЕрдкрдбреЗрдЯ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддреА рд╣реИ, рдФрд░ рд╣рд░ рд░реЛ рдЙрд╕рдХреЗ рд╕реЗрд▓реНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рддреА рд╣реИред рдЕрдЧрд░ рд╣рд░ рд░реЛ рд╕рд╕реНрддреА рд╣реИ рддреЛ рдЖрдк рдмрдЪ рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдЧрд░ рд╣рд░ рд░реЛ рдмреБрдирд┐рдпрд╛рджреА рддреМрд░ рдкрд░ рдПрдХ рдорд┐рдиреАтАСрдРрдк рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╣рд░ рдмрд╛рд░ рдЗрд╕рдХрд╛ рдЦрд╛рдорд┐рдпрд╛рдЬрд╛ рднреБрдЧрддрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред

Vue 3 рдПрдбрдорд┐рди UI рдкреНрд░рджрд░реНрд╢рди рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдХрд╛ рдордХрд╕рдж рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЬреАрддрдирд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЛ рд╕реНрдореВрдж рд░рдЦрдирд╛, рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреЛ рд╕реНрдерд┐рд░ рд░рдЦрдирд╛, рдХреНрд▓рд┐рдХреНрд╕ рдХреЛ рд░рд┐рд╕реНрдкреЙрдиреНрд╕рд┐рд╡ рд░рдЦрдирд╛ рдФрд░ рдкреНрд░реЛрдЧреНрд░реЗрд╕ рджрд┐рдЦрд╛рдирд╛ рд╣реИ рдмрд┐рдирд╛ рдпреВрдЬрд╝рд░ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд┐рдПред

рдЕрдЪреНрдЫреА рдмрд╛рдд: рдЫреЛрдЯреЗ рдмрджрд▓рд╛рд╡ рдЕрдХреНрд╕рд░ рдмрдбрд╝реЗ рд░реАтАСрд░рд╛рдЗрдЯреНрд╕ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реЛрддреЗ рд╣реИрдВред рдХрдо рд░реЛреЫ рд░реЗрдВрдбрд░ рдХрд░реЗрдВ (virtualization), рд╣рд░ рдХреАтАСрд╕реНрдЯреНрд░реЛрдХ рдкрд░ рдХрд╛рдо рдШрдЯрд╛рдПрдБ (debounce), рдорд╣рдВрдЧреА рд╕реЗрд▓реНрд╕ рдХреЛ рдмрд╛рд░тАСрдмрд╛рд░ рдирд╣реАрдВ рдЪрд▓рдиреЗ рджреЗрдВ (memoization), рдФрд░ рдРрд╕реЗ рд▓реЛрдбрд┐рдВрдЧ рд╕реНрдЯреЗрдЯ рдбрд┐рдЬрд╛рдЗрди рдХрд░реЗрдВ рдЬреЛ рдкреЗрдЬ рдХреЛ рдЬрдВрдк рди рдХрд░рд╛рдПрдБред

рдХреБрдЫ рднреА рдмрджрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдорд╛рдкреЗрдВ

рдмреЗрд╕рд▓рд╛рдЗрди рдХреЗ рдмрд┐рдирд╛ рдЯреНрдпреВрди рдХрд░рдиреЗ рдкрд░ рдЖрдк рдЧрд▓рдд рдЪреАрдЬрд╝ "рдлрд┐рдХреНрд╕" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдзреАрдореЗ рдПрдбрдорд┐рди рд╕реНрдХреНрд░реАрди рдХреЛ рдЪреБрдиреЗрдВ (users рдЯреЗрдмрд▓, рдЯрд┐рдХрдЯ рдХреА рдХрддрд╛рд░, orders рд▓рд┐рд╕реНрдЯ) рдФрд░ рдПрдХ рдРрд╕рд╛ рд▓рдХреНрд╖реНрдп рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рдЖрдк рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХреЗрдВ: рддреЗрдЬрд╝ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдФрд░ рдРрд╕рд╛ рд╕рд░реНрдЪ рдЗрдирдкреБрдЯ рдЬреЛ рдХрднреА рд▓реИрдЧ рди рдХрд░реЗред

рдзреАрд░реЗтАСрдзреАрд░реЗ slowdown рдХреЛ reproduce рдХрд░реЗрдВ, рдлрд┐рд░ рдЙрд╕реЗ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХрд░реЗрдВред

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ Performance рдкреИрдирд▓ рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕реЗрд╢рди рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдВ: рд▓рд┐рд╕реНрдЯ рд▓реЛрдб рдХрд░реЗрдВ, рдХреБрдЫ рд╕реЗрдХрдВрдб рддреЗрдЬрд╝ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВ, рдлрд┐рд░ рд╕рд░реНрдЪ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░реЗрдВред рдореБрдЦреНрдп рдереНрд░реЗрдб рдкрд░ рд▓рдВрдмреЗ рдЯрд╛рд╕реНрдХ рдФрд░ рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ layout/paint рдХрд╛рдо рджреЗрдЦреЗрдВ рдЬрд╣рд╛рдБ рдХреБрдЫ рдирдпрд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдлрд┐рд░ Vue Devtools рдЦреЛрд▓реЗрдВ рдФрд░ рдЬрд╛рдБрдЪреЗрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ reтАСrenders рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЕрдЧрд░ рдПрдХ рдХреАтАСрд╕реНрдЯреНрд░реЛрдХ рдкреВрд░реА рдЯреЗрдмрд▓, рдлрд╝рд┐рд▓реНрдЯрд░ рдФрд░ рдкреЗрдЬ рд╣реЗрдбрд░ рдХреЛ reтАСrender рдХрд░рд╡рд╛ рд░рд╣реА рд╣реИ, рддреЛ рдЕрдХреНрд╕рд░ рд╡рд╣реА рдЗрдирдкреБрдЯ рджреЗрд░реА рд╕рдордЭрд╛ рджреЗрддрд╛ рд╣реИред

рдХреБрдЫ numbers рдЯреНрд░реИрдХ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдмрд╛рдж рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрдиреНрдлрд░реНрдо рдХрд░ рд╕рдХреЗрдВ:

  • рдкрд╣рд▓рд╛ рдЙрдкрдпреЛрдЧреА рд▓рд┐рд╕реНрдЯ рдЖрдиреЗ рдХрд╛ рд╕рдордп (рд╕рд┐рд░реНрдл рд╕реНрдкрд┐рдирд░ рдирд╣реАрдВ)
  • рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХрд╛ рдЕрд╣рд╕рд╛рд╕ (smooth рдмрдирд╛рдо choppy)
  • рдЯрд╛рдЗрдкрд┐рдВрдЧ рдкрд░ рдЗрдирдкреБрдЯ рдбрд┐рд▓реЗ (рдХреНрдпрд╛ рдЯреЗрдХреНрд╕реНрдЯ рддреБрд░рдВрдд рджрд┐рдЦрддрд╛ рд╣реИ?)
  • рдЯреЗрдмрд▓ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХрд╛ render duration
  • рд▓рд┐рд╕реНрдЯ API рдХреЙрд▓ рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдордп

рдЕрдВрдд рдореЗрдВ, рдмреЛрддрд▓тАСрдЧрд╛рд░реНрдб рдХрд╣рд╛рдБ рд╣реИ рдпрд╣ рдХрдиреНрдлрд░реНрдо рдХрд░реЗрдВред рдПрдХ рддреЗрдЬрд╝ рдЯреЗрд╕реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдиреЙрдЗрдЬрд╝ рдШрдЯрд╛рдиреЗ рдХрд╛ рд╣реИред рдЕрдЧрд░ UI cached рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рднреА рд╕реНрдЯрдЯрд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдЬреНрдпрд╛рджрд╛рддрд░ rendering рд╣реИред рдЕрдЧрд░ UI рд╕реНрдореВрдж рд╣реИ рдкрд░ рд░рд┐рдЬрд╝рд▓реНрдЯ рд▓реЗрдЯ рдЖрддреЗ рд╣реИрдВ, рддреЛ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдордп, рдХреНрд╡реЗрд░реА рд╕рд╛рдЗрдЬ рдФрд░ рд╕рд░реНрд╡рд░тАСрд╕рд╛рдЗрдб рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред

рдмрдбрд╝реА рд╕реВрдЪрд┐рдпреЛрдВ рдФрд░ рдЯреЗрдмрд▓реНрд╕ рдХреЛ virtualize рдХрд░реЗрдВ

рдЬрдм рдХреЛрдИ рдПрдбрдорд┐рди рд╕реНрдХреНрд░реАрди рд╕реИрдХрдбрд╝реЛрдВ рдпрд╛ рд╣рдЬрд╛рд░реЛрдВ рд░реЛреЫ рдПрдХ рд╕рд╛рде рд░реЗрдВрдбрд░ рдХрд░рддреА рд╣реИ рддреЛ virtualization рдЕрдХреНрд╕рд░ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдлрд╛рдпрджрд╛ рджреЗрддрд╛ рд╣реИред рд╣рд░ рд░реЛ рдХреЛ DOM рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЖрдк рдХреЗрд╡рд▓ рд╡рд╣ рд░реЗрдВрдбрд░ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ viewport рдореЗрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ (рдФрд░ рдПрдХ рдЫреЛрдЯрд╛ buffer)ред рдЗрд╕рд╕реЗ рд░реЗрдВрдбрд░ рдЯрд╛рдЗрдо рдХрдЯрддрд╛ рд╣реИ, рдореЗрдореЛрд░реА рдХрдо рд╣реЛрддреА рд╣реИ рдФрд░ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рд╕реНрдерд┐рд░ рдорд╣рд╕реВрд╕ рд╣реЛрддреА рд╣реИред

рд╕рд╣реА рддрд░реАрдХрд╛ рдЪреБрдиреЗрдВ

Virtual scrolling (windowing) рддрдм рдмреЗрд╣рддрд░ рд╣реИ рдЬрдм рдпреВрдЬрд╝рд░реНрд╕ рдХреЛ рд▓рдВрдмреЗ dataset рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдореВрджрд▓реА рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред Pagination рдмреЗрд╣рддрд░ рд╣реИ рдЬрдм рд▓реЛрдЧ рдкреЗрдЬтАСрдмрд╛рдптАСрдкреЗрдЬ рдХреВрджрдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдк рд╕рд░рд▓ рд╕рд░реНрд╡рд░тАСрд╕рд╛рдЗрдб рдХреНрд╡реЗрд░реАрдЬ рдЪрд╛рд╣рддреЗ рд╣реИрдВред "Load more" рдкреИрдЯрд░реНрди рддрдм рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдХрдо рдХрдВрдЯреНрд░реЛрд▓реНрд╕ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдкрд░ рдлрд┐рд░ рднреА рдмрдбрд╝реЗ DOM рдкреЗрдбрд╝реЛрдВ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдХрдЪреНрдЪреЗ рдирд┐рдпрдо рдХреЗ рддреМрд░ рдкрд░:

  • 0тАУ200 рд░реЛреЫ: рд╕рд╛рдорд╛рдиреНрдп рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЕрдХреНрд╕рд░ рдареАрдХ рд░рд╣рддреА рд╣реИ
  • 200тАУ2,000 рд░реЛреЫ: UX рдХреЗ рдЖрдзрд╛рд░ рдкрд░ virtualization рдпрд╛ pagination
  • 2,000+ рд░реЛреЫ: virtualization рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░тАСрд╕рд╛рдЗрдб filtering/sorting

virtualization рдХреЛ рд╕реНрдерд┐рд░ рдмрдирд╛рдПрдВ

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

рдЗрд╕реЗ рд╕реНрдерд┐рд░ рд░рдЦреЗрдВ:

  • рдЬрд╣рд╛рдВ рд╕рдВрднрд╡ рд╣реЛ рдлрд┐рдХреНрд╕реНрдб рд░реЛ рд╣рд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдпрд╛ рдХреБрдЫ рдЬреНрдЮрд╛рдд рд╣рд╛рдЗрдЯреНрд╕ рдХрд╛ рд╕реЗрдЯ рд░рдЦреЗрдВ
  • рд╡реИрд░рд┐рдПрдмрд▓ рдХрдВрдЯреЗрдВрдЯ (tags, notes) рдХреЛ clamp рдХрд░реЗрдВ рдФрд░ рд╡рд┐рд╡рд░рдг view рдХреЗ рдкреАрдЫреЗ рджрд┐рдЦрд╛рдПрдБ
  • рд╣рд░ рд░реЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдордЬрдмреВрдд, рдпреВрдирд┐рдХ key рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ (рдХрднреА array index рдирд╣реАрдВ)
  • sticky headers рдХреЗ рд▓рд┐рдП header рдХреЛ virtualized body рдХреЗ рдмрд╛рд╣рд░ рд░рдЦреЗрдВ
  • рдЕрдЧрд░ рд╡реИрд░рд┐рдПрдмрд▓ рд╣рд╛рдЗрдЯреНрд╕ рд╕рдкреЛрд░реНрдЯ рдХрд░рдиреА рд╣реА рд╣реЛрдВ рддреЛ measuring рд╕рдХреНрд╖рдо рдХрд░реЗрдВ рдФрд░ рд╕реЗрд▓реНрд╕ рдХреЛ рд╕рд░рд▓ рд░рдЦреЗрдВ

рдЙрджрд╛рд╣рд░рдг: рдЕрдЧрд░ рдПрдХ рдЯрд┐рдХрдЯ рдЯреЗрдмрд▓ рдореЗрдВ 10,000 рд░реЛреЫ рд╣реИрдВ, рддреЛ рдЯреЗрдмрд▓ рдмреЙрдбреА рдХреЛ virtualize рдХрд░реЗрдВ рдФрд░ рд░реЛ рд╣рд╛рдЗрдЯ рдХреЛ рд╕реБрд╕рдВрдЧрдд рд░рдЦреЗрдВ (status, subject, assignee)ред рд▓рдВрдмреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ details drawer рдХреЗ рдкреАрдЫреЗ рд░рдЦреЗрдВ рддрд╛рдХрд┐ рд╕реНрдХреНрд░реЙрд▓ рд╕реНрдореВрдж рд░рд╣реЗред

рдбреЗрдмрд╛рдЙрдиреНрд╕ рд╕рд░реНрдЪ рдФрд░ рд╕реНрдорд╛рд░реНрдЯ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ

рдПрдХ рд╕рд░реНрдЪ рдмреЙрдХреНрд╕ рддреЗрдЬрд╝ рдЯреЗрдмрд▓ рдХреЛ рдзреАрдорд╛ рдорд╣рд╕реВрд╕ рдХрд░рд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдЕрдХреНрд╕рд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдЦреБрдж рдирд╣реАрдВ рд╣реЛрддреАред рдпрд╣ рдЪреИрдитАСрд░рд┐рдПрдХреНрд╢рди рд╣реИ: рд╣рд░ рдХреАтАСрд╕реНрдЯреНрд░реЛрдХ рд░реЗрдВрдбрд░, watchers рдФрд░ рдЕрдХреНрд╕рд░ рдПрдХ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред

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

рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рд╕реНрдЯреНрд░реИрдЯреЗрдЬреА рдХреЛ dataset рдХреЗ рд╕рд╛рдЗрдЬ рдФрд░ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЪреБрдиреЗрдВ:

  • рдЕрдЧрд░ рдпрд╣ рдХреБрдЫ рд╕реМ рд░реЛреЫ рдХреЗ рднреАрддрд░ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд▓реЛрдб рд╣реИ рддреЛ рдХреНрд▓рд╛рдЗрдВрдЯтАСрд╕рд╛рдЗрдб рдлрд╝рд┐рд▓реНрдЯрд░ рдареАрдХ рд╣реИ
  • рдЕрдЧрд░ рдпрд╣ рд╣рдЬрд╛рд░реЛрдВ рд░реЛреЫ рд╣реИ рдпрд╛ permissions рд╕рдЦреНрдд рд╣реИрдВ рддреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рдХреНрд╡реЗрд░реА рдХрд░реЗрдВ
  • рдЕрдЧрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдорд╣рдВрдЧреЗ рд╣реИрдВ (date ranges, status logic), рддреЛ рдЙрдиреНрд╣реЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рдзрдХреЗрд▓реЗрдВ
  • рдЕрдЧрд░ рджреЛрдиреЛрдВ рдЪрд╛рд╣рд┐рдП рддреЛ рдорд┐рд╢реНрд░рд┐рдд рддрд░реАрдХрд╛ рдЕрдкрдирд╛рдПрдБ: рдЬрд▓реНрджреА рдХреНрд▓рд╛рдЗрдВрдЯтАСрдиреИрд░реЛрдЗрдВрдЧ, рдлрд┐рд░ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдХреНрд╡реЗрд░реА

рдЬрдм рдЖрдк рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ stale results рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВред рдЕрдЧрд░ рдпреВрдЬрд╝рд░ "inv" рдЯрд╛рдЗрдк рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЬрд▓реНрджреА рд╕реЗ "invoice" рдкреВрд░рд╛ рдХрд░ рджреЗрддрд╛ рд╣реИ, рддреЛ рдкреБрд░рд╛рдирд╛ рдЕрдиреБрд░реЛрдз рдмрд╛рдж рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрдХрд░ UI рдХреЛ рдЧрд▓рдд рдбреЗрдЯрд╛ рд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдкрд┐рдЫрд▓реЗ рдЕрдиреБрд░реЛрдз рдХреЛ cancel рдХрд░реЗрдВ (AbortController рдХреЗ рд╕рд╛рде fetch, рдпрд╛ рдЖрдкрдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА cancellation рд╕реБрд╡рд┐рдзрд╛), рдпрд╛ рдПрдХ request id рдЯреНрд░реИрдХ рдХрд░реЗрдВ рдФрд░ рдХреЗрд╡рд▓ рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВред

рд▓реЛрдбрд┐рдВрдЧ рд╕реНрдЯреЗрдЯреНрд╕ рд╕реНрдкреАрдб рдЬрд┐рддрдиреА рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред рд╣рд░ рдХреАтАСрд╕реНрдЯреНрд░реЛрдХ рдкрд░ рдкреВрд░рд╛тАСрдкреЗрдЬ рд╕реНрдкрд┐рдирд░ рди рджрд┐рдЦрд╛рдПрдБред рд╢рд╛рдВрдд рдкреНрд░рд╡рд╛рд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ: рдЬрдм рдпреВрдЬрд╝рд░ рдЯрд╛рдЗрдк рдХрд░ рд░рд╣рд╛ рд╣реИ, рдХреБрдЫ рднреА рдлреНрд▓реИрд╢ рди рдХрд░реЗрдВред рдЬрдм рдРрдк рд╕рд░реНрдЪ рдХрд░ рд░рд╣рд╛ рд╣реЛ рддреЛ рдЗрдирдкреБрдЯ рдХреЗ рдкрд╛рд╕ рдПрдХ рдЫреЛрдЯрд╛ inline рд╕рдВрдХреЗрдд рджрд┐рдЦрд╛рдПрдБред рдЬрдм рдкрд░рд┐рдгрд╛рдо рдЕрдкрдбреЗрдЯ рд╣реЛрдВ, рддреЛ "Showing 42 results" рдЬреИрд╕реЗ рд╕реВрдХреНрд╖реНрдо рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдПрдБред рдЕрдЧрд░ рдХреЛрдИ рд░рд┐рдЬрд╝рд▓реНрдЯ рдирд╣реАрдВ рд╣реИ рддреЛ "No matches" рдХрд╣реЗрдВ рдмрдЬрд╛рдп рдЦрд╛рд▓реА рдЧреНрд░рд┐рдб рдЫреЛрдбрд╝рдиреЗ рдХреЗред

рдореЗрдореЛрдЬрд╝реНрдб рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдФрд░ рд╕реНрдерд┐рд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ

рдЕрдкрдиреА рд╢рд░реНрддреЛрдВ рдкрд░ рдбрд┐рдкреНрд▓реЙрдп рдХрд░реЗрдВ
AppMaster Cloud рдкрд░ рдбрд┐рдкреНрд▓реЙрдп рдХрд░реЗрдВ рдпрд╛ рд╕реЛрд░реНрд╕ рдХреЛрдб рдПрдХреНрд╕реНрдкреЛрд░реНрдЯ рдХрд░рдХреЗ AWS, Azure, Google Cloud, рдпрд╛ selfтАСhosting рдХреЗ рд▓рд┐рдП рд▓реЗрдВред
рдРрдк рдбрд┐рдкреНрд▓реЙрдп рдХрд░реЗрдВ

рдХрдИ рдзреАрдореЗ рдПрдбрдорд┐рди рдЯреЗрдмрд▓ рдЗрд╕реАрд▓рд┐рдП рдзреАрдореЗ рдирд╣реАрдВ рд╣реЛрддреЗ рдХрд┐ рдбреЗрдЯрд╛ рдмрд╣реБрдд рдЬрд╝реНрдпрд╛рджрд╛ рд╣реИред рд╡реЗ рдЗрд╕рд▓рд┐рдП рдзреАрдореЗ рд╣реЛрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣реА рд╕реЗрд▓реНрд╕ рдмрд╛рд░тАСрдмрд╛рд░ reтАСrender рдХрд░рддреЗ рд╣реИрдВред

рдХреНрдпрд╛ reтАСrenders рдХрд░рд╡рд╛ рд░рд╣рд╛ рд╣реИ рдЦреЛрдЬреЗрдВ

рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдкрдбреЗрдЯ рдЖрдо рддреМрд░ рдкрд░ рдХреБрдЫ рдЖрдо рдЖрджрддреЛрдВ рд╕реЗ рдЖрддреЗ рд╣реИрдВ:

  • рдмрдбрд╝реЗ reactive рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ props рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рдЬрдм рд╕рд┐рд░реНрдлрд╝ рдХреБрдЫ рдлрд╝реАрд▓реНрдб рдЪрд╛рд╣рд┐рдП
  • рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдореЗрдВ inline рдлрд╝рдВрдХреНрд╢рдВрд╕ рдмрдирд╛рдирд╛ (рд╣рд░ render рдкрд░ рдирдпрд╛ рдмрдирддрд╛ рд╣реИ)
  • рдмрдбрд╝реЗ arrays рдпрд╛ row objects рдкрд░ deep watchers рдХрд╛ рдЙрдкрдпреЛрдЧ
  • рд╣рд░ рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдореЗрдВ рдирдИ arrays рдпрд╛ objects рдмрдирд╛рдирд╛
  • рд╣рд░ рдЕрдкрдбреЗрдЯ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдореЗрдВ formatting work рдХрд░рдирд╛ (dates, currency, parsing)

рдЬрдм props рдФрд░ handlers рдХреА identity рдмрджрд▓рддреА рд╣реИ, Vue рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЪрд╛рдЗрд▓реНрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реЛ рд╕рдХрддреА рд╣реИ, рднрд▓реЗ рд╣реА рдХреБрдЫ рджреГрд╢реНрдп рд░реВрдк рд╕реЗ рдмрджрд▓рд╛ рд╣реА рди рд╣реЛред

props рдХреЛ рд╕реНрдерд┐рд░ рдмрдирд╛рдПрдВ, рдлрд┐рд░ memoize рдХрд░реЗрдВ

рдЫреЛрдЯреЗ, рд╕реНрдерд┐рд░ props рдкрд╛рд╕ рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░реЗрдВред рд╣рд░ рд╕реЗрд▓ рдореЗрдВ рдкреВрд░рд╛ row рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдмрдЬрд╛рдп row.id рдФрд░ рдХреЗрд╡рд▓ рд╡реЗ рдлрд╝реАрд▓реНрдб рдкрд╛рд╕ рдХрд░реЗрдВ рдЬреЛ рд╕реЗрд▓ рджрд┐рдЦрд╛рддреА рд╣реИред рд╡реНрдпреБрддреНрдкрдиреНрди рдорд╛рдиреЛрдВ рдХреЛ computed рдореЗрдВ рд░рдЦреЗрдВ рддрд╛рдХрд┐ рд╡реЗ рдХреЗрд╡рд▓ рддрднреА рдлрд┐рд░ рд╕реЗ рдХреИрд▓рдХреБрд▓реЗрдЯ рд╣реЛрдВ рдЬрдм рдЙрдирдХреЗ рдЗрдирдкреБрдЯ рдмрджрд▓реЗрдВред

рдпрджрд┐ рд░реЛ рдХрд╛ рдХреБрдЫ рднрд╛рдЧ рдмрд╣реБрдд рдХрдо рдмрджрд▓рддрд╛ рд╣реИ рддреЛ v-memo рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕реНрдерд┐рд░ рдЗрдирдкреБрдЯреНрд╕ (рдЬреИрд╕реЗ row.id рдФрд░ row.status) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдерд┐рд░ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ memoize рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╕рд░реНрдЪ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдпрд╛ рд░реЛ рдкрд░ hover рдХрд░рдиреЗ рд╕реЗ рд╣рд░ рд╕реЗрд▓ рдХрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд┐рд░ рд╕реЗ рди рдЪрд▓реЗред

рдорд╣рдВрдЧреА рд╡рд░реНрдХ рдХреЛ render path рд╕реЗ рджреВрд░ рд░рдЦреЗрдВред рддрд┐рдерд┐рдпреЛрдВ рдХреЛ рдПрдХ рдмрд╛рд░ рдкрд╣рд▓реЗ рд╕реЗ рдлреЙрд░реНрдореИрдЯ рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП id рд╕реЗ рдХреА рдЧрдИ рдПрдХ computed map рдореЗрдВ), рдпрд╛ рдЬрд╣рд╛рдБ рд╕рд╣реА рд╣реЛ рд╕рд░реНрд╡рд░ рдкрд░ рдлреЙрд░реНрдореИрдЯ рдХрд░реЗрдВред рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЬреАрдд рд╣реИ рдХрд┐ "Last updated" рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП new Date() рдХреЛ рд╕реИрдХрдбрд╝реЛрдВ рд░реЛреЫ рдкрд░ рд╣рд░ рдЫреЛрдЯреЗ UI рдЕрдкрдбреЗрдЯ рдкрд░ рдХреЙрд▓ рди рдХрд░рд╛рдПрдВред

рд▓рдХреНрд╖реНрдп рд╕реАрдзрд╛ рд╣реИ: identities рдХреЛ рд╕реНрдерд┐рд░ рд░рдЦреЗрдВ, рдХрд╛рдо рдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦреЗрдВ, рдФрд░ рдХреЗрд╡рд▓ рд╡рд╣реА рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рдЬреЛ рд╡рд╛рдХрдИ рдмрджрд▓рд╛ рд╣реИред

рд╕реНрдорд╛рд░реНрдЯ рд▓реЛрдбрд┐рдВрдЧ рд╕реНрдЯреЗрдЯреНрд╕ рдЬреЛ рддреЗрдЬрд╝ рдорд╣рд╕реВрд╕ рдХрд░рд╛рдПрдБ

рдПрдХ рд▓рд┐рд╕реНрдЯ рдЕрдХреНрд╕рд░ рдзреАрдореА рдЗрд╕рд▓рд┐рдП рд▓рдЧрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ UI рдмрд╛рд░тАСрдмрд╛рд░ рдХреВрджрддреА рд░рд╣рддреА рд╣реИред рдЕрдЪреНрдЫреЗ рд▓реЛрдбрд┐рдВрдЧ рд╕реНрдЯреЗрдЯреНрд╕ рдЗрдВрддрдЬрд╝рд╛рд░ рдХреЛ predictable рдмрдирд╛рддреЗ рд╣реИрдВред

Skeleton рд░реЛреЫ рддрдм рдорджрдж рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдбреЗрдЯрд╛ рдХреА shape рдЬреНрдЮрд╛рдд рд╣реЛ (рдЯреЗрдмрд▓, рдХрд╛рд░реНрдб, рдЯрд╛рдЗрдорд▓рд╛рдЗрди)ред рдПрдХ рд╕реНрдкрд┐рдирд░ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рддрд╛ рдХрд┐ рдЖрдк рдХрд┐рд╕рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред Skeletons рдЕрдкреЗрдХреНрд╖рд╛рдПрдБ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ: рдХрд┐рддрдиреА рд░реЛреЫ, рдХрд╣рд╛рдБ actions рдЖрдПрдБрдЧреЗ рдФрд░ рд▓реЗрдЖрдЙрдЯ рдХреИрд╕рд╛ рд╣реЛрдЧрд╛ред

рдЬрдм рдЖрдк рдбреЗрдЯрд╛ рд░рд┐рдлреНрд░реЗрд╢ рдХрд░рддреЗ рд╣реИрдВ (paging, sorting, filters), рддреЛ рдирдИ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдлреНрд▓рд╛рдЗрдЯ рдореЗрдВ рд╣реЛрдиреЗ рдкрд░ рдкрд┐рдЫрд▓реЗ рдкрд░рд┐рдгрд╛рдо рд╕реНрдХреНрд░реАрди рдкрд░ рд░рдЦреЗрдВред рдПрдХ рд╕реВрдХреНрд╖реНрдо "refreshing" рд╕рдВрдХреЗрдд рдЬреЛрдбрд╝реЗрдВ рдмрдЬрд╛рдп рдЯреЗрдмрд▓ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗред рдпреВрдЬрд╝рд░ рдкрдврд╝рдирд╛ рдпрд╛ рдХреБрдЫ рдЬрд╛рдВрдЪрдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдЕрдкрдбреЗрдЯ рд╣реЛ рд░рд╣рд╛ рд╣реЛред

рдЖрдВрд╢рд┐рдХ рд▓реЛрдбрд┐рдВрдЧ рдкреВрд░рд╛ рдмреНрд▓реЙрдХрд┐рдВрдЧ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ

рд╣рд░ рдЪреАрдЬрд╝ рдХреЛ freeze рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рдЕрдЧрд░ рдЯреЗрдмрд▓ рд▓реЛрдб рд╣реЛ рд░рд╣реА рд╣реИ рддреЛ filter рдмрд╛рд░ рдХреЛ рджрд┐рдЦрд╛рдПрдБ рд▓реЗрдХрд┐рди рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ disable рдХрд░ рджреЗрдВред рдЕрдЧрд░ рд░реЛ рдПрдХреНрд╢рди рдХреЛ рдПрдХреНрд╕реНрдЯреНрд░рд╛ рдбреЗрдЯрд╛ рдЪрд╛рд╣рд┐рдП рддреЛ рдХреНрд▓рд┐рдХ рдХреА рдЧрдИ рд░реЛ рдкрд░ pending state рджрд┐рдЦрд╛рдПрдБ, рди рдХрд┐ рдкреВрд░реЗ рдкреЗрдЬ рдкрд░ред

рдПрдХ рд╕реНрдерд┐рд░ рдкреИрдЯрд░реНрди рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

  • рдкрд╣рд▓рд╛ рд▓реЛрдб: рд╕реНрдХреЗрд▓реЗрдЯрди рд░реЛреЫ
  • рд░рд┐рдлреНрд░реЗрд╢: рдкреБрд░рд╛рдиреЗ рд░реЛреЫ рджрд┐рдЦрд╛рдПрдБ, рдЫреЛрдЯрд╛ "updating" рд╕рдВрдХреЗрдд
  • рдлрд╝рд┐рд▓реНрдЯрд░реНрд╕: fetch рдХреЗ рджреМрд░рд╛рди disable рдХрд░реЗрдВ, рдкрд░ рдЙрдиреНрд╣реЗрдВ рди рд╣рд┐рд▓рд╛рдПрдБ
  • рд░реЛ рдПрдХреНрд╢рди: рдкреНрд░рддрд┐тАСрд░реЛ pending state
  • рддреНрд░реБрдЯрд┐рдпрд╛рдБ: inline рджрд┐рдЦрд╛рдПрдБ рдмрд┐рдирд╛ рд▓реЗрдЖрдЙрдЯ рдХреЛ рд╕рдВрдХреБрдЪрд┐рдд рдХрд┐рдП

рд▓реЗрдЖрдЙрдЯ рд╢рд┐рдлреНрдЯ рд░реЛрдХреЗрдВ

рдЯреВрд▓рдмрд╛рд░, empty states рдФрд░ pagination рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рдЖрд░рдХреНрд╖рд┐рдд рд░рдЦреЗрдВ рддрд╛рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдмрджрд▓рдиреЗ рдкрд░ рдХрдВрдЯреНрд░реЛрд▓реНрд╕ рди рд╣рд┐рд▓реЗрдВред рдЯреЗрдмрд▓ рдПрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП fixed minтАСheight рдорджрджрдЧрд╛рд░ рд╣реИ, рдФрд░ header/filter рдмрд╛рд░ рдХреЛ рд╣рдореЗрд╢рд╛ рд░реЗрдВрдбрд░ рдХрд░рдХреЗ рд░рдЦрдирд╛ рдкреЗрдЬ рдЬрдВрдк рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред

рдареЛрд╕ рдЙрджрд╛рд╣рд░рдг: рдЯрд┐рдХрдЯ рд╕реНрдХреНрд░реАрди рдкрд░ "Open" рд╕реЗ "Solved" рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдкрд░ рд▓рд┐рд╕реНрдЯ рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд╡рд░реНрддрдорд╛рди рд░реЛреЫ рд░рдЦреЗрдВ, status filter рдХреЛ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП disable рдХрд░реЗрдВ, рдФрд░ рдХреЗрд╡рд▓ рдЕрдкрдбреЗрдЯреЗрдб рдЯрд┐рдХрдЯ рдкрд░ pending state рджрд┐рдЦрд╛рдПрдБред

рдХрджрдо рджрд░ рдХрджрдо: рдПрдХ рдзреАрдореА рд▓рд┐рд╕реНрдЯ рдХреЛ рдПрдХ рджреЛрдкрд╣рд░ рдореЗрдВ рдареАрдХ рдХрд░реЗрдВ

рдПрдХ рддреЗрдЬрд╝ рдПрдбрдорд┐рди рдкреИрдирд▓ рдмрдирд╛рдПрдВ
рдПрдХ Vue 3 рдПрдбрдорд┐рди рдРрдк рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ, рдлрд┐рд░ рдЙрд╕реА рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рд╕реЗ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХрд░рдХреЗ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд░реЗрдВред
рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ

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

рдПрдХ рддреЗрдЬрд╝ рджреЛрдкрд╣рд░ рдпреЛрдЬрдирд╛

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

рдлрд┐рд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХреНрд░рдо рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВ:

  • bottleneck рдкрд╣рдЪрд╛рдиреЗрдВ: janky рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ, рдзреАрдореА рдЯрд╛рдЗрдкрд┐рдВрдЧ, рдзреАрдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рд░рд┐рд╕реНрдкреЙрдиреНрд╕, рдпрд╛ рдорд┐рд╢реНрд░рдг
  • DOM рд╕рд╛рдЗрдЬ рдШрдЯрд╛рдПрдБ: virtualization, рдпрд╛ UI рд╕реНрдерд┐рд░ рд╣реЛрдиреЗ рддрдХ default page size рдШрдЯрд╛рдПрдБ
  • рд╕рд░реНрдЪ рдХреЛ рд╢рд╛рдВрдд рдХрд░реЗрдВ: рдЗрдирдкреБрдЯ рдбреЗрдмрд╛рдЙрдиреНрд╕ рдХрд░реЗрдВ рдФрд░ рдкреБрд░рд╛рдиреЗ рдЕрдиреБрд░реЛрдз cancel рдХрд░реЗрдВ рддрд╛рдХрд┐ рдкрд░рд┐рдгрд╛рдо order рдореЗрдВ рд╣реА рдЖрдпреЗрдВ
  • рд░реЛреЫ рд╕реНрдерд┐рд░ рд░рдЦреЗрдВ: рд╕реБрд╕рдВрдЧрдд keys, рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдореЗрдВ рдирдИ objects рди рдмрдирд╛рдПрдВ, row rendering memoize рдХрд░реЗрдВ рдЬрд╣рд╛рдБ рдбреЗрдЯрд╛ рдирд╣реАрдВ рдмрджрд▓рд╛
  • рдЕрдиреБрднрд╡ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдПрдВ: рдкреНрд░рддрд┐тАСрд░реЛ рд╕реНрдХреЗрд▓реЗрдЯрди рдпрд╛ рдЫреЛрдЯрд╛ inline рд╕реНрдкрд┐рдирд░ рджрд┐рдЦрд╛рдПрдБ рдмрдЬрд╛рдп рдкреВрд░реЗ рдкреЗрдЬ рдХреЛ рдмреНрд▓реЙрдХ рдХрд┐рдП

рд╣рд░ рдХрджрдо рдХреЗ рдмрд╛рдж рд╡рд╣реА рдЦрд░рд╛рдм рдЕрдиреБрднрд╡ рдлрд┐рд░ рд╕реЗ рдЯреЗрд╕реНрдЯ рдХрд░реЗрдВред рдЕрдЧрд░ virtualization рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рд╕реНрдореВрдж рд╣реБрдЖ, рддреЛ рдЖрдЧреЗ рдмрдврд╝реЗрдВред рдЕрдЧрд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдЕрднреА рднреА рд▓реИрдЬреА рд╣реИ, рддреЛ debounce рдФрд░ request cancellation рдЖрдо рддреМрд░ рдкрд░ рдЕрдЧрд▓рд╛ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рд▓рд╛рдн рд╣реИред

рдЖрдк рдХреЙрдкреА рдХрд░ рд╕рдХрдиреЗ рд╡рд╛рд▓рд╛ рдЫреЛрдЯрд╛ рдЙрджрд╛рд╣рд░рдг

рд╕реЛрдЪрд┐рдП рдПрдХ "Users" рдЯреЗрдмрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ 10,000 рд░реЛреЫ рд╣реИрдВред рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдЪреЙрдХреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмрд╣реБрдд рд╕рд╛рд░реА рд░реЛреЫ рдкреЗрдВрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреЗрд╡рд▓ viewport рд╡рд╛рд▓реА рд░реЛреЫ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП virtualize рдХрд░реЗрдВред

рдлрд┐рд░, рд╕рд░реНрдЪ рджреЗрд░реА рдЬреИрд╕рд╛ рдорд╣рд╕реВрд╕ рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ рдХреАтАСрд╕реНрдЯреНрд░реЛрдХ рдПрдХ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдЯреНрд░рд┐рдЧрд░ рдХрд░ рд░рд╣рд╛ рдерд╛ред 250тАУ400 ms рдХрд╛ debounce рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рдкрд┐рдЫрд▓реЗ рдЕрдиреБрд░реЛрдз рдХреЛ AbortController (рдпрд╛ рдЖрдкрдХреЗ HTTP рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА cancellation) рд╕реЗ cancel рдХрд░реЗрдВ рддрд╛рдХрд┐ рдХреЗрд╡рд▓ рд▓реЗрдЯреЗрд╕реНрдЯ рдХреНрд╡реЗрд░реА рд▓рд┐рд╕реНрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗред

рдЕрдВрдд рдореЗрдВ, рд╣рд░ рд░реЛ рдХреЛ рд╕рд╕реНрддрд╛ рд░рдЦреЗрдВред props рд╕рд╛рдзрд╛рд░рдг рд░рдЦреЗрдВ (рдЬрд╣рд╛рдБ рд╕рдВрднрд╡ ids рдФрд░ primitive), row рдЖрдЙрдЯрдкреБрдЯ рдХреЛ memoize рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЕрдкреНрд░рднрд╛рд╡рд┐рдд рд░реЛреЫ рдлрд┐рд░ рд╕реЗ рди рдбреНрд░реЙ рд╣реЛрдВ, рдФрд░ рдкреВрд░реЗ рд╕реНрдХреНрд░реАрди рдУрд╡рд░рд▓реЗ рдХреА рдмрдЬрд╛рдп рдЯреЗрдмрд▓ рдмреЙрдбреА рдХреЗ рдЕрдВрджрд░ рд▓реЛрдбрд┐рдВрдЧ рджрд┐рдЦрд╛рдПрдБ рддрд╛рдХрд┐ рдкреЗрдЬ рд░рд┐рд╕реНрдкреЙрдиреНрд╕рд┐рд╡ рд░рд╣реЗред

рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рддрд┐рдпрд╛рдБ рдЬреЛ UI рдХреЛ рдзреАрдорд╛ рд░рдЦрддреА рд╣реИрдВ

рдЬрд▓реНрджреА рд╕реЗ рдЬрд░реВрд░реА рдЪреАрдЬреЗрдВ рдЬреЛрдбрд╝реЗрдВ
рдЬрдм рдЖрдкрдХреЗ рдПрдбрдорд┐рди рдЯреВрд▓ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдПрдХреНрд╕реЗрд╕ рдЪрд╛рд╣рд┐рдП рддреЛ authentication рдФрд░ Stripe payments рдЬреЛрдбрд╝реЗрдВред
рдореЙрдбреНрдпреВрд▓ рдЬреЛрдбрд╝реЗрдВ

рдЯреАрдореЗрдВ рдЕрдХреНрд╕рд░ рдХреБрдЫ рдлрд╝рд┐рдХреНрд╕ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИрдВ, рдЫреЛрдЯрд╛ рд╕реБрдзрд╛рд░ рджреЗрдЦрддреА рд╣реИрдВ, рдлрд┐рд░ рдЕрдЯрдХ рдЬрд╛рддреА рд╣реИрдВред рдЖрдо рдХрд╛рд░рдг: рдорд╣рдВрдЧреА рдЪреАрдЬрд╝ рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рд╣реИ рдмрд▓реНрдХрд┐ рд╣рд░ рдмрд╛рд░ рдЬрдм рд░реЛ рд░реЗрдВрдбрд░ рд╣реЛрддреА рд╣реИ рддрдм рдЬреЛ рдХреБрдЫ рд╣реЛрддрд╛ рд╣реИ рд╡рд╣ рднрд╛рд░реА рд╣реЛрддрд╛ рд╣реИред

Virtualization рдорджрдж рдХрд░рддреА рд╣реИ, рдкрд░ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд░рджреНрдж рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдЧрд░ рд╣рд░ visible рд░реЛ рдлрд┐рд░ рднреА рдПрдХ рднрд╛рд░реА рдЪрд╛рд░реНрдЯ mount рдХрд░рддрд╛ рд╣реИ, рдЗрдореЗрдЬреЗрд╕ decode рдХрд░рддрд╛ рд╣реИ, рдмрд╣реБрдд рд╕рд╛рд░реЗ watchers рдЪрд▓рд╛рддрд╛ рд╣реИ, рдпрд╛ рдорд╣рдВрдЧреА рдлреЙрд░реНрдореИрдЯрд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдлрд┐рд░ рднреА rough рд▓рдЧреЗрдЧреАред Virtualization рдпрд╣ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рддрдиреА рд░реЛреЫ рдореМрдЬреВрдж рд╣реЛрдВ, рди рдХрд┐ рд╣рд░ рд░реЛ рдХрд┐рддрдиреА рднрд╛рд░реА рд╣реИред

Keys рдПрдХ рдЪреБрдкрдЪрд╛рдк рдкрд░рдлреЙрд░реНрдореЗрдВрд╕ рдХрд┐рд▓рд░ рд╣реИрдВред рдЕрдЧрд░ рдЖрдк array index рдХреЛ key рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ Vue rows рдХреЛ рд╕рд╣реА рд╕реЗ рдЯреНрд░реИрдХ рдирд╣реАрдВ рдХрд░ рдкрд╛рддрд╛ рдЬрдм рдЖрдк insert/delete рдпрд╛ sort рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдЕрдХреНрд╕рд░ remounts рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЗрдирдкреБрдЯ рдлреЛрдХрд╕ рд░рд┐рд╕реЗрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реНрдерд┐рд░ id рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ Vue DOM рдФрд░ рдХрдВрдкреЛрдиреЗрдВрдЯ рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рдХреЛ reuse рдХрд░ рд╕рдХреЗред

Debounce рднреА рдЙрд▓реНрдЯрд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдЕрдЧрд░ delay рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╣реЛ рддреЛ UI рдЯреВрдЯреА рд╣реБрдИ рдорд╣рд╕реВрд╕ рд╣реЛрддреА рд╣реИ: рд▓реЛрдЧ рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ, рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрддрд╛, рдФрд░ рдлрд┐рд░ рд░рд┐рдЬрд╝рд▓реНрдЯреНрд╕ рдЕрдЪрд╛рдирдХ рдХреВрджрддреЗ рд╣реИрдВред рдЫреЛрдЯрд╛ delay рдЖрдо рддреМрд░ рдкрд░ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрдк рддреБрд░рдВрдд рдлрд╝реАрдбрдмреИрдХ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ "Searching..." рддрд╛рдХрд┐ рдпреВрдЬрд╝рд░ рдХреЛ рдкрддрд╛ рдЪрд▓реЗ рдХрд┐ рдРрдк рдиреЗ рдЙрдирдХреА рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╕реБрдиреА рд╣реИред

рдЕрдзрд┐рдХрд╛рдВрд╢ slow list audits рдореЗрдВ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реА рдкрд╛рдБрдЪ рдЧрд▓рддрд┐рдпрд╛рдБ:

  • рд╕реВрдЪреА рдХреЛ virtualize рдХрд░ рджрд┐рдпрд╛, рдкрд░ рд╣рд░ visible рд░реЛ рдореЗрдВ рдорд╣рдВрдЧреЗ рд╕реЗрд▓ (images, charts, complex components) рд░рдЦреЗ рд░рд╣реЗ
  • indexтАСbased keys рдХрд╛ рдЙрдкрдпреЛрдЧ, рдЬрд┐рд╕рд╕реЗ rows sort/update рдкрд░ remount рд╣реЛрддреЗ рд╣реИрдВ
  • рд╕рд░реНрдЪ рдХреЛ рдЗрддрдирд╛ рд▓рдВрдмрд╛ debounce рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд▓реИрдЧ рдЬреИрд╕рд╛ рд▓рдЧреЗ
  • broad reactive changes рд╕реЗ requests рдЯреНрд░рд┐рдЧрд░ рдХрд░рдирд╛ (рдкреВрд░реЗ filter object рдХреЛ watch рдХрд░рдирд╛, URL state рдХреЛ рдмрд╣реБрдд рдмрд╛рд░ sync рдХрд░рдирд╛)
  • global page loader рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬреЛ scroll position рдорд┐рдЯрд╛ рджреЗрддрд╛ рд╣реИ рдФрд░ рдлреЛрдХрд╕ рдЪреБрд░рд╛ рд▓реЗрддрд╛ рд╣реИ

рдЕрдЧрд░ рдЖрдк Vue 3 рдПрдбрдорд┐рди UI рдкреНрд░рджрд░реНрд╢рди рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ "рдХреНрдпрд╛ reтАСrenders рд╣реЛрддрд╛ рд╣реИ" рдФрд░ "рдХреНрдпрд╛ refetch рд╣реЛрддрд╛ рд╣реИ" рдХреЛ рдкреНрд░рд╛рдердорд┐рдХ рд╕рдорд╕реНрдпрд╛ рд╕рдордЭреЗрдВред

рддреНрд╡рд░рд┐рдд рдкреНрд░рджрд░реНрд╢рди рдЪреЗрдХрд▓рд┐рд╕реНрдЯ

рдЬрдм рдЯреЗрдмрд▓ рдпрд╛ рд▓рд┐рд╕реНрдЯ рдЪрд┐рдкрдЪрд┐рдкреА рд▓рдЧрдиреЗ рд▓рдЧреЗ рддреЛ рдЗрд╕ рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд▓рдХреНрд╖реНрдп рд╕реНрдореВрдж рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ, predictable рд╕рд░реНрдЪ, рдФрд░ рдХрдо рдЕрдирдкреЗрдХреНрд╖рд┐рдд reтАСrenders рд╣реИред

Rendering рдФрд░ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ

рдЬреНрдпрд╛рджрд╛рддрд░ "slow list" рд╕рдорд╕реНрдпрд╛рдПрдБ рдмрд╣реБрдд рдЬрд╝реНрдпрд╛рджрд╛ рдФрд░ рдмрд╛рд░тАСрдмрд╛рд░ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рд╕реЗ рдЖрддреА рд╣реИрдВред

  • рдЕрдЧрд░ рд╕реНрдХреНрд░реАрди рд╕реИрдХрдбрд╝реЛрдВ рд░реЛреЫ рджрд┐рдЦрд╛ рд╕рдХрддреА рд╣реИ рддреЛ virtualization рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ DOM рдореЗрдВ рдХреЗрд╡рд▓ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реА рдЪреАрдЬрд╝реЗрдВ рд╣реЛрдВ (рдФрд░ рдереЛрдбрд╝рд╛ buffer)
  • рд░реЛ рд╣рд╛рдЗрдЯ рдХреЛ рд╕реНрдерд┐рд░ рд░рдЦреЗрдВред рд╡реИрд░рд┐рдПрдмрд▓ рд╣рд╛рдЗрдЯреНрд╕ virtualization рддреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬрдВрдХ рдкреИрджрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
  • inline props рдХреЗ рд░реВрдк рдореЗрдВ рдирдИ objects/arrays рдкрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВ (рдЬреИрд╕реЗ :style="{...}")тАФрдЙрдиреНрд╣реЗрдВ рдПрдХ рдмрд╛рд░ рдмрдирд╛рдХрд░ reuse рдХрд░реЗрдВ
  • row рдбреЗрдЯрд╛ рдкрд░ deep watchers рдХреЗ рд╕рд╛рде рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВред computed рдорд╛рди рдФрд░ targeted watches рдкрд╕рдВрдж рдХрд░реЗрдВ
  • рд╕реНрдерд┐рд░ keys рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░рд┐рдХреЙрд░реНрдб ids рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реЛрдВ, рди рдХрд┐ array index рд╕реЗ

рд╕рд░реНрдЪ, рд▓реЛрдбрд┐рдВрдЧ, рдФрд░ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯреНрд╕

рдиреЗрдЯрд╡рд░реНрдХ рдзреАрдорд╛ рд╣реЛрдиреЗ рдкрд░ рднреА рд▓рд┐рд╕реНрдЯ рдХреЛ рддреЗрдЬрд╝ рдорд╣рд╕реВрд╕ рдХрд░рд╛рдПрдБред

  • рд╕рд░реНрдЪ рдХреЛ 250тАУ400 ms рдХреЗ рдЖрд╕рдкрд╛рд╕ debounce рдХрд░реЗрдВ, рдЗрдирдкреБрдЯ рдореЗрдВ рдлреЛрдХрд╕ рд░рдЦреЗрдВ, рдФрд░ stale requests cancel рдХрд░реЗрдВ рддрд╛рдХрд┐ рдкреБрд░рд╛рдиреЗ рд░рд┐рдЬрд╝рд▓реНрдЯ рдирдП рдХреЛ overwrite рди рдХрд░ рд╕рдХреЗрдВ
  • рдирдП рд░рд┐рдЬрд╝рд▓реНрдЯ рд▓реЛрдб рд╣реЛрдиреЗ рддрдХ рдореМрдЬреВрджрд╛ рд░рд┐рдЬрд╝рд▓реНрдЯреНрд╕ рд╕реНрдХреНрд░реАрди рдкрд░ рд░рдЦреЗрдВред рдЯреЗрдмрд▓ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреА рдмрдЬрд╛рдп рд╕реВрдХреНрд╖реНрдо "updating" state рджрд┐рдЦрд╛рдПрдБ
  • pagination рдХреЛ predictable рд░рдЦреЗрдВ (fixed page size, рд╕рд╛рдл next/prev рд╡реНрдпрд╡рд╣рд╛рд░, рдХреЛрдИ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд░рд┐рд╕реЗрдЯ рдирд╣реАрдВ)
  • рд╕рдВрдмрдВрдзрд┐рдд рдХреЙрд▓реНрд╕ рдХреЛ batch рдХрд░реЗрдВ рдпрд╛ parallel рдореЗрдВ рд▓рд╛рдПрдБ, рдлрд┐рд░ рдПрдХ рдмрд╛рд░ рд░реЗрдВрдбрд░ рдХрд░реЗрдВ
  • рдХрд┐рд╕реА filter рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдЖрдЦрд┐рд░реА successful response cache рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрдо view рдкрд░ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реА рдЕрдиреБрднрд╡ instantaneous рд▓рдЧреЗ

рдЙрджрд╛рд╣рд░рдг: рд▓реЛрдб рдХреЗ рджреМрд░рд╛рди рдПрдХ рдЯрд┐рдХрдЯрд┐рдВрдЧ рдПрдбрдорд┐рди рд╕реНрдХреНрд░реАрди

рд╕рд░реНрдЪ рдХреЛ рддреНрд╡рд░рд┐рдд рдорд╣рд╕реВрд╕ рдХрд░рд╛рдПрдВ
рд╣рд░ рдПрдбрдорд┐рди рд╕реНрдХреНрд░реАрди рдкрд░ рд╕реБрд╕рдВрдЧрдд рд╕рд░реНрдЪ рдлрд╝реНрд▓реЛ рдФрд░ рд╢рд╛рдВрдд рд▓реЛрдбрд┐рдВрдЧ рд╕реНрдЯреЗрдЯ рдмрдирд╛рдПрдВред
AppMaster рдЖрдЬрд╝рдорд╛рдПрдВ

рдПрдХ рд╕рдкреЛрд░реНрдЯ рдЯреАрдо рдкреВрд░реЗ рджрд┐рди рдПрдХ рдЯрд┐рдХрдЯрд┐рдВрдЧ рд╕реНрдХреНрд░реАрди рдЦреБрд▓реА рд░рдЦрддреА рд╣реИред рд╡реЗ рдЧреНрд░рд╛рд╣рдХ рдирд╛рдо, рдЯреИрдЧ рдпрд╛ рдСрд░реНрдбрд░ рдирдВрдмрд░ рд╕реЗ рд╕рд░реНрдЪ рдХрд░рддреЗ рд╣реИрдВ рдЬрдмрдХрд┐ рдПрдХ рд▓рд╛рдЗрд╡ рдлреАрдб рдЯрд┐рдХрдЯ рд╕реНрдЯреЗрдЯрд╕ рдЕрдкрдбреЗрдЯ рдХрд░рддреА рд░рд╣рддреА рд╣реИ (рдирдП рд░рд┐рдкреНрд▓рд╛рдИ, рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдмрджрд▓рд╛рд╡, SLA рдЯрд╛рдЗрдорд░реНрд╕)ред рдЯреЗрдмрд▓ рдЖрд╕рд╛рдиреА рд╕реЗ 10,000 рд░реЛреЫ рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддреА рд╣реИред

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

рдХреНрдпрд╛ рдмрджрд▓рд╛ рдЧрдпрд╛:

  • рд╕рд░реНрдЪ рдЗрдирдкреБрдЯ рдХреЛ 250тАУ400 ms рдкрд░ рдбреЗрдмрд╛рдЙрдиреНрд╕ рдХрд┐рдпрд╛ рдФрд░ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реБрдХреЗ рд╣реЛрдиреЗ рдкрд░ рдХреНрд╡реЗрд░реА рдХреА рдЧрдИ
  • рдирдпрд╛ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдлреНрд▓рд╛рдЗрдЯ рдореЗрдВ рд░рд╣рддреЗ рд╣реБрдП рдкрд┐рдЫрд▓реЗ рд░рд┐рдЬрд╝рд▓реНрдЯреНрд╕ рдХреЛ рджрд┐рдЦрд╛рдпрд╛ рд░рдЦрд╛ рдЧрдпрд╛
  • рд░реЛреЫ рдХреЛ virtualize рдХрд┐рдпрд╛ рдЧрдпрд╛ рддрд╛рдХрд┐ DOM рдХреЗрд╡рд▓ visible рд░реЛреЫ рд░рдЦреЗ
  • рдЯрд┐рдХрдЯ рд░реЛ рдХреЛ memoize рдХрд┐рдпрд╛ рдЧрдпрд╛ рддрд╛рдХрд┐ unrelated рд▓рд╛рдЗрд╡ рдЕрдкрдбреЗрдЯреНрд╕ рдкрд░ рд╡рд╣ reтАСrender рди рд╣реЛ
  • рднрд╛рд░реА рд╕реЗрд▓ рдХрдВрдЯреЗрдВрдЯ (avatars, rich snippets, tooltips) рдХреЛ lazyтАСload рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреЗрд╡рд▓ рддрдм рдЬрдм рд░реЛ рджреГрд╢реНрдп рдореЗрдВ рд╣реЛ

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

Virtualization рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рд╡рд┐рдЬреБрдЕрд▓ рд╕реБрдзрд╛рд░ рдерд╛: рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдм рдПрдХ рд╕рд╛рде рд╣рдЬрд╛рд░реЛрдВ рд░реЛреЫ рдирд╣реАрдВ рд╕рдВрднрд╛рд▓ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╕реНрдХреНрд░реЙрд▓ рд╕реНрдореВрдж рд░рд╣рд╛ред рд░реЛ memoize рдХрд░рдиреЗ рд╕реЗ рдПрдХ рдЕрд▓рдЧ рдЯрд┐рдХрдЯ рдмрджрд▓рдиреЗ рдкрд░ "рдкреВрд░реА рдЯреЗрдмрд▓" рдЕрдкрдбреЗрдЯ рд░реБрдХ рдЧрдИред

рдПрдХ рдФрд░ рд╕реБрдзрд╛рд░ рд▓рд╛рдЗрд╡ рдлреАрдб рдХреЗ рд▓рд┐рдП рдорджрджрдЧрд╛рд░ рд░рд╣рд╛: рдЕрдкрдбреЗрдЯреНрд╕ рдХреЛ рдмреИрдЪ рдХрд░ рдХреЗ рдХреБрдЫ рд╕реМ рдорд┐рд▓рд┐рд╕реЗрдХрдВрдб рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рддрд╛рдХрд┐ UI рд▓рдЧрд╛рддрд╛рд░ reflow рди рд╣реЛред

рдкрд░рд┐рдгрд╛рдо: рд╕реНрдерд┐рд░ рд╕реНрдХреНрд░реЙрд▓, рддреЗрдЬрд╝ рдЯрд╛рдЗрдкрд┐рдВрдЧ, рдФрд░ рдХрдо рдЪреМрдВрдХрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмрджрд▓рд╛рд╡ред

рдЕрдЧрд▓реЗ рдХрджрдо: рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрдирд╛рдПрдВ

рдПрдХ рддреЗрдЬрд╝ рдПрдбрдорд┐рди UI рдХреЛ рддреЗрдЬрд╝ рдмрдирд╛рдП рд░рдЦрдирд╛ рдмрд╛рдж рдореЗрдВ рдЙрд╕реЗ рдмрдЪрд╛рдиреЗ рд╕реЗ рдЖрд╕рд╛рди рд╣реИред рдЗрд╕ рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдХреЛ рд╣рд░ рдирдП рд╕реНрдХреНрд░реАрди рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдмрдирд╛рдПрдВ, рди рдХрд┐ рдПрдХтАСрдмрд╛рд░ рдХрд╛ рдХреНрд▓реАрдирдЕрдкред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЙрди рдлрд┐рдХреНрд╕реЗрд╕ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдпреВрдЬрд╝рд░реНрд╕ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВред рдмрдбрд╝рд╛ рд▓рд╛рдн рдЖрдо рддреМрд░ рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдХрдо рдбреНрд░реЙ рдХрд░рдиреЗ рдФрд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдкрд░ рддреЗрдЬрд╝реА рд▓рд╛рдиреЗ рд╕реЗ рдЖрддрд╛ рд╣реИред

рдмреБрдирд┐рдпрд╛рджреА рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ: DOM рд╕рд╛рдЗрдЬ рдШрдЯрд╛рдПрдБ (рд▓рдВрдмреА рд╕реВрдЪрд┐рдпрд╛рдБ virtualize рдХрд░реЗрдВ, рдЫрд┐рдкреА рд╣реБрдИ рд░реЛреЫ рди рд░реЗрдВрдбрд░ рдХрд░реЗрдВ), рдлрд┐рд░ рдЗрдирдкреБрдЯ рдбрд┐рд▓реЗ рдШрдЯрд╛рдПрдБ (рд╕рд░реНрдЪ рдбреЗрдмрд╛рдЙрдиреНрд╕ рдХрд░реЗрдВ, рднрд╛рд░реА рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЛ рд╣рд░ рдХреАтАСрд╕реНрдЯреНрд░реЛрдХ рд╕реЗ рд╣рдЯрд╛рдПрдБ), рдлрд┐рд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕реНрдерд┐рд░ рдХрд░реЗрдВ (row рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ memoize рдХрд░реЗрдВ, props рд╕реНрдерд┐рд░ рд░рдЦреЗрдВ)ред рдЫреЛрдЯреЗ рд░рд┐рдлреИрдХреНрдЯрд░реНрд╕ рдЕрдВрдд рдореЗрдВ рд░рдЦреЗрдВред

рдЙрд╕рдХреЗ рдмрд╛рдж, рдХреБрдЫ guardrails рдЬреЛрдбрд╝реЗрдВ рддрд╛рдХрд┐ рдирдИ рд╕реНрдХреНрд░реАрди regress рди рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг: рдХреЛрдИ рднреА рд╕реВрдЪреА 200 рд░реЛреЫ рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рд╣реЛ рддреЛ virtualization рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдХреЛрдИ рднреА рд╕рд░реНрдЪ рдЗрдирдкреБрдЯ рдбреЗрдмрд╛рдЙрдиреНрд╕ рд╣реЛ, рдФрд░ рд╣рд░ рд░реЛ рдореЗрдВ рд╕реНрдерд┐рд░ id key рд╣реЛред

Reusable рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдмреНрд▓реЙрдХреНрд╕ рд╕реЗ рдпрд╣ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред рдПрдХ virtual table рдХрдВрдкреЛрдиреЗрдВрдЯ sensible defaults рдХреЗ рд╕рд╛рде, рдбреЗрдмрд╛рдЙрдиреНрд╕ рдЗрдирдмрд┐рд▓реНрдЯ рд╕рд░реНрдЪ рдмрд╛рд░, рдФрд░ рдЯреЗрдмрд▓ рд▓реЗрдЖрдЙрдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╕реНрдХреЗрд▓реЗрдЯрди/empty states рдПрдХ wiki рдкреЗрдЬ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдЕрд╕рд░ рдХрд░рддреЗ рд╣реИрдВред

рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЖрджрдд: рдХрд┐рд╕реА рднреА рдирдП рдПрдбрдорд┐рди рд╕реНрдХреНрд░реАрди рдХреЛ merge рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 10x рдбреЗрдЯрд╛ рдФрд░ slowтАСnetwork preset рдХреЗ рд╕рд╛рде рдЯреЗрд╕реНрдЯ рдХрд░реЗрдВред рдЕрдЧрд░ рддрдм рднреА рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗ рддреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╡рд╣ рд╢рд╛рдирджрд╛рд░ рд▓рдЧреЗрдЧрд╛ред

рдЕрдЧрд░ рдЖрдк рдЬрд▓реНрджреА рд╕реЗ internal tools рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпреЗ рдкреИрдЯрд░реНрди рд╕реНрдХреНрд░реАрди рднрд░ рдореЗрдВ рдХрдВрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рд░рд╣реЗрдВ, рддреЛ AppMaster (appmaster.io) рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ Vue 3 рд╡реЗрдм рдРрдкреНрд╕ рдЬрдирд░реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрдм рдХреЛрдИ рд▓рд┐рд╕реНрдЯ рднрд╛рд░реА рд╣реЛ рддреЛ рд╡рд╣реА рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓рд┐рдВрдЧ рдФрд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓рд╛рдЧреВ рд╣реЛрдЧрд╛ред

рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╢реНрди

рдзреАрдореА Vue 3 рдПрдбрдорд┐рди рдЯреЗрдмрд▓ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рдкрд╣рд▓рд╛ рдлрд┐рдХреНрд╕ рдХреНрдпрд╛ рд╣реИ?

рдЖрдорддреМрд░ рдкрд░ 100s рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рд░реЛреЫ рд░реЗрдВрдбрд░ рдХрд░ рд░рд╣реЗ рд╣реЛрдВ рддреЛ рдкрд╣рд▓реЗ virtualization рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВред рдпрд╣ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ тАЬрдорд╣рд╕реВрд╕тАЭ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╕реБрдзрд╛рд░ рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрдХреНрд░реЙрд▓ рдХреЗ рджреМрд░рд╛рди рд╣рдЬрд╛рд░реЛрдВ DOM рдиреЛрдбреНрд╕ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред

рдореИрдВ рдХреИрд╕реЗ рдмрддрд╛рдКрдБ рдХрд┐ рд╕реНрд▓ slowdown рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╣реИ рдпрд╛ API?

рдЬрдм рд╕реНрдХреНрд░реЙрд▓ рдХреЗ рджреМрд░рд╛рди рдлрд╝реНрд░реЗрдо рдбреНрд░реЙрдк рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдЕрдХреНрд╕рд░ рдпрд╣ rendering/DOM рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИред рдЬрдм UI рд╕реНрдореВрдж рд░рд╣рддрд╛ рд╣реИ рдкрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрд░ рд╕реЗ рдЖрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдиреЗрдЯрд╡рд░реНрдХ рдпрд╛ рд╕рд░реНрд╡рд░тАСрд╕рд╛рдЗрдб рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреА рд╡рдЬрд╣ рд╣реЛрддреА рд╣реИ; рдЗрд╕реЗ cached рдбреЗрдЯрд╛ рдпрд╛ рд▓реЛрдХрд▓ рдлрд╛рд╕реНрдЯ рд░рд┐рд╕реНрдкреЙрдиреНрд╕ рдХреЗ рд╕рд╛рде рдЯреЗрд╕реНрдЯ рдХрд░рдХреЗ рдХрдиреНрдлрд░реНрдо рдХрд░реЗрдВред

рдЯреЗрдмрд▓ рдореЗрдВ тАЬvirtualizationтАЭ рдЕрд╕рд▓ рдореЗрдВ рдХреНрдпрд╛ рдмрджрд▓рддрд╛ рд╣реИ?

Virtualization рдХреЗрд╡рд▓ viewport рдореЗрдВ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рд░реЛреЫ (рдФрд░ рдереЛрдбрд╝рд╛ buffer) рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ dataset рдХреЗ рд╕рднреА рд░реЛреЫ рдХреЛред рдЗрд╕рд╕реЗ DOM рд╕рд╛рдЗрдЬ, рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдФрд░ рд╕реНрдХреНрд░реЛрд▓ рдХреЗ рджреМрд░рд╛рди рдмреНрд░рд╛рдЙрдЬрд╝рд░/рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдХрд╛рдо рдХрдо рд╣реЛрддрд╛ рд╣реИред

рдореЗрд░реА virtualized рд╕реВрдЪреА рдХреНрдпреВрдБ jumpy рдпрд╛ рдЕрд╕реНрдерд┐рд░ рдорд╣рд╕реВрд╕ рд╣реЛрддреА рд╣реИ?

рдХрдВрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рд░реЛ рд╣рд╛рдЗрдЯ рд░рдЦреЗрдВ рдФрд░ рдРрд╕реЗ рдХрдВрдЯреЗрдВрдЯ рд╕реЗ рдмрдЪреЗрдВ рдЬреЛ рд░реЗрдВрдбрд░ рдХреЗ рдмрд╛рдж рд╕рд╛рдЗрдЬ рдмрджрд▓ рджреЗред рдЕрдЧрд░ рд░реЛреЫ expand рдХрд░рддреЗ рд╣реИрдВ, wrap рд╣реЛрддреЗ рд╣реИрдВ рдпрд╛ рдЗрдореЗрдЬреЗрд╕ рд▓реЛрдб рд╣реЛрдХрд░ рд╣рд╛рдЗрдЯ рдмрджрд▓рддреА рд╣реИрдВ рддреЛ scroller рдХреЛ reтАСmeasure рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдпрд╣ jumpy рдмрдирд╛рддрд╛ рд╣реИред

рдПрдбрдорд┐рди рд╕рд░реНрдЪ рдХреЗ рд▓рд┐рдП рдХреМрдитАСрд╕рд╛ debounce delay рдЙрдкрдпреЛрдЧ рдХрд░реВрдБ?

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рддреМрд░ рдкрд░ ~250тАУ400 ms рдЕрдЪреНрдЫрд╛ рд░рд╣рддрд╛ рд╣реИред рдпрд╣ рдХрд╛рдлреА рдЫреЛрдЯрд╛ рд╣реИ рддрд╛рдХрд┐ рдЕрдиреБрднрд╡ responsive рд▓рдЧреЗ, рдФрд░ рдЗрддрдирд╛ рд▓рдВрдмрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХреАтАСрд╕реНрдЯреНрд░реЛрдХ рдкрд░ рдмрд╛рд░тАСрдмрд╛рд░ filtering рдФрд░ reтАСrendering рди рд╣реЛред

рдкреБрд░рд╛рдиреЗ рд╕рд░реНрдЪ рд░рд┐рдЬрд╝рд▓реНрдЯреНрд╕ рдХреЛ рдХреНрд░рдо рд╕реЗ рдмрд╛рд╣рд░ рдЖрдиреЗ рд╕реЗ рдХреИрд╕реЗ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдкрд┐рдЫрд▓рд╛ рдЕрдиреБрд░реЛрдз cancel рдХрд░ рджреЗрдВ рдпрд╛ рдкреБрд░рд╛рдиреЗ responses рдХреЛ ignore рдХрд░реЗрдВред рд▓рдХреНрд╖реНрдп рд╕рд░рд▓ рд╣реИ: рдХреЗрд╡рд▓ рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ query рд╣реА рдЯреЗрдмрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗ рддрд╛рдХрд┐ рдкреБрд░рд╛рдиреЗ responses рдирдП рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ overwrite рди рдХрд░ рд╕рдХреЗрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП AbortController рдХреЗ рд╕рд╛рде fetch рдпрд╛ рдЕрдкрдиреЗ HTTP рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА cancellation рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ, рдпрд╛ request id рдЯреНрд░реИрдХ рдХрд░реЗрдВ рдФрд░ рдкреБрд░рд╛рдиреА replies рдХреЛ рдЦрд╛рд░рд┐рдЬ рдХрд░ рджреЗрдВред

рдЯреЗрдмрд▓ рд░реЛреЫ рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ reтАСrenders рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдХрд┐рд╕ рдХрд╛рд░рдг рд╣реЛрддреЗ рд╣реИрдВ?

рдмрдбрд╝реЗ reactive objects рдХреЛ props рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВ рдЬрдм рд╕рд┐рд░реНрдлрд╝ рдХреБрдЫ рдлрд╝реАрд▓реНрдб рдЪрд╛рд╣рд┐рдП; рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдореЗрдВ рдирдП inline functions рдпрд╛ objects рдмрдирд╛рдиреЗ рд╕реЗ рд░реЛрдХреЗрдВред рдЬрдм props рдФрд░ handlers рдХреА identity рд╕реНрдерд┐рд░ рд░рд╣рддреА рд╣реИ рддреЛ рдмрдЪреНрдЪреЗ components рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ reтАСrender рдирд╣реАрдВ рдХрд░рддреЗред v-memo рдЬреИрд╕реА memoization рддрдХрдиреАрдХ рд╕реЗ рд╕реНрдерд┐рд░ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдмрдЪрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдлреЙрд░реНрдореИрдЯрд┐рдВрдЧ (рддрд┐рдерд┐рдпрд╛рдБ, рдореБрджреНрд░рд╛) рд╕реЗ рдЯреЗрдмрд▓ рдзреАрдорд╛ рд╣реЛрдиреЗ рд╕реЗ рдХреИрд╕реЗ рд░реЛрдХреВрдВ?

Formatting рдЬреИрд╕реЗ dates рдФрд░ currency рдХреЛ рд╣рд░ рдмрд╛рд░ рд░реЗрдВрдбрд░ рдкрд╛рде рдореЗрдВ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрд╛рдПрдБред рдЕрдЧреНрд░рд┐рдо рдореЗрдВ format рдХрд░реЗрдВ (computed map рдпрд╛ рд╕рд░реНрд╡рд░тАСрд╕рд╛рдЗрдб), рдпрд╛ cache рдХрд░рдХреЗ рд░рдЦреЗрдВ рдФрд░ рдХреЗрд╡рд▓ underlying рдбреЗрдЯрд╛ рдмрджрд▓рдиреЗ рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред

рдХреМрдитАСрд╕рд╛ рд▓реЛрдбрд┐рдВрдЧ рд╕реНрдЯреЗрдЯ рднрд╛рд░реА рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рддреЗрдЬрд╝ рдорд╣рд╕реВрд╕ рдХрд░рд╛рддрд╛ рд╣реИ?

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

рдХреНрдпрд╛ рдпреЗ Vue 3 рдкреНрд░рджрд░реНрд╢рди рд╕реБрдЭрд╛рд╡ AppMaster рд╕реЗ рдмрдирд╛рдП рдЧрдП рдПрдбрдорд┐рди UI рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ?

рд╣рд╛рдБ тАФ AppMaster (appmaster.io) рднреА рд░рд┐рдпрд▓ Vue 3 рд╡реЗрдм рдРрдкреНрд╕ рдЬрдирд░реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд╣реА рддрдХрдиреАрдХреЗрдВ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВ: reтАСrenders рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХрд░реЗрдВ, рд▓рдВрдмреА рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ virtualize рдХрд░реЗрдВ, рд╕рд░реНрдЪ рдбреЗрдмрд╛рдЙрдиреНрд╕ рдХрд░реЗрдВ, рдФрд░ рд░реЛреЫ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рд╕реНрдерд┐рд░ рдХрд░реЗрдВ; рдлрд░реНрдХ рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрди рдкреИрдЯрд░реНрдиреНрд╕ рдХреЛ рд╕реНрдХреНрд░реАрди рднрд░ рдореЗрдВ reusable рдмреНрд▓реЙрдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ est├бndar рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╢реБрд░реВ рдХрд░рдирд╛ рдЖрд╕рд╛рди
рдХреБрдЫ рдмрдирд╛рдПрдВ рдЕрджреНрднреБрдд

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

рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдУ
рддреЗрдЬрд╝ рднрд╛рд░реА рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП Vue 3 рдПрдбрдорд┐рди UI рдкреНрд░рджрд░реНрд╢рди рдЪреЗрдХрд▓рд┐рд╕реНрдЯ | AppMaster