рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрдЬрд╛рдп рд╡реЗрдм рдШрдЯрдХ - рдПрдХ рдФрд░ рдкреНрд░рдпрд╛рд╕

рд╣реЗрд▓реЛ, рд╣реЗрдмреНрд░!

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

  • DOM рдПрдХ рд░рд╛рдЬреНрдп рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдврд╛рдВрдЪрд╛ рдирд╣реАрдВ рд╣реИ, рд╣рдо рддреБрд░рдВрдд рдХрд╛рд░реНрдпрд╛рддреНрдордХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рдУрдУрдкреА рдкрд░ рд▓реМрдЯ рдЖрддреЗ рд╣реИрдВред рд╡реЗрдм рдШрдЯрдХ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ DOM рдиреЛрдбреНрд╕ рд╣реИрдВ рдЬреЛ рдЕрдкрдиреЗ рд░рд╛рдЬреНрдп рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрдВ DOM рдХреЛ рди рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ, рдмрд▓реНрдХрд┐ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рднрдВрдбрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЙрдирдХреА рдмрд╛рддрдЪреАрдд рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдШрдЯрдХреЛрдВ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
  • рдШрдЯрдХреЛрдВ рдХреА рдмрд╛рддрдЪреАрддред рдЕрд╡рдпрд╡ рдкреНрд░рддреНрдпрдХреНрд╖ рдХреЙрд▓, рдХреЙрд▓рдмреИрдХ рдПрдХреНрд╕рдЪреЗрдВрдЬ, рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдбреЛрдо рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рд╡рд┐рдзрд┐ рд╕рдмрд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рдЬреБрдбрд╝рд╛рд╡ (рдпреБрдЧреНрдорди) рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдмрд╛рдВрдбреЛрдВ рдХреЗ рдЧреНрд░рд╛рдл рдХрд╛ рдЖрджреЗрд╢ рджреЗрддрд╛ рд╣реИ (рдиреАрдЪреЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ)ред
    DOM рдИрд╡реЗрдВрдЯ рдХреЗрд╡рд▓ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рднреАрддрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ - рд╡реЗ рдиреАрдЪреЗ рд╕реЗ рдкреВрд░реНрд╡рдЬреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рддрдХ рдкреЙрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рд╕рднреА рд╡рдВрд╢рдЬреЛрдВ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдорд╛рдирдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ API рдХрд╛ рдЙрдкрдпреЛрдЧ рдШрдЯрдХ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: document.querySelector ('рдкреЗрдЬ-рд╣реЛрдо'), рдФрд░ рдХреБрдЫ рдШрдЯрдХ рд╕реНрд╡рдпрдВ рдХреЛ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: APP.route ('рдкреЗрдЬ-рд▓реЙрдЧрд┐рди')ред
  • рдЖрдВрддрд░рд┐рдХ рд╢реИрд▓рд┐рдпреЛрдВред рд╢реИрдбреЛ рдбреЛрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдШрдЯрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рджреЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХрд╛ рдЕрдкрдирд╛ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ <style scoped> рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЖрдВрддрд░рд┐рдХ рд╢реИрд▓реА рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдШрдЯрдХ рдирд╛рдо рдЙрдкрд╕рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╢рд╛рдВрдд рд╣реИ рдФрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдиреАрдЪреЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ)ред
  • HTML / DOM рдХреЗ рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛ред рдЪреВрдВрдХрд┐ DOM рдПрдХ рд░рд╛рдЬреНрдп рд╣реИ, рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд HTML рддрддреНрд╡реЛрдВ рдХреЗ рдорд╛рди (рдорд╛рди, рдЬрд╛рдБрдЪ, рдЖрдВрддрд░рд┐рдХ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ HTML = "рд╕рддреНрдп" рдЖрджрд┐) рдХреЗ рдорд╛рди рд╣реИрдВред рдЕрддрд┐рд░рд┐рдХреНрдд JS рдЪрд░реЛрдВ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдФрд░ рдлреЙрд░реНрдо рд╡реИрд▓реНрдпреВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП - рд╣рдо рд╕рд┐рд░реНрдл рдЧреЗрдЯрд░реНрд╕ / рд╕реЗрдЯрд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреВрд░реНрд╡рдЬ рдСрдмреНрдЬреЗрдХреНрдЯ (рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ) рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдкреНрд░рдкрддреНрд░ рдорд╛рдиреЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдирд╛ рдЕрдм рд╡рд░реНрдЧ рдЪрд░ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡рд░реНрддрдорд╛рди рдШрдЯрдХ рдХреЗ <input> рдмрдЪреНрдЪреЗ рдореЗрдВ рджрд░реНрдЬ рдкрд╛рд╕рд╡рд░реНрдб рдорд╛рди рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рди рддреЛ рд╡рд░реНрдЪреБрдЕрд▓ DOM рдФрд░ рди рд╣реА рджреЛ-рддрд░рдлрд╝рд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрдм рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдкреНрд░рдкрддреНрд░реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдкреНрд░рдкрддреНрд░ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рджреМрд░рд╛рди рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдЖрдк рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд╢реБрджреНрдз рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
  • рдкрде рдкреНрд░рджрд░реНрд╢рдиред рдкреГрд╖реНрда рдШрдЯрдХ <рдореБрдЦреНрдп> рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рд░рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдмрд╛рд░ рдмрдирд╛рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╡реЗ рд╣рдЯрд╛рдП рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╕ рдЫрд┐рдкреЗ рд░рд╣рддреЗ рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЛ рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╢рд╢, рдФрд░ рдорд╛рдирдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмрдЯрди рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдШрдЯрдХ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рддреЗ рд╕рдордп, рдСрдирд░реВрдЯ () рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдк рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдВрд░рдЪрдирд╛


рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • рд░реВрдЯ рдШрдЯрдХ <app-app>, window.APP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдкреГрд╖реНрда рд░рд╛рдЙрдЯрд░ рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ;
  • рд╕рдВрджрд░реНрдн рдмрдЯрди рд╡рд╛рд▓реЗ рдкреИрдирд▓ (рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЕрд▓рдЧ рдШрдЯрдХ рдореЗрдВ рдирд╣реАрдВ рдбрд╛рд▓рд╛, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП <app-app> рд▓реЗрдЖрдЙрдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рдпрд╛);
  • рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдореЗрдиреВ (рдЕрд▓рдЧ рдШрдЯрдХ);
  • <рдореБрдЦреНрдп> рдХрдВрдЯреЗрдирд░ рдЬрд┐рд╕рдореЗрдВ рдкреГрд╖реНрда рдШрдЯрдХ рдЬреЛрдбрд╝реЗ рдЬрд╛рдПрдВрдЧреЗ: <рдкреГрд╖реНрда-рд╣реЛрдо>, <рдкреГрд╖реНрда-рд▓реЙрдЧрд┐рди>, <рдкреГрд╖реНрда-рдХрд╛рд░реНрдп> рдЬреИрд╕реЗ рд╣реА рд╡реЗ рдЦреЛрд▓рддреЗ рд╣реИрдВред

рдкреГрд╖реНрда рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рд╕рд╛рде рд╕реНрдЯреИрдХреНрдб рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдиреАрдЪреЗ-рдКрдкрд░ рдФрд░ рдКрдкрд░-рдиреАрдЪреЗ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

  • рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реНрдерд┐рддрд┐ рдФрд░ рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо <app-app> рдШрдЯрдХ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреЙрдк-рдЕрдк рдШрдЯрдирд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ <рдкреГрд╖реНрда-рд▓реЙрдЧрд┐рди> рдШрдЯрдХ рд╕реЗ рдЖрддрд╛ рд╣реИред
  • <App-app> рдШрдЯрдХ рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдорд░ рдЯрд┐рдХ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдкреНрд░рд╕рд╛рд░рдг рдШрдЯрдирд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдХреЛ рдиреАрдЪреЗ рднреЗрдЬрддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ <рдкреГрд╖реНрда-рдХрд╛рд░реНрдп> рдХреЗ рд╡рдВрд╢рдЬ рдореЗрдВ рдкрдХрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рдШрдЯрдХ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдбреЛрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдШрдЯрдирд╛рдУрдВ рдХреЛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЫреЛрдЯреЗ WcMixin.js рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдХреЛрдб рдХреА 200 рд╕реЗ рдХрдо рд▓рд╛рдЗрдиреЗрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдЖрдзреЗ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдПрдХреАрдХрд░рдг) рдХреЛ рднреА рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмрд╛рдХреА рд╕рдм рд╢реБрджреНрдз рд╡реЗрдирд┐рд▓рд╛ рд╣реИред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдШрдЯрдХ (рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреГрд╖реНрда) рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

import wcmixin from './WcMixin.js'

const me = 'page-login'
customElements.define(me, class extends HTMLElement {
   _but = null

   connectedCallback() {
      this.innerHTML = `
         <style scoped>
            ${me} {
               height: 90%; width: 100%;
               display: flex; flex-direction: column;
               justify-content: center; align-items: center;
            }
            ${me} input { width: 60%; }
         </style>
         <input w-id='userInp/user' placeholder='user'/> 
         <input w-id='passInp/pass' type='password' placeholder='password'/>
      `
      wcmixin(this)

      this.userInp.oninput = (ev) => {
         this.bubbleEvent('login-change', {logged: false, user: this.user})
      }

      this.passInp.onkeypress = (ev) => {
         if (ev.key === 'Enter') this.login()
      }
   }

   onRoute() {
      this.userInp.focus()
      this._but = document.createElement('button')
      this._but.innerHTML = 'Log in<br>тЗТ'
      this._but.onclick = () => this.login()
      this.bubbleEvent('set-buts', { custom: [this._but] })
   }

   async login() {
      APP.msg = 'Authorization...'
      this._but.disabled = true
      setTimeout(() => {
         this._but.disabled = false
         if (this.user) {
            this.bubbleEvent('login-change', {logged: true, user: this.user})
            APP.route('page-work')
         } else {
            APP.msg = 'Empty user !'
            this.userInp.focus()
         }
      }, 1500)
   }
})

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣рд╛рдВ рд╣рдо рдШрдЯрдХ рдХреА рд╕реНрдерд╛рдиреАрдп рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред рджреВрд╕рд░реЗ, HTML рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ рдХреЗрд╡рд▓ рдЧреИрд░-рдорд╛рдирдХ рд╡рд┐рд╢реЗрд╖рддрд╛ w-id = `` userInp / user 'рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред Wcmixin () рдлрд╝рдВрдХреНрд╢рди рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореМрдЬреВрджрд╛ рдШрдЯрдХ рдореЗрдВ рдЪрд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИ: this.userInp <рдЗрдирдкреБрдЯ> рддрддреНрд╡ рдХреЛ рд╣реА рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЬреЛ рдЖрдкрдХреЛ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд▓рдЯрдХрд╛рдП рдЬрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ), рдФрд░ рдпрд╣ .user рддрддреНрд╡ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо) рдХрд╛ рдорд╛рди рд╣реИред рдпрджрд┐ рддрддреНрд╡ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк w-id = `` / рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 'рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХреЗрд╡рд▓ рдорд╛рди рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

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

рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдШрдЯрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдкреИрдирд▓ рдХреЗ рдЙрдЪреНрдЪ рдШрдЯрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрд╣ рдЭреБрдХрд╛ рдирд╣реАрдВ рд╣реИред рд╡рд╣ рдмрд╕ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдКрдкрд░ рднреЗрдЬрддрд╛ рд╣реИ, рдФрд░ рдЬреЛ рднреА рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдбреЗрд╡рд▓рдкрд░ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред <рдкреГрд╖реНрда-рдХрд╛рд░реНрдп> рдШрдЯрдХ рдореЗрдВ <app-app> рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реЗ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

import wcmixin from './WcMixin.js'

const me = 'page-work'
customElements.define(me, class extends HTMLElement {

   connectedCallback() {
      this.innerHTML = `
         <p w-id='/msg'>Enter text:</p>
         <p w-id='textDiv/text' contenteditable='true'>1)<br>2)<br>3)</p>
      `
      wcmixin(this)

      this.addEventListener('notify-timer', (ev) => {
         this.msg = `Enter text (elapsed ${ev.val}s):`
      })
   }

   async onRoute() {
      this.textDiv.focus()
      document.execCommand('selectAll',false,null)
      const but = document.createElement('button')
      but.innerHTML = 'Done<br>тЗТ'
      but.onclick = () => alert(this.text)
      this.bubbleEvent('set-buts', { custom: [but] })
   }
})

рдФрд░ <app-app> рдШрдЯрдХ рдореЗрдВ рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

setInterval(() => {
   this._elapsed += 1
   this.drownEvent('notify-timer', this._elapsed)
}, 1000)

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

рджрд░рдЕрд╕рд▓, рдореИрдВ рдпрд╣реА рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

тЖТ  рдкреВрд░реНрдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛрдб

рдЖрдкрддреНрддрд┐рдпрд╛рдВ рдФрд░ рд╕реБрдЭрд╛рд╡


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

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

рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рджред

All Articles