рд╡рд╛рдбрд┐рди рдкреНрд░рд╡рд╛рд╣ - рдПрдХ рдЕрдЬреАрдм рд╣рд┐рд░рдг

рд╣рд░ рдмрджрд▓рд╛рд╡, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмреЗрд╣рддрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрджрд▓рд╛рд╡,
рд╣рдореЗрд╢рд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ

рд░рд┐рдЪрд░реНрдб рд╣реБрдХрд░

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╡рд╛рдбрд┐рди рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдЬрд╛рд╡рд╛ рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ:


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


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

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

рд╣рдо 7 рд╕рд╛рд▓ рд╕реЗ UI рдмреИрдХ рдСрдлрд┐рд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ CUBA рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдбрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рджреМрд░рд╛рди рд╣рдордиреЗ рдЙрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдмрд╣реБрдд рдЕрдиреБрднрд╡ рдЬрдорд╛ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрд╕рдХреЗ рднрд╛рдЧреНрдп рдХреА рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрдЯ рдХреЗ рддрд╣рдд рдЖрдкрдХреЛ рд╡рд╛рдбрд┐рди 10 рдкрд░ рдореЗрд░рд╛ рдЪрд╢реНрдорд╛ рдорд┐рд▓реЗрдЧрд╛ред

рд╡рд╛рджрд┐рди рдврд╛рдВрдЪрд╛


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

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

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



рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдХрдИ рдлрд╛рдпрджреЗ рд╣реИрдВ:

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

рдФрд░ рд╡рд┐рдкрдХреНрд╖:

  • UI рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
  • рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдореБрд╢реНрдХрд┐рд▓ рд╣реИ
  • рд╡рд┐рдЬреЗрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЬрд╛рд╡рд╛ рдПрдкреАрдЖрдИ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ

рдЗрди minuses рдФрд░ pluses рдХреЗ рдЖрдзрд╛рд░ рдкрд░, Vaadin FW рдЙрджреНрдпрдо рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдмрд╕ рдЧрдпрд╛, рдЬрд╣рд╛рдВ рднрд╛рд░ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдпреЛрдЧреНрдп рд╣реИрдВ, рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреА рдЧрддрд┐ рдФрд░ рдЖрд╕рд╛рдиреА рд▓реЛрд╣рд╛ рдФрд░ рд╕реНрдореГрддрд┐ рдХреА рд▓рд╛рдЧрдд рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

Google рд╡реЗрдм рдЯреВрд▓рдХрд┐рдЯ рдХрд╛ рдХреНрдпрд╛ рд╣реБрдЖ


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

рд╣рд╛рд▓ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, Google рд╡реЗрдм рдЯреВрд▓рдХрд┐рдЯ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдФрд░ 2015 рдХреЗ рдмрд╛рдж рд╕реЗ рд╣рдо рд╕рднреА GWT 3.0 / J2CL рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреА рдШреЛрд╖рдгрд╛ GWT.Create 2015 рдореЗрдВ рдХреА рдЧрдИ рд╣реИ:


рдЗрд╕ рд╕реНрдерд┐рд░ рдЕрд╡рдзрд┐ (2015-2017) рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдШрдЯрдирд╛ рдШрдЯрд┐рдд рд╣реБрдИ: рд╡реЗрдм рдШрдЯрдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдФрд░ рдПрдХ рдЕрдиреНрдп Google рд░реВрдкрд░реЗрдЦрд╛, рдкреЙрд▓рд┐рдорд░, рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ GWT рдХреЗ рдЕрдВрдд рдХреА рд╢реБрд░реБрдЖрдд рдереАред

рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ GWT 3 рдХреЛ рдЖрдВрддрд░рд┐рдХ Google рдврд╛рдВрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рдореБрджрд╛рдп рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЪрд▓ рд░рд╣реА рд╣реИред

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

рд╡реЗрдм рдШрдЯрдХ


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

рдореБрдЦреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ:

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЕрдм YouTube DOM рдЯреНрд░реА рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХрд╕реНрдЯрдо рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ рдФрд░ рд╢реИрдбреЛ DOM рдХрд╛ рдЙрдкрдпреЛрдЧ рдорд┐рд▓реЗрдЧрд╛:



рдпреЗ рд╕рднреА рдЪреАрдЬреЗрдВ рдЖрдкрдХреЛ рд╡реЗрдм рдХреЗ рд▓рд┐рдП рдирдП рдлреИрд╢рдиреЗрдмрд▓ UI рдШрдЯрдХ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред

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

рдкреЙрд▓рд┐рдорд░


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

//    import '@polymer/paper-checkbox/paper-checkbox.js'; import {PolymerElement, html} from '@polymer/polymer'; //    class LikeableElement extends PolymerElement { //      static get properties() { return { liked: Boolean }} //    DOM  , CSS      static get template() { return html` <style> .response { margin-top: 10px; } </style> <paper-checkbox checked="{{liked}}">I like web components.</paper-checkbox> <div hidden$="[[!liked]]" class="response">Web components like you, too.</div> `; } } //     customElements.define('likeable-element', LikeableElement); 

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

рд╡рд╛рдбрд┐рди рдШрдЯрдХ


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



рдпреЗ рдШрдЯрдХ рд╡реЗрдм рдШрдЯрдХ рдФрд░ рдкреЙрд▓рд┐рдорд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ!

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

рд╡рд╛рдбрд┐рди рдкреНрд░рд╡рд╛рд╣


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

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

рдлреНрд▓реЛ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдпрд╣ рдпреЛрдЬрдирд╛ рд╣реИ:



рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рдЕрд░реНрде рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

  • рдпреВрдЖрдИ рд░рд╛рдЬреНрдп рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рд╕рд░реНрд╡рд░ рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рд╣реИ
  • рд╕рд░реНрд╡рд░ рднрд╛рдЧ UI рдШрдЯрдХреЛрдВ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ AJAX рдЕрдиреБрд░реЛрдз рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
  • рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рд╕рд░реНрд╡рд░ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ UI рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдбреЗрдЯрд╛ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
  • рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдЬрд╛рд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
  • рдХреНрд▓рд╛рдЗрдВрдЯ HTML, CSS, JS рдФрд░ рдкреЙрд▓рд┐рдорд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ

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

рд╡рд╛рджрд┐рди рдордВрдЪ


рд╡реИрдбрд┐рди 10 рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдФрд░ рдЬреЗрдПрд╕ рджреБрдирд┐рдпрд╛ рдХреА рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкрд░рдВрдкрд░рд╛рдУрдВ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдЫреЛрдЯреЗ рдореЙрдбреНрдпреВрд▓ рдЬреЛ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдпрдерд╛рд╕рдВрднрд╡ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдШрдЯрдХреЛрдВ рдХрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рднрд╛рдЧ рдПрдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ JAR рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ WebJARs: www.webjenn.org

рдпрд╣ рдереЛрдбрд╝рд╛ рдбрд░рд╛рд╡рдирд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдк рдиреНрдпреВрдирддрдо рдбрд┐рдЬрд╛рдЗрди рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ:



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

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

рдпрд╣ рдорд╛рд╡реЗрди рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ :

 <dependencyManagement> <dependencies> <dependency> <groupId>com.vaadin</groupId> <artifactId>vaadin-bom</artifactId> <version>${vaadin.platform.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 

рд╡реИрдбрд┐рди 10 рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ


рдХреБрд▓, рдкреВрд░реЗ рдврд╛рдВрдЪреЗ рдореЗрдВ 3 рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ:

  1. рд╡рд╛рдбрд┐рди рдШрдЯрдХ - рд╕реАрдорд╛
  2. рд╡рд╛рджрд┐рди рдкреНрд░рд╡рд╛рд╣ - рдкрд░рд┐рд╡рд╣рди
  3. рд╕рд░реНрд╡рд░ рдШрдЯрдХ рдПрдкреАрдЖрдИ - рдпреВрдЖрдИ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдПрдкреАрдЖрдИ

рдпрд╣ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдПрдХ рдирдП рд╡реЗрдмрд┐рдирд╛рд░ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред

рд╕реНрдЯрд╛рд░реНрдЯрд░реНрд╕


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

рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдХреЗ рдЙрддреНрд╕рд╛рд╣реА рдкреНрд░рд╢рдВрд╕рдХ рд╕реАрдзреЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред spring.io рдФрд░ рд╡рд╣рд╛рдВ рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдмреАрдЪ рд╡рд╛рдбрд┐рди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред

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

 //  URL   @Route("") public class MainView extends VerticalLayout { public MainView() { //  UI   Button button = new Button("Click me"); //    button.addClickListener(event -> { new Notification("Hello!").open(); }); add(button); } } 

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдк Vaadin 10 рдкрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ Vaadin 8, BUT рдкрд░! рдЖрдкрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдШрдЯрдХ рдорд┐рд▓рд╛рди рдкреГрд╖реНрда рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рддрддреНрд╡ рдПрдкреАрдЖрдИ


рдХрд┐рд▓рд░ рд╕реБрд╡рд┐рдзрд╛ рд╡рд╛рдбрд┐рди 10 - рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдЬрд╛рд╡рд╛ рдХреЛрдб рд╕реЗ рдбреЛрдо рддрддреНрд╡реЛрдВ рдХреЛ рд╕реАрдзреЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИред

 Element nameField = ElementFactory.createInput(); nameField.setAttribute("id", "nameField"); nameField.setAttribute("placeholder", "John Doe"); nameField.setAttribute("autofocus", ""); 

рдЖрдк рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рднреА рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд┐рдкрдХрд╛рдП рдЧрдП рд╣реИрдВ:

 // "John Doe" String placeholder = nameField.getAttribute("placeholder"); // true nameField.hasAttribute("autofocus"); nameField.removeAttribute("autofocus"); // ["id", "placeholder"] nameField.getAttributeNames().toArray(); 

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

рдбреЗрдЯрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ


HasValue рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдореВрд▓реНрдп / рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ ValueChangeListener), рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрд╛рдЗрдВрдбрд░ рд╡рд░реНрдЧ рд╣реИ:

 Binder<Person> binder = new Binder<>(); TextField titleField = new TextField(); binder.forField(titleField) .bind( Person::getTitle, Person::setTitle); 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЙрджрд╛рд╣рд░рдг рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реИрдореНрдмрдбрд╛ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдЯреИрдЯрд┐рдХрд▓реА рдЯрд╛рдЗрдкрд┐рдВрдЧ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╕рдорд░реНрдерд┐рдд рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмрд╛рдЗрдВрдбрд░реНрд╕ рдореВрд▓реНрдпрд╡рд░реНрдзрдХ рдФрд░ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 binder.forField(yearOfBirthField) // Validator will be run with the String value of the field .withValidator(text -> text.length() == 4, "Doesn't look like a year") // Converter will only be run for strings with 4 characters .withConverter( new StringToIntegerConverter("Must enter a number")) // Validator will be run with the converted value .withValidator(year -> year >= 1900 && year < 2000, "Person must be born in the 20th century") .bind(Person::getYearOfBirth, Person::setYearOfBirth); 

рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕


HTML рдЯреЗрдореНрдкрд▓реЗрдЯ рдЯрд╛рдЗрдк рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

 <link rel="import" href="../bower_components/polymer/polymer-element.html"> <link rel="import" href="../bower_components/paper-input/paper-input.html"> <dom-module id="hello-world"> <template> <div> <paper-input id="inputId" value="{{userInput}}"></paper-input> <button id="helloButton" on-click="sayHello">Say hello</button> <div id="greeting">[[greeting]]</div> </div> </template> <script> class HelloWorld extends Polymer.Element { static get is() { return 'hello-world' } } customElements.define(HelloWorld.is, HelloWorld); </script> </dom-module> 

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

рдШрдЯрдирд╛рдХреНрд░рдо


рдШрдЯрдХ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ :

 TextField textField = new TextField(); textField.addChangeListener(e -> System.out.println("Event fired")); 

рдпрд╣рд╛рдВ рдЖрдк рд╡рд╛рдбрд┐рди 8 рдХреЗ рд╕рд╛рде рдЕрдВрддрд░ рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗред

рд░реВрдЯрд┐рдВрдЧ


рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдФрд░ рд░реВрдЯрд┐рдВрдЧ рд╡рд╣ рдмрди рдЧрдП рд╣реИрдВ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП :

 @Route("some/path") public class SomePathComponent extends Div { public SomePathComponent() { setText("Hello @Route!"); } } 

рджреГрд╢реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдХрд┐рд╕ URL рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдкрддреЗ рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдХрд┐рди рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдмрд╣реБрдд рдХреБрдЫред

рдШрдЯрдХ рд╡рд┐рдХрд╛рд╕


рд╡рд╛рдбрд┐рди 10 рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЛрдВ рд╕реЗ рдШрдЯрдХреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


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

рд▓реБрдореЛ рдереАрдо


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

 <custom-style> <style> html { --lumo-font-family: "Open Sans", sans-serif; } </style> </custom-style> 

рдФрд░ Valo рдереАрдо рдХреЛ рдирдП рдХрд╕реНрдЯрдо Lumo рдереАрдо рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



рд╡рд╛рдбрд┐рди рдПрдлрдбрдмреНрд▓реНрдпреВ 8 рдХреЗ рд╕рд╛рде рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛


рд╡рд╛рдбрд┐рди 8 рд╕реЗ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдк рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ: vaadin.com/docs/v10/flow/migration/1-migrating-v8-v10.html

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

рд╡рд╛рджрд┐рди 10 рдФрд░ рд╡рд╛рджрд┐рди 8 рдХрдИ рдкрд╣рд▓реБрдУрдВ рдореЗрдВ рд╕рдорд╛рди рд╣реИрдВ:

  • рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рджреГрд╖реНрдЯрд┐рдХреЛрдг
  • UI рддрд░реНрдХ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛
  • рдбреЗрдЯрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг

рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ: рд╡рд╛рдбрд┐рди 10 рдЦрд░реЛрдВрдЪ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдПрдХ рдирдпрд╛ рдврд╛рдВрдЪрд╛ рд╣реИ ред

рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╡рд╛рджреЗ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╡рд╛рдбрд┐рди 8 рдХреЛ 2022 рддрдХ рд╕рдорд░реНрдерди рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред

рдирд┐рд╖реНрдХрд░реНрд╖


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

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

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


All Articles