Vue: рдпреВрдЖрдИ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдПрдкреАрдЖрдИ, рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреЛ рдХрдо рдХрд░рдирд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 27 рдЬреВрди 2017  ┬╖  46рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: vuejs/vue

рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдХрд┐рд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддреА рд╣реИ?

рдРрд╕реЗ рдХрдИ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдПрдХ Vue рдШрдЯрдХ рдХреЛ рдкрд╛рд╕ рдХреА рдЧрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдореВрд▓ рддрддреНрд╡ рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдмрд▓реНрдХрд┐ рдПрдХ рдЙрдк-рддрддреНрд╡ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ UI рдШрдЯрдХ рдореЗрдВ , рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд░реИрдкрд░ div рдмрдЬрд╛рдп input рддрддреНрд╡ рдореЗрдВ рдЧреБрдг рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ, рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдорд╛рддреНрд░рд╛ рдореЗрдВ рдкреНрд░реЙрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╕рднреА рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рдПрдХ рдкреНрд░рдкрддреНрд░ рддрддреНрд╡ рдкрд░ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдмреЗрдирдХрд╛рдм рдХрд░рдирд╛ рдЕрдХреНрд╕рд░ рд╡рд╛рдВрдЫрдиреАрдп рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдпрджрд┐ рддрддреНрд╡ рд░реВрдЯ рдирд╣реАрдВ рд╣реИ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, .native рд╕рдВрд╢реЛрдзрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ )

рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдПрдкреАрдЖрдИ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЪрд░реНрдЪрд╛ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ ред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, "рдЙрдЬрд╛рдЧрд░" рддрддреНрд╡ (рд╡рд╣ рдЬреЛ рдордирдорд╛рдиреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) рд╣рдореЗрд╢рд╛ рдореВрд▓ рддрддреНрд╡ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рдЕрд▓рдЧ рдЙрдЬрд╛рдЧрд░ рддрддреНрд╡ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдирд┐рд░реНрджреЗрд╢ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рдЪрд╛рд░:

  • v-expose (рд╢рд╛рдпрдж рдореЗрд░рд╛ рдирд┐рдЬреА рдкрд╕рдВрджреАрджрд╛)
  • v-expose-attrs (рд╢рд╛рдпрдж рд╕реНрдкрд╖реНрдЯ, рд▓реЗрдХрд┐рди рд▓рдВрдмрд╛)
  • v-main
  • v-primary

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

рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЬреЛ рдЕрдЪреНрдЫреА рд╣реЛ рд╕рдХрддреА рд╣реИрдВ:

  • рдпрджрд┐ рдирд┐рд░реНрджреЗрд╢ рдХрдИ рддрддреНрд╡реЛрдВ рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рджреЛрд╣рд░рд╛рдИ рдЬрд╛рдПрдВрдЧреА
  • рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрд╣рд╛рдВ рдХрд┐рд╕реА рддрддреНрд╡ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдмрд╕реЗрдЯ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, v-expose рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд╕рд░рдгреА рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП v-expose="class" рдпрд╛ v-expose="['class', 'type', 'placeholder']" )ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рддрддреНрд╡ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ (рдлрд┐рд░ рд╕реЗ, рдореВрд▓ рддрддреНрд╡ рдХреЗ рдмрдЬрд╛рдп), рд▓реЗрдХрд┐рди рдЕрдиреНрдп рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдореВрд▓ рддрддреНрд╡ рдпрд╛ рддрддреНрд╡ (рддрддреНрд╡реЛрдВ) рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдореВрд▓реНрдпрд╣реАрди v-expose .
discussion feature request

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@chrisvfritz рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢рд╛рдпрдж рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛:

  • рд░реВрдЯ рдиреЛрдб рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдСрдЯреЛ-рд╡рд┐рд░рд╛рд╕рдд рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░реЗрдВ
  • рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ $attributes рд░реВрдк рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП (рдирд╛рдордХрд░рдг tbd)
  • рдЖрдк рдЬрд╣рд╛рдВ рдЪрд╛рд╣реЗрдВ рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реА-рдмрд╛рдЗрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА $props рд╕рд╛рде рджрд┐рдЦрд╛рдпрд╛ рд╣реИ:
v-bind="$attributes"

рдЗрд╕рдХрд╛ JSX/рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорд╛рди рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдн рд╣реЛрдЧрд╛

рд╕рднреА 46 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рдореНрдо, рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкреНрд░реЙрдкреНрд╕ рдлреИрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП JSX рдпрд╛ createElement рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

https://github.com/doximity/vue-genome

рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рд╣рдо рд╕рднреА рдЗрдирдкреБрдЯ рдХреЛ рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рдФрд░ ux рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЗрдмрд▓ рдореЗрдВ рд▓рдкреЗрдЯрддреЗ рд╣реИрдВред рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рд╣рдо рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЬреЗрдПрд╕рдПрдХреНрд╕ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╕рднреА рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рд╣реИред

@Austio , рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рд╣реИ ... рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ ... рд╢рд╛рдпрдж рд╣рдо spread рдкреНрд░реЙрдкреНрд╕ рдХреЛ vue рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рд▓рд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдкрд╕рдВрдж рд╣реИред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реА-рдмрд╛рдЗрдВрдб рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рд╕реНрдерд┐рд░рддрд╛ рдХреЛ рддреЛрдбрд╝рдирд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрднреА-рдХрднреА рдореБрдЭреЗ рдореВрд▓ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП class рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдмрд╛рдзреНрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рддреЛ рдЧреЗрдЯрдЯрд░ рдФрд░ рд╕реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ:

рдШрдЯрдХ рдХреЗ рдЕрдВрджрд░, v-expose рдПрдВрдХрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ:

<input v-expose="foo" />

рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп:

<the-component v-define:foo="{propA: '', propB: ''}"></the-component>

<!-- or maybe use v-bind for it directly -->
<the-component :foo="{propA: '', propB: ''}"></the-component>

@jkzing , рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ, рдпрд╣ рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдкреНрд░рд╕рд╛рд░ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЖрдк @keyup.enter.prevent="myAction" рдХреЛ рдХреИрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ?

рдЖрдк рдХреЗрд╡рд▓ <the-component :foo="{'@keyup.enter.prevent': myAction}"></the-component> рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╕рднреА рд╕рдВрд╢реЛрдзрдХ рдЬреИрд╕реЗ enter рдФрд░ prevent рдХреЛ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ (рдЬреЛ рдХрд┐ vue-template-compiler рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ) рдПрдЯреАрдПрдо)

@ рдирд┐рдХрдореЗрд╕рд┐рдВрдЧ

рдпрд╣ рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдкреНрд░рд╕рд╛рд░ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ

рд╣рдо рдЬрд┐рд╕ рдЪреАрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдпреВрдЬрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕реНрдкреНрд░реЗрдб рдЬреИрд╕рд╛ рдХреБрдЫ рд▓рд╛рдирд╛ рд╣реИ

<the-component :foo="{'@keyup.enter.prevent': myAction}"></the-component>

@ рдПрдХ рд╡реА-рдСрди рд╢реЙрд░реНрдЯрд▓реИрдВрдб рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм prop (рд╡реА-рдмрд╛рдЗрдВрдб) рдирд╣реАрдВ рд╣реИред

@jkzing , рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдВрдХ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ v-on рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рднреА рд╣реИрдВ

@nickmessing рдЙрдо ... v-on рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рд╕рд╡рд╛рд▓ рд╣реИ , рдпрд╣ рдПрдХ рдЕрдиреНрдп рд╡рд┐рд╖рдп IMO рд╣реИ, рдЬреИрд╕реЗ рдЗрд╡реЗрдВрдЯ рдмрдмрд▓рд┐рдВрдЧред рдореИрдВ

@jkzing , рдШрдЯрдХ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЧреБрдгреЛрдВ рдХреЛ "рдЬрд╛рдиреЗ" рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, v-expose afaik рдХреА рдкреВрд░реА рдЕрд╡рдзрд╛рд░рдгрд╛ рдереА

@nickmessing , рдореВрд▓ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдПрдХ рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рдХреЛ attribute рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

@jkzing , рд╢рд╛рдпрдж рдирд╣реАрдВ, рд▓реЗрдХрд┐рди <my-awesome-text-input /> рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдП рдЬрд╣рд╛рдВ рдЖрдкрдХреЗ рдкрд╛рд╕> 9000 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░реЙрдкреНрд╕ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рдмрд╕ рдЙрди рд╕рднреА рдХреЛ <input /> рддрдХ рдкрд╣реБрдВрдЪрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдХрд╕реНрдЯрдо рдШрдЯрдХ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдЯрди рдХреЗ рдмрд┐рдирд╛ рд╣реИ рдХреЛрдб рдХрд╛ред

рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ v-bind="$props" рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдпрд╛ рдЖрдк рдЙрди рдкреНрд░реЙрдкреНрд╕ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдЖрдк рдПрдХ рдЗрдирдкреБрдЯ рдкрд░ рдПрдХ рд╕рд╛рде рдХрдИ рдкреНрд░реЙрдкреНрд╕ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реА-рдПрдХреНрд╕рдкреЛрдЬрд╝ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд░реИрдкрд░ рдШрдЯрдХреЛрдВ рдЬреИрд╕реЗ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрди рд╕рднреА рдПрдЪрдЯреАрдПрдордПрд▓ рдкреНрд░реЙрдкреНрд╕ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛

рддреЛ рдпрд╣
https://github.com/almino/semantic-ui-vue2/blob/master/src/elements/Input.vue#L9
рдмреЗрдВрдд рдХреЛ рдХрдо рдХрд░рдХреЗ v-bind="$props" рдпрд╛ v-bind="filteredProps" рдЬрд╣рд╛рдВ рдлрд╝рд┐рд▓реНрдЯрд░реНрдбрдкреНрд░реЙрдкреНрд╕ рдХреБрдЫ рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ

@cristijora рд╣рдо v-bind="someProps" рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрддреНрдпрдзрд┐рдХ рдЧреБрдг HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдПрдВрдЧреЗред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ v-bind= рдЙрди рд╕рднреА рдЧреБрдгреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЧрддрд┐рд╢реАрд▓ <component> рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдХреМрди рд╕реЗ рдкреНрд░реЛрдк рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП options.props рдФрд░ рдкреНрд░рдпреЛрдЧ lodash._pick ред

рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде рд╕рдВрднрд╡ рд╣реИ?

@posva , рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдкреНрд░рддрд┐ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╡реВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдлреИрд▓рддрд╛ рд╣реИ + рдХреБрдЫ рдШрдЯрдирд╛ рдкреНрд░рдЪрд╛рд░

@posva рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЧрд▓рдд рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореЗрд░рд╛ рдорддрд▓рдм рд╕рд┐рд░реНрдл рдПрдХ "рд╡рд┐рд╢реЗрд╖ рд╡рд┐рд╢реЗрд╖рддрд╛" рд╣реИред

@chrisvfritz рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдкреАрдЖрдИ рдкрд░ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдХрд┐ рдХреНрдпрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдмрдЪреНрдЪреЗ рдХреЛ рдХреИрд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реИ)

рдореИрдВ рдЗрд╕реЗ рдЕрд╡рдзрд╛рд░рдгрд╛ рдкреНрд░рджрд╛рди/рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╕рдорд╛рди рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ред

@Austio рдореИрдВ рд╢рд╛рдпрдж рдЗрд╕ рд╕рд╡рд╛рд▓ рдХреЛ рд╕рдордЭ рдирд╣реАрдВ

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

рдУрд╣ рд╕рдордЭрд╛ред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬрд╛рдирдХрд╛рд░реА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╣рд╛рд░рд╛ рдФрд░ рд╕реНрд▓реЙрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ - рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рдирд┐рдЬреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ this.$parent рд╕рд╛рде рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕ рдкреИрдЯрд░реНрди рд╕реЗ рдмрдЪрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред

@Austio рдХреНрдпрд╛ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ?

@chrisvfritz рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢рд╛рдпрдж рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛:

  • рд░реВрдЯ рдиреЛрдб рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдСрдЯреЛ-рд╡рд┐рд░рд╛рд╕рдд рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░реЗрдВ
  • рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ $attributes рд░реВрдк рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП (рдирд╛рдордХрд░рдг tbd)
  • рдЖрдк рдЬрд╣рд╛рдВ рдЪрд╛рд╣реЗрдВ рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реА-рдмрд╛рдЗрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА $props рд╕рд╛рде рджрд┐рдЦрд╛рдпрд╛ рд╣реИ:
v-bind="$attributes"

рдЗрд╕рдХрд╛ JSX/рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорд╛рди рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдн рд╣реЛрдЧрд╛

@LinusBorg рдореБрдЭреЗ рдЖрдкрдХреЗ рд╕реЛрдЪрдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдкрд╕рдВрдж рд╣реИред ЁЯШД рдЖрдкрдХрд╛ рддрд░реАрдХрд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рд╣рдЬ рд╣реИред

рдПрдХ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде, Vue рдХрд╛ рдЕрдЧрд▓рд╛ рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рд╡рд┐рд╢реЗрд╖рддрд╛ рдСрдЯреЛ-рд╡рд┐рд░рд╛рд╕рдд рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдХреНрд░реЙрд╕-рдШрдЯрдХ рд╕рдВрдЪрд╛рд░ рджреЛрдиреЛрдВ рдкрдХреНрд╖реЛрдВ рдкрд░ рд╕реНрдкрд╖реНрдЯ рд░рд╣ рд╕рдХреЗред

рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдХрдо рдХрд░рдирд╛ рдпрд╛ рд╣рдЯрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд╣рд╛рдБред

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

рд╕рдВрднрд╛рд╡рд┐рдд рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдШрдЯрдХреЛрдВ рдореЗрдВ context.data.attributes рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рдШрдЯрдХреЛрдВ рдХреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧреАред

рд╣рд╛рдБ рдмрд┐рд▓реНрдХреБрд▓ред рдореЗрд░реЗ рдорди рдореЗрдВ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рдпреВрдЖрдИ рдШрдЯрдХ рд▓реЗрдЦрдХреЛрдВ (рддреГрддреАрдп рдкрдХреНрд╖ рдФрд░ рдЖрдВрддрд░рд┐рдХ рджреЛрдиреЛрдВ) рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдирд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдРрд╕реЗ рдмрд╣реБрдд рд╕реЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдРрд╕рд╛ рдХреБрдЫ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:

<input
  v-bind:id="id"
  v-bind:accept="accept"
  v-bind:alt="alt"
  v-bind:autocomplete="autocomplete"
  v-bind:autofocus="autofocus"
  v-bind:checked="checked"
  v-bind:dirname="dirname"
  v-bind:disabled="disabled"
  v-bind:form="form"
  v-bind:formaction="formaction"
  v-bind:formenctype="formenctype"
  v-bind:formmethod="formmethod"
  v-bind:formnovalidate="formnovalidate"
  v-bind:formtarget="formtarget"
  v-bind:list="list"
  v-bind:max="max"
  v-bind:maxlength="maxlength"
  v-bind:min="min"
  v-bind:multiple="multiple"
  v-bind:name="name"
  v-bind:pattern="pattern"
  v-bind:placeholder="placeholder"
  v-bind:readonly="readonly"
  v-bind:required="required"
  v-bind:src="src"
  v-bind:step="step"
  v-bind:type="type"
  v-bind:value="value"
  v-on:keydown="emitKeyDown"
  v-on:keypress="emitKeyPress"
  v-on:keyup="emitKeyUp"
  v-on:mouseenter="emitMouseEnter"
  v-on:mouseover="emitMouseOver"
  v-on:mousemove="emitMouseMove"
  v-on:mousedown="emitMouseDown"
  v-on:mouseup="emitMouseUp"
  v-on:click="emitClick"
  v-on:dblclick="emitDoubleClick"
  v-on:wheel="emitWheel"
  v-on:mouseleave="emitMouseLeave"
  v-on:mouseout="emitMouseOut"
  v-on:pointerlockchange="emitPointerLockChange"
  v-on:pointerlockerror="emitPointerLockError"
  v-on:blur="emitBlur"
  v-on:change="emitChange($event.target.value)"
  v-on:contextmenu="emitContextMenu"
  v-on:focus="emitFocus"
  v-on:input="emitInput($event.target.value)"
  v-on:invalid="emitInvalid"
  v-on:reset="emitReset"
  v-on:search="emitSearch"
  v-on:select="emitSelect"
  v-on:submit="emitSubmit"
>

рдПрдХ рдирдИ $attributes рд╕рдВрдкрддреНрддрд┐ рдЗрд╕реЗ рдЗрд╕ рддрдХ рдЫреЛрдЯрд╛ рдХрд░ рд╕рдХрддреА рд╣реИ:

<input
  v-bind="$attributes"
  v-on:keydown="emitKeyDown"
  v-on:keypress="emitKeyPress"
  v-on:keyup="emitKeyUp"
  v-on:mouseenter="emitMouseEnter"
  v-on:mouseover="emitMouseOver"
  v-on:mousemove="emitMouseMove"
  v-on:mousedown="emitMouseDown"
  v-on:mouseup="emitMouseUp"
  v-on:click="emitClick"
  v-on:dblclick="emitDoubleClick"
  v-on:wheel="emitWheel"
  v-on:mouseleave="emitMouseLeave"
  v-on:mouseout="emitMouseOut"
  v-on:pointerlockchange="emitPointerLockChange"
  v-on:pointerlockerror="emitPointerLockError"
  v-on:blur="emitBlur"
  v-on:change="emitChange($event.target.value)"
  v-on:contextmenu="emitContextMenu"
  v-on:focus="emitFocus"
  v-on:input="emitInput($event.target.value)"
  v-on:invalid="emitInvalid"
  v-on:reset="emitReset"
  v-on:search="emitSearch"
  v-on:select="emitSelect"
  v-on:submit="emitSubmit"
>

рд╣рд╛рд▓рд╛рдВрдХрд┐ рддрдм рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реЛрдирд╛ рдЕрднреА рднреА рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЦрд╛рд▓реА v-on рдирд┐рд░реНрджреЗрд╢ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдкрд░ рд╕рднреА рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рдЗрд╕ рддрддреНрд╡ рдкрд░ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░ рд╕рдХреЗ?

<input
  v-bind="$attributes"
  v-on
>

рдпрд╛ рдЕрдЧрд░ рдЕрдВрдд рдореЗрдВ рдХрдИ рдЪрд┐рдВрддрд╛рдПрдБ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдмрдВрдбрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╡рд╛рдкрд╕ рдЖ рд╕рдХрддреЗ рд╣реИрдВ v-expose :

<input v-expose>

рдпрд╣ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдХреЗ рдмрдЬрд╛рдп UI рдШрдЯрдХреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреА рд╡реНрдпрд╛рдкрдХ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЗрдмрд▓ рдХрд░реВрдВрдЧрд╛ред рдореИрдВ

рдореБрдЭреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рджреЗрд░ рд╣реЛ рдЪреБрдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рднреА рд╣реИрдВред

v-bind рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди рдФрд░ рдиреБрдХрд╕рд╛рди

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА v-bind="propObject" рд╕реБрд╡рд┐рдзрд╛ (рдЗрддрдиреА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА) рдХрд╛ рдЙрдкрдпреЛрдЧ рдФрд░ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмреВрдЯрд╕реНрдЯреНрд░реИрдк-рд╡реНрдпреВ рдореЗрдВ рдПрдХ рдЖрдВрддрд░рд┐рдХ рд▓рд┐рдВрдХ рдШрдЯрдХ рд╣реИ рдЬреЛ рд╣рд░ рдЬрдЧрд╣ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдмрдЯрди, рдПрдирдПрд╡реА, рдбреНрд░реЙрдкрдбрд╛рдЙрди рд╕реВрдЪрд┐рдпрд╛рдВ, рдЖрджрд┐)ред рдШрдЯрдХ рдкрд┐рд╡реЛрдЯреНрд╕ рдПрдХ рджреЗрд╢реА рдПрдВрдХрд░ рдмрдирд╛рдо рд░рд╛рдЙрдЯрд░ рд▓рд┐рдВрдХ рдЖрдзрд╛рд░рд┐рдд href рдмрдирд╛рдо to рдФрд░ vm.$router рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдмрди рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдВрдкрддреНрддрд┐рдпрд╛рдВ рд╣реИрдВ рдЗрди рдШрдЯрдХреЛрдВ рдХреЗред

рд╣рдорд╛рд░рд╛ рд╕рдорд╛рдзрд╛рди рдЙрди рдкреНрд░реЙрдкреНрд╕ рдХреЛ рдПрдХ рдорд┐рдХреНрд╕рд┐рди рдореЗрдВ рд░рдЦрдирд╛ рдФрд░ рдПрдХ рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╡рд╕реНрддреБ рдХреЗ рд╕рд╛рде v-bind="linkProps" рдХрд░рдирд╛ рдерд╛ред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рдУрд╡рд░рд╣реЗрдб рд╣реИ рдЬреЛ рдЙрд╕ рдорд┐рд╢реНрд░рдг рдХреЛ _рд╕рднреА рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреЛ рд▓рд┐рдВрдХ рдШрдЯрдХ_ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реИред

v-expose v-bind рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ

рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ v-expose рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдкрд╕рдВрдж рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрд▓реЙрдЯ + рдирд╛рдорд┐рдд рд╕реНрд▓реЙрдЯ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдирд╛рдорд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реНрд▓реЙрдЯ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ _"рд╕реНрд▓реЙрдЯ"_ рд╣рдореЗрд╢рд╛ рдШрдЯрдХ рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдкрд╛рд╕ рдХрд░реЗрдЧреА (рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ), рдЬрдмрдХрд┐ рдЕрдиреНрдп рдирд╛рдорд┐рдд рд▓рдХреНрд╖реНрдп рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рдХреБрдЫ рдРрд╕рд╛:

<template>
  <my-component 
    <!-- Nothing new here -->
    v-bind="rootProps"
    <!-- This binds the `linkProps` object to the named attribute slot `link` -->
    v-bind.link="linkProps"
  />
</template>

MyComponent.vue :

<template>
  <div>
    <router-link v-expose="link" />
  </div>
</template>

рдШрдЯрдирд╛ рдкреНрд░реЙрдХреНрд╕реА

рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣рд╛рдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ .native рдПрдХ рдЕрджреНрднреБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕рдВрд╢реЛрдзрдХ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ Vue рджреЗрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╣рдж рддрдХ рдЕрдЬреНрдЮрд╛рдд рд▓рдЧрддрд╛ рд╣реИ (рдореБрдЭреЗ UI lib рдореБрджреНрджреЛрдВ рдХреА рдПрдХ рдЕрдЪреНрдЫреА рдорд╛рддреНрд░рд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдЬреЛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рджреЗрд╡реЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдХреЗ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ)ред рдореИрдВрдиреЗ рд╕рд╛рдЗрдЯ рдореЗрдВ рдФрд░ рдбреЙрдХреНрд╕ рдФрд░ рдЦреЛрдЬ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рдкреАрдЖрд░ рд░рдЦрд╛ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ Google рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ред

рдПрдХ рдЕрдиреНрдп рдореБрджреНрджреЗ рдореЗрдВ рдПрдкреАрдЖрдИ рд╕рддрд╣ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рддрд░реНрдХ рд╕реЗ рдЖрддреЗ рд╣реБрдП, рдореБрдЭреЗ рджреЛрд╣рд░рд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ v-expose рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВред рдпрд╣ рдПрдХ рдФрд░ "рдЪреАрдЬреЛрдВ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛" рдкреЗрд╢ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЬреЗрдПрд╕рдПрдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд╣рд╛рдВ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рд▓рд╛рдЧреВ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЖрджрд┐ред

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

<my-input
  type="file"
  mode="dropdown"
>
<template>
  <div>
    <input v-bind="$attributes">
    <dropdown v-bind="{ ...$props, $attributes.type }"/>
  </div>
</template

рдЖрд╣, рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рддреБрдо рдЕрдм рдХреНрдпрд╛ рдХрд╣ рд░рд╣реЗ рд╣реЛред рдФрд░ рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИ! рдХреНрдпрд╛ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ? рдЗрд╕рдХреЗ рдмрдЬрд╛рдп vm.$attributes рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЛрдЧрд╛?

рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рджреЛрдмрд╛рд░рд╛ рдкрдврд╝рдирд╛ред рдореИрдВ рдЕрднреА рдЯреНрд░реИрдХ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ

рд╣рд╛рдБ, $attributes рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЛрдЧрд╛ред

рд╕рд╛рде рд╣реА, рд╣рдореЗрдВ рдореВрд▓ рддрддреНрд╡ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд╡рд░реНрддрдорд╛рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреИрд╕реЗ:
```рдПрдЪрдЯреАрдПрдордПрд▓

рдпрд╣ рддрдм Vue 3.0 рдореЗрдВ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧ рдмрди рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рд╣рдо рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИред

@LinusBorg рдШрдЯрдирд╛рдУрдВ рдХреЗ рдкрдХреНрд╖ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЗ рдХреНрдпрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ? рдЙрд╕реА рд░рдгрдиреАрддрд┐ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рд╣рдо рдПрдХ $listeners рд╕рдВрдкрддреНрддрд┐ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреА рд╣реИ:

{
  input: function () { /* ... */ },
  focus: function () { /* ... */ },
  // ...
}

рддрдм рд╢рд╛рдпрдж v-on v-bind рдЬреИрд╕реА рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реЛрдЧрд╛:

<input v-bind="$attributes" v-on="$listeners">

рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЬреЛ рдореБрдЭреЗ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рд╡рд╣ рд╣реИ input / change рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде, рдХреНрдпреЛрдВрдХрд┐ v-model рддрддреНрд╡реЛрдВ рдХреЗ рдореБрдХрд╛рдмрд▓реЗ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдпрд╣ рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рджреЛрдиреЛрдВ $listeners рдФрд░ $nativeListeners ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ $listeners рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ, рддреЛ .native рд╕рдВрд╢реЛрдзрдХ рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╕рд╛рде рд╣реА, applyComponentAttrsToRoot рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рд╢рд╛рдпрдж exposeRootEl рдПрдХ рдЕрдЪреНрдЫрд╛ рдирд╛рдо рд╣реЛрдЧрд╛, рдЬреЛ false рд╕реЗрдЯ рд╣реЛрдиреЗ рдкрд░, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ .native рдИрд╡реЗрдВрдЯ рджреЛрдиреЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдирд╛?

Vue.config рдорд╛рдзреНрдпрдо рд╕реЗ рдФрд░ рд╕рд╛рде рд╣реА рдПрдХ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рднреА рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ $listeners рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ рдерд╛ - рдпрд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдШрдЯрдХреЛрдВ рдкрд░ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИ

context.data.listeners

рддреЛ рд╣рдо $props , $attributes , $listeners рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рд▓рдЧрддрд╛ рд╣реИред

#5578 рднреА v-on="{...}" рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдкреВрдЫ рд░рд╣рд╛ рд╣реИ рдЬреИрд╕реЗ рдореИрдВрдиреЗ $attributes рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛, рдпрд╣ рдареАрдХ рд╕реЗ рдлрд┐рдЯ рд╣реЛрдЧрд╛ред

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

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

  1. "рдСрдЯреЛ рд▓рд╛рдЧреВ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЬреЛ рдореВрд▓ рддрддреНрд╡ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░реЛрдк рдореЗрдВ рдирд╣реАрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ" рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ (рд╕рдВрдмрдВрдзрд┐рдд рд╕рдорд╕реНрдпрд╛: рдХреНрдпрд╛ рдпрд╣ class рдФрд░ style рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?)

  2. рдПрдХ рдЖрдВрддрд░рд┐рдХ рддрддреНрд╡ рдкрд░ рдШрдЯрдХ рдкрд░ рдмрд╛рд╣рд░реА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ "рд╡рд┐рд░рд╛рд╕рдд" рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЬреЛ рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдЬрдбрд╝ рд╣реЛред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдФрд░ рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рдмреАрдЪ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд╕рд╛рдеред

ia kie like vue, рд╕рд░рд▓ рдЙрдкрдХрд░рдг

рдмрд╕ рдЗрддрдирд╛ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ v2.4 рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдмреЗрд╣рддрд░реАрди рд╣реИ! рдореИрдВ

рд╡рд┐рдЬреНрдЮрдкреНрддрд┐ рд╕реЗ рдиреЛрдЯ

рдЗрдирдХрд╛ рд╕рдВрдпреЛрдЬрди рд╣рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдШрдЯрдХ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

<div>
  <input v-bind="$attrs" v-on="$listeners">
</div>

рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдЪ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рд╡реА-рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд░реИрдкрд┐рдВрдЧ рдШрдЯрдХ рдкрд░ рд╡реА-рдореЙрдбрд▓ рдмреЙрдХреНрд╕ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдкрд░ рд░реИрдкрд┐рдВрдЧ рдШрдЯрдХ рд╕реЗ рд╡реА-рдореЙрдбрд▓ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИ?
рдореБрдЭреЗ рдорд┐рд▓рд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛:
https://jsfiddle.net/60xdxh0h/2/

рд╢рд╛рдпрдж рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдШрдЯрдХ рдХреЗ рд╕рд╛рде рдпрд╣ рдЕрдзрд┐рдХ рд╕рд░рд▓ рд╣реЛрдЧрд╛

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

рдЖрдк рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╕реЛрдЪреЗрдВрдЧреЗ? рд╡реА-рдореЙрдбрд▓ рдПрдХ рдкреНрд░реЛрдк рдФрд░ рдПрдХ рдШрдЯрдирд╛ рд╢реНрд░реЛрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЪреАрдиреА рд╣реИ, рджреЛрдиреЛрдВ $attr/$props рдореЗрдВ рд╣реЛрдВрдЧреЗ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдмрдЪреНрдЪреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдЬреНрдЮрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд╡рд╣ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдпрджрд┐ рдмрдЪреНрдЪрд╛ model рдЪреВрдХ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдЪ рд╣реИред

рд▓реЗрдХрд┐рди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдкрдврд╝рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдПрдХ рд╡рд╛рдХреНрдпрд╛рддреНрдордХ рдЪреАрдиреА рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдкрдврд╝рдиреЗ рдореЗрдВ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рдЗрдирдХрд╛ рд╕рдВрдпреЛрдЬрди рд╣рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдШрдЯрдХ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

рдЬрдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ https://github.com/almino/semantic-ui-vue2/blob/master/src/elements/Input.vue , рдЖрдк рд╕рдорд╛рди рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред (рдЙрджрд╛рд╣рд░рдг: рдЖрдкрдХреЛ v-on:input="emitInput($event.target.value)" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛)

рд╡реИрд╕реЗ рднреА, рдпрд╣ рдкреАрдЖрд░ рдореВрд▓реНрдпрд╡рд╛рди рд╣реИ, рдЕрдЪреНрдЫрд╛ рдХрд╛рдо!

@AlexandreBonaventure рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ v-model рддрддреНрд╡реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдШрдЯрдХреЛрдВ рдкрд░ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред DOM рдИрд╡реЗрдВрдЯ рдХреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдИрд╡реЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдШрдЯрдХ рдИрд╡реЗрдВрдЯ рд╕реАрдзреЗ рдПрдХ рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реИ рдХрд┐ v-model _does_ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рдзреНрдп рдорд╛рди DOM рдХрд╛ рдИрд╡реЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИред рдореИрдВ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рд╣реА рд╣реИрдВ рдХрд┐ v-model рд▓рд┐рдП рдпрд╣рд╛рдВ рдХрд╛рдо рдХрд░рдирд╛ рд╡рд╛рдВрдЫрдиреАрдп рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рдХрд╣рд╛рдВ рд╣реЛрдЧреАред рдХреБрдЫ рд╡рд┐рдЪрд╛рд░:

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЧреИрд░ рдЧрдгрдиреАрдп рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ $listeners (рдЬреИрд╕реЗ __$listeners__: true , рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП v-on рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ v-on="$listeners" рдорд╛рдорд▓реЛрдВ рдореЗрдВред рддрдм рдЬрд╣рд╛рдВ $listeners рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ v-on , рдкреНрд░рддреНрдпреЗрдХ рд╢реНрд░реЛрддрд╛ рдХреЛ рд▓рдкреЗрдЯрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

function (event) {
  listener(event.target.value)
}

рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд╣рд▓реВ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдм рд╣рдо рдбреЗрдЯрд╛ рдлреЗрдВрдХ рд░рд╣реЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдЧрд░ рдХреЛрдИ keyCode рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рднрд╛рдЧреНрдп рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рд╕рдВрд╢реЛрдзрдХ v-on рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рдереЗ, рддреЛ рд╣рдо .native рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реИрдкрд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдХреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@yyx990803 @LinusBorg рд╡реНрдпрд╡рд╣рд╛рд░реНрдпрддрд╛ рдкрд░ рдЖрдкрдХреЗ рдХреНрдпрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ? рдХреЛрдИ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЗ рдореБрдЭреЗ рдпрд╛рдж рдЖ рд░рд╣реЗ рд╣реИрдВ?

рдУрд╣, рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ, рдЖрдк rral рдкрд░ v-model рдХреА рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдлреЙрд░реНрдо рддрддреНрд╡, рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдШрдЯрдХреЛрдВ рдкрд░ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ред

рдЖрдк рдЗрд╕ рдкреАрдЖрд░ рдХреЗ рд╕рд╛рде рдпрд╛ рдЙрд╕рдХреЗ рдмрд┐рдирд╛ рд╡реИрд╕реЗ рднреА рдкреНрд░реЙрдкреНрд╕ рдкрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЙрдиреНрдирдд рдРрдкреНрд╕ рдореЗрдВ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп)ред

@LinusBorg рдмрд╕ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдПрдХ рд╣реА рдкреГрд╖реНрда рдкрд░ рд╣реИрдВред рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде CustomInput рдШрдЯрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

<div>
  <input v-bind="$attrs" v-on="$listeners">
<div>

рдЖрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ?

<CustomInput v-model="myValue" />

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

рдореИрдВ рдпрд╣ рдХрд╣рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ @chrisvfritz рдиреЗ рдЕрдкрдиреЗ рдмрд╛рдж рдХреЗ рдкреЛрд╕реНрдЯ рдореЗрдВ рдХреНрдпрд╛ рд╕рдордЭрд╛рдпрд╛ред (рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрд░реА рдореВрд▓ рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИ рдХреНрд╖рдорд╛ рдХрд░реЗрдВ :))

@LinusBorg рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬ рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрднреА рднреА рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд░рд╛рдЬреНрдп рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред

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

<template>
    <select class="combo" v-model="value" v-on="$listeners"> 
      <option v-for="(item, key) in items" :value="item">{{key}}</option>
    </select>
</template>

<script>
export default {
    props: {
        items: {
            type: Object,
            required: true
        },

        value: {}
    }
}
</script>

рдпрд╣ рдЙрди рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рдирдХрд╛ рдореИрдВ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдореЗрдВ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:

            execList: {
                "None": ACT_EXEC_TYPES.NONE,
                "Function": ACT_EXEC_TYPES.FUNCTION,
                "Code": ACT_EXEC_TYPES.CODE
            }

рдФрд░ рдореИрдВ рдХреЙрдореНрдмреЛ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реВрдВ:

<combo :items="execList" v-model="selectedAction.execType"/>

рдореИрдВ рдЗрд╕ рдХрд╛рдо рдХреЛ 2 рджрд┐рдиреЛрдВ рд╕реЗ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрднреА рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░рд╛рд╢ рд╣реЛ рд░рд╣рд╛ рд╣реВрдВред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ $event.target.value рд╣рдореЗрд╢рд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ :value рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

@LinusBorg @AlexandreBonaventure @RobertBColton рдореИрдВрдиреЗ рдЕрднреА рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓рд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╣рдо рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреА рднрд╡рд┐рд╖реНрдп рдХреА рдЪрд░реНрдЪрд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

bfis picture bfis  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

guan6 picture guan6  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

6pm picture 6pm  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

hiendv picture hiendv  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

franciscolourenco picture franciscolourenco  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ