Vue: рдХреНрдпрд╛ vuejs2.0 рдХреЛ $рдкреНрд░рд╕рд╛рд░рдг, $рдкреНрд░реЗрд╖рдг рдИрд╡реЗрдВрдЯ рдПрдкреАрдЖрдИ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП? 2.0 рдореЗрдВ рдЕрднрд┐рднрд╛рд╡рдХ-рдмрд╛рд▓ рд╕рдВрдЪрд╛рд░ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рд╕рд┐рддре░ 2016  ┬╖  41рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: vuejs/vue

@yyx990803 ,
рдирдорд╕реНрддреЗ, рд╡реВрдЬ рдХреЛрд░ рдЯреАрдо,
рдореИрдВ vuejs2.0 рдХреЗ рд╕рд╛рде рдореВрд▓ рдмрд╛рд▓ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдмрд┐рдВрджреБ рд╕реЗ рдмрд┐рдВрджреБ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдХреНрдпреЛрдВрдХрд┐ vuejs2.0 рдиреЗ $broadcast,$dispatch api рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИ, рдореЗрд░реЗ рд▓рд┐рдП $broadcast рдХрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдирд╛ рдмрд╣реБрдд рдХрдард┐рди рд╣реИ,$рдбрд┐рд╕реНрдкреИрдЪ vuejs2.0 рдИрд╡реЗрдВрдЯ рдмрд╕ рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдлрд╝реЛрд░рдо рдореЗрдВ рдПрдХ рд╕реВрддреНрд░ рд▓рд┐рдЦрд╛

рдХреГрдкрдпрд╛ рдЗрд╕реЗ рддрдм рддрдХ рдмрдВрдж рди рдХрд░реЗрдВ рдЬрдм рддрдХ рдХрд┐ vuejs2.0 рдкрд░ рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдпрд╛ рд╕рдорд╛рдзрд╛рди рди рд╣реЛред

<pcom id=1>
    <soncoma></soncoma>
    <soncomb></soncomb>
</pcom>
<pcom id=2>
    <soncoma></soncoma>
    <soncomb></soncomb>
</pcom>

рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдореЗрдВ, рдЬрдм pcom1 рдХрд╛ рдмрдЪреНрдЪрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реЛрдирдХреЛрдорд╛ $ рдПрдХ рдШрдЯрдирд╛ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХрд╣реЗрдВ,

bus.$emit('son-coma-event',somedata)

pcom рдкрд░, рд╣рдо рдЙрд╕ рдШрдЯрдирд╛ рдХреЛ рд╕реБрдирддреЗ рд╣реИрдВ

bus.$on('son-coma-event',function(){})

рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ pcom1 рдЙрд╕ рдШрдЯрдирд╛ рдХреЛ рд╕рдВрднрд╛рд▓ рд▓реЗ, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ pcom2 рднреА рдЗрд╕реЗ рд╕рдВрднрд╛рд▓ рд▓реЗрдЧрд╛ред
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯреЗрдВ?

рдореЗрд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ рдХрд╛рдордХрд╛рдЬ рдореЗрдВ рд╕реЗ рдПрдХ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред $ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдШрдЯрдирд╛ рдмрд╕ рдХреЗ рд░реВрдк рдореЗрдВ
рдмрдЪреНрдЪреЗ рдореЗрдВ:

this.$parent.$emit('some-event',someData)

рдорд╛рддрд╛-рдкрд┐рддрд╛ рдореЗрдВ:

{
   created(){
       this.$on('some-event',function(){})
}

рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдирдХрд╛рд░рд╛рддреНрдордХ рдмрд┐рдВрджреБ рд╣реИ:

  1. рд╣рдо рдорд╛рддрд╛-рдкрд┐рддрд╛-рдмрдЪреНрдЪреЗ рдХреЗ рд╕рдВрдмрдВрдз рдкрд░ рдмрд╣реБрдд рдХреБрдЫ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ;
  2. рдорд╛рддрд╛-рдкрд┐рддрд╛-рдмрдЪреНрдЪреЗ рдХреЗ рд╕реНрддрд░ рдХреЗ рдЕрдзрд┐рдХ рдЧрд╣рди рд╕реНрддрд░ рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ;

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

 <pcom>
    <recursivechild>
             <recursivechild>
                          <recursivechild>
                          </recursivechild>
             </recursivechild>
    <recursivechild>
</pcom>

 <pcom>
    <recursivechild>
             <recursivechild>
                          <recursivechild>
                          </recursivechild>
             </recursivechild>
    <recursivechild>
</pcom>

рд░рд┐рдХрд░реНрд╕рд┐рд╡рдЪрд╛рдЗрд▓реНрдб рдЕрдкрдиреЗ рдкреНрд░рддреНрдпрдХреНрд╖ pcom рдШрдЯрдХ рд╕реЗ рдХреИрд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ?
рдХреГрдкрдпрд╛ рдЗрди рд╡рд┐рд╖рдпреЛрдВ рдкрд░ рдЕрдкрдирд╛ рд╡рд┐рдЪрд╛рд░ рдпрд╛ рдмрд┐рдВрджреБ рджреЗрдВред
рдзрдиреНрдпрд╡рд╛рдж ~!

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

@rhyek рдореИрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдард╛рдП рдЧрдП рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдирд╛ 2ct рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЪреВрдВрдХрд┐ рдЪрд░реНрдЪрд╛ рдкрд╣рд▓реЗ рд╣реА рдХрдИ рд╡рд┐рд╖рдпреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рдЪреБрдХреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЛрдВ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рд╣рдордиреЗ $diospatch рдФрд░ $broadcast рдХрд╛ рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛:

1. рдирд┐рд╣рд┐рдд рдпреБрдЧреНрдордиред

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

рдпрджрд┐ рдЖрдк Vue 2.0 рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдкреЗрд╢ рдХрд┐рдП рдЧрдП рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдФрд░ рдмрд╣рд┐рд╖реНрдХрд░рдгреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╣рдЯрд╛рдирд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╖рдп рд╣реИ, рдФрд░ $dispatch рдкрджрд╛рд╡рдирдд рдХрд░рдирд╛ рд╡рд╣реАрдВ рдкрд░ рд╕рд╣реА рдмреИрдарддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг:

// parent
events: {
  'some-event': function () { ... }
}

// deeply nested child:
$dispatch('some-event')

рдпрд╣ рдареАрдХ рд╣реИ рдЬрдм рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рд╕реАрдзрд╛ рдмрдЪреНрдЪрд╛ рд╣реЛрддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╢реНрд░реЛрддрд╛ рдХреЗ рд╕рд╛рде $emit() рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдирд╣реАрдВ рд╣реИред

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

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

2. рдШрдЯрдирд╛ рдХреЗ рдирд╛рдо

рдЬрдм рдЖрдк рдЧрд╣рд░рд╛рдИ рд╕реЗ рдиреЗрд╕реНрдЯреЗрдб рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде $dispatch рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЕрдкрдиреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдирд╛рдо рджреЗрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдпрдерд╛, рд╡реЗ рд╕рдВрдШрд░реНрд╖ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

// parent
events: {
  'close': function () { ... }
}

// deeply nested child 1:
$dispatch('close')
// deeply nested child 2:
$dispatch('close')

..рдФрд░ рдЕрдЧрд░ рд╡реЗ рдмрдЪреНрдЪреЗ рдерд░реНрдб-рдкрд╛рд░реНрдЯреА-рд▓рд┐рдмрд╛рд╕ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдм рдЦрд░рд╛рдм рд╣реЛ рдЧрдП рд╣реИрдВред рдпрд╛ рдмреАрдЪ рдореЗрдВ рдХрд┐рд╕реА рдШрдЯрдХ рдореЗрдВ рдШрдЯрдирд╛ рдХреЛ рдкрдХрдбрд╝рдирд╛ рд╣реИ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк $dispatch() рдЖрдЧреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рддрдХ рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВред рдФрд░ рдЗрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдХреЛрдб рдХреЛ рджреЗрдЦрдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕реА рдШрдЯрдирд╛ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдФрд░ рдХреБрдЫ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

$emit рдФрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╢реНрд░реЛрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЖрдк рд╣рд░ рдЬрдЧрд╣ рд╕рд░рд▓, рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдИрд╡реЗрдВрдЯ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡реЗ рдЯрдХрд░рд╛рдПрдВрдЧреЗ рдирд╣реАрдВ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдИрд╡реЗрдВрдЯ рдХрд╛ рдЕрдкрдирд╛ рдХреЙрд▓рдмреИрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ @close="callback рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реЛрддрд╛ рд╣реИред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╕ рдпрд╣реА рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдиреЗ рдХрд┐рд╕реА рднреА рдкреНрд░рддрд┐рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП *рд╡рд┐рдХрд▓реНрдк * рдХреЛ рдирд╣реАрдВ рд▓рд┐рдпрд╛,

рдЕрдЧрд░ рд╣рдордиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рджреЛрдиреЛрдВ рдкреНрд░рддрд┐рдорд╛рди рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЙрдирдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рд╣рдо рдРрд╕рд╛ рдирд╣реАрдВ рд╕реЛрдЪрддреЗ, рдЙрдкрд░реЛрдХреНрдд рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдФрд░ рдмрд╣реБрдд рдХреБрдЫред

рдЗрд╕рд▓рд┐рдП, рд╣рдо "рдЧреНрд▓реЛрдмрд▓ рдмрд╕" рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд░рд╛рд╕реНрддрд╛ рдЫреЛрдбрд╝рддреЗ рд╣реБрдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЙрди рд╕рдордЭреМрддреЛрдВ рддрдХ рд▓реЗ рдЬрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреА рдЪрд┐рдВрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЕрднреА рддрдХ рдЖрдкрдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХреЗрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ $ рдкреНрд░реЗрд╖рдг рдФрд░ $ рдкреНрд░рд╕рд╛рд░рдг рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ "рд╣рдорд╛рд░рд╛" рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реНрдерд┐рддрд┐ рдХреЛ рдХреИрд╕реЗ рд╕реБрдзрд╛рд░ рд╕рдХрддрд╛ рд╣реИ?

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

рдЪреВрдВрдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╕реНрддрд╛рд╡ рдЪрд░реНрдЪрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдкрд╣реЗрд▓реА рдирд╣реАрдВ рдмрдирд╛рдИ рд╣реИред рдпрджрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рддреЛ рдореИрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдзрдиреНрдпрд╡рд╛рдж ~!

2.0 рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдЙрдЪрд┐рдд рдард╣рд░рд╛рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ

рдпрд╣рд╛рдБ рдПрдХ рдкреНрд░рддрд┐ рд╣реИ:

$dispatch рдФрд░ $broadcast рдХреЗ рдореВрд▓реНрдпрд╣реНрд░рд╛рд╕ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯреЗрдВ?

рдЬрд┐рд╕ рдХрд╛рд░рдг рд╕реЗ рд╣рдо $dispatch рдФрд░ $broadcast рдХреЛ рд╣рдЯрд╛ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдШрдЯрдирд╛ рдкреНрд░рд╡рд╛рд╣ рдЬреЛ рдХрд┐ рдШрдЯрдХреЛрдВ рдХреЗ рдкреЗрдбрд╝ рдХреА рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рддрд░реНрдХ рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдШрдЯрдХ рдкреЗрдбрд╝ рдХрдм рдмрдбрд╝реЗ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ (рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ рддреЛ: рдпрд╣ рдирд╣реАрдВ рд╣реИ рдмрдбрд╝реЗ рдРрдкреНрд╕ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдХреЗрд▓ рдХрд░реЗрдВ рдФрд░ рд╣рдо рдЖрдкрдХреЛ рдмрд╛рдж рдореЗрдВ рджрд░реНрдж рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдЕрдк рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ)ред $dispatch рдФрд░ $broadcast рднреА рд╕рд╣реЛрджрд░ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдк Node.js рдореЗрдВ EventEmitter рдХреЗ рд╕рдорд╛рди рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдПрдХ рдХреЗрдВрджреНрд░реАрдХреГрдд рдИрд╡реЗрдВрдЯ рд╣рдм рдЬреЛ рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдВрдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рд╡реЗ рдШрдЯрдХ рдЯреНрд░реА рдореЗрдВ рдХрд╣реАрдВ рднреА рд╣реЛрдВред рдХреНрдпреЛрдВрдХрд┐ Vue рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЗрд╡реЗрдВрдЯ рдПрдорд┐рдЯрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд╛рд▓реА Vue рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

var bus = new Vue()
// in component A's method
bus.$emit('id-selected', 1)
// in component B's created hook
bus.$on('id-selected', function (id) {
 // ...
})

рдпрд╣ рдкреИрдЯрд░реНрди рд╕рд░рд▓ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ $dispatch рдФрд░ $broadcast рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, Vuex рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдорд░реНрдкрд┐рдд рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрди рдкрд░рдд рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИред

рдЕрдкрдЧреНрд░реЗрдб рдЧрд╛рдЗрдб рдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг рд╡рд╣реА рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ

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

@posva , рдЖрдкрдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдмрд╕ рд╣рдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд▓ рдПрдХрд▓ рдШрдЯрдХ рдмрд┐рдВрджреБ рд╕реЗ рдПрдХрд▓ рдШрдЯрдХ рдмрд┐рдВрджреБ рд╕рдВрдЪрд╛рд░ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдПрдХ рд╣реА рдШрдЯрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрдИ рдШрдЯрдХ рд╣реИрдВ, рддреЛ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреА, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓рд╛ рд╣реИред рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдореИрдВ рдШрдЯрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдШрдЯрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рдЫреЛрдЯрд╛ рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдШрдЯрдирд╛ рдмрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрдВрддрд╡реНрдп рдпрд╛ рдЙрддреНрдкрддреНрддрд┐ рдиреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ (рдореИрдВрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЗ _uid рдХреЛ рджреЗрдЦрд╛ рд╣реИ, рд╢рд╛рдпрдж рд╣рдо рдШрдЯрдирд╛ рддрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЕрджреНрд╡рд┐рддреАрдп _uid рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?), рдЗрд╕рд▓рд┐рдП vuejs2.0 рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд┐рдВрджреБ рд╕реЗ рдмрд┐рдВрджреБ рдШрдЯрдирд╛ рд╕рдВрдЪрд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ . рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, vuejs2.0 рдЗрд╡реЗрдВрдЯ рдмрд╕ рдШрдЯрдХ рдкреНрд░рдХрд╛рд░ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдШрдЯрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ? рдХреНрдпрд╛ рдЙрд╕ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рд╣реИ: рдкреЗрдбрд╝ рдореЗрдВ рдХрд┐рд╕реА рдШрдЯрдирд╛ рд╕реЗ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛
vuex рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрддрд░ рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдереИрддрд┐рдХ рд░рд╛рдЬреНрдп рдбреЗрдЯрд╛ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдпрд╣ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд╛рдиреАрдп рдШрдЯрдХ рдбреЗрдЯрд╛ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

@cnweibo рдореИрдВрдиреЗ рдордВрдЪ рдкрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдЖрдкрдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдЧрд╛ред
http://forum.vuejs.org/topic/4832/vue2-0-event-bus-issue-how-to-deliver-event-to-parent-when-the-same-multiple-parent-children-in- рдбреЛрдо/6

рдХреНрдпрд╛ рдЙрд╕ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рд░рд▓ рдЙрдкрд╛рдп рд╣реИ: a . рджреНрд╡рд╛рд░рд╛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
рдкреЗрдбрд╝ рдореЗрдВ рдШрдЯрдирд╛ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

рдпрд╣ рдПрдХ рдЬрдЯрд┐рд▓ рдШрдЯрдирд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдмрд┐рдирд╛, рдХреЗрд╡рд▓ vuex рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

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

рдпрд╣ рдкреВрд░реА 'рдШрдЯрдирд╛рдУрдВ рдмрдирд╛рдо рд╕рд╛рдЭрд╛-рд░рд╛рдЬреНрдпреЛрдВ' рдХреА рдЪрд░реНрдЪрд╛ рдорд╣реАрдиреЛрдВ рд╕реЗ рд╕реБрд▓рдЭреА рд╣реИ
рдкрд╣рд▓реЗ, рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖ рд╡реИрд╢реНрд╡рд┐рдХ рдИрд╡реЗрдВрдЯ рдмрд╕, рдпрд╛ vuex рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рддреЛ рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ
рдЖрдкрдХреЛ vuex рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВред

рдЧреБрд░реБ, 1 рд╕рд┐рддрдВ, 2016 рдкрд░ 16:17 cnweibo [email protected] рд▓рд┐рдЦрд╛ рд╣реИ:

@posva https://github.com/posva , рдЖрдкрдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдмрд╕
рд╣рдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд▓ рдПрдХрд▓ рдШрдЯрдХ рдмрд┐рдВрджреБ рд╕реЗ рдПрдХрд▓ рдШрдЯрдХ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдмрд┐рдВрджреБ рд╕рдВрдЪрд╛рд░ред рдпрджрд┐ рдПрдХ рд╣реА рдШрдЯрдХ рдХреЗ рд╕рд╛рде рдХрдИ рдШрдЯрдХ рд╣реИрдВ
рдкреНрд░рдХрд╛рд░, рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреА, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓рд╛ рд╣реИред рдмрд╣реБрдд
рдорд╛рдорд▓реЛрдВ, рдЬреЛ рдореИрдВ рдШрдЯрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд╡рд╣ рдХреБрдЫ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рдЫреЛрдЯрд╛ рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реИ
рд╡рд┐рд╢рд┐рд╖реНрдЯ рдШрдЯрдХред рд╡рд░реНрддрдорд╛рди рдШрдЯрдирд╛ рдмрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ
рдЧрдВрддрд╡реНрдп рдпрд╛ рдЙрджреНрдЧрдо рдиреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА (рдореИрдВрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ _uid рджреЗрдЦрд╛ рд╣реИ
рдШрдЯрдХ, рд╢рд╛рдпрдж рд╣рдо рдШрдЯрдирд╛ рддрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЕрджреНрд╡рд┐рддреАрдп _uid рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? ), рдЗрд╕рд▓рд┐рдП
vuejs2.0 рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд┐рдВрджреБ рд╕реЗ рдмрд┐рдВрджреБ рдШрдЯрдирд╛ рд╕рдВрдЪрд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛
рд╕рдЯреАрдХ, vuejs2.0 рдЗрд╡реЗрдВрдЯ рдмрд╕ рдХреЗрд╡рд▓ рдШрдЯрдХ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдШрдЯрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ
рд╕рдВрдЪрд╛рд░? рдХреНрдпрд╛ рдЙрд╕ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рд░рд▓ рдЙрдкрд╛рдп рд╣реИ:
рдЯреНрд░реА рдореЗрдВ рдХрд┐рд╕реА рдШрдЯрдирд╛ рджреНрд╡рд╛рд░рд╛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ _ITS рдХрд╛ рдЕрдкрдирд╛ рдбреЗрдЯрд╛_ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
vuex рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрддрд░ рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдереИрддрд┐рдХ рд░рд╛рдЬреНрдп рдбреЗрдЯрд╛ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ,
рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдпрд╣ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд╛рдиреАрдп рдШрдЯрдХ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рд╢рд╛рдпрдж рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ
рдкреНрд░рдмрдВрдз?

рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдереНрд░реЗрдб рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/vuejs/vue/issues/3581#issuecomment -244008699, рдпрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
рд╕реВрддреНрд░
https://github.com/notifications/unsubscribe-auth/AFTLl1bjHqWTVDAkr8Fqbx0WiTuH16n2ks5qlooBgaJpZM4JyUfJ
.

рдореИрдВ рдЕрдм рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рджреВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐

  1. рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдФрд░
  2. рдЬреАрдердм рдореБрджреНрджреЗ рд╡реИрд╕реЗ рднреА рд╕рдорд░реНрдерди рдорд╛рдВрдЧрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИрдВ (рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рджреЗрдЦреЗрдВ)

@ktsn , рдЖрдкрдХреЗ рдбреЗрдореЛ
@fnlctrl , рдореИрдВ рддрдерд╛рдХрдерд┐рдд рдореЙрдбреНрдпреВрд▓рд░ vuex рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрди рдкрд░ рдЕрдзрд┐рдХ рд╕рдордп рдмрд┐рддрд╛рдКрдВрдЧрд╛

рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж ~!

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ $ рдкреНрд░рд╕рд╛рд░рдг рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдЧрд┐рд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЙрдкреНрд╕ рдбреЗрдЯрд╛-рдлреНрд▓реЛред
рдХрд┐рд╕реА рднреА $dispatch рдХреЛ рд╕рд┐рдВрдЧрд▓-рд▓реЗрд╡рд▓ v-on рдФрд░ $emit рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (Vue 1 рдореЗрдВ):
рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рдорд┐рд▓ рдШрдЯрдХ рдкрд░ <child-component @select="$emit('select', $arguments[0])" />
рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХрд╕реНрдЯрдо рдЗрд╡реЗрдВрдЯ рдмрд╕реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдШрдЯрдХ рдкрд░ рдХрд╕реНрдЯрдо рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдШрдЯрдХ рдЯреИрдЧ рдкрд░ v-on рд╕реНрд╡рдпрдВ рдШрдЯрдХ рд╕реЗ $emit рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@cnweibo рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП, рдИрд╡реЗрдВрдЯ рдбреЗрдЯрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

{
  template: `<foo @bar="dosomething">`,
  methods: {
    dosomething(params1, params2, ... and all the event data args) {}
  }
}

рд▓реЗрдХрд┐рди рдШрдЯрдирд╛ рдбреЗрдЯрд╛ vuejs2.0 . рдореЗрдВ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЕрдиреНрдпрдерд╛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ?

@fnlctrl
@LinusBorg
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореБрдЭреЗ рдЧрд▓рддрдлрд╣рдореА рд╣реИ рдФрд░ рдореИрдВ рдЪреАрдЬреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ред @fnlctrl рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдкреИрдЯрд░реНрди рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рднреА рд╕рднреА рдбреЗрдЯрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

 <comp @some-event-emitted-by-comp-internal-template="someFuncInParentScope"></comp>

рдореЗрд░реА рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЕрдВрдХ рд╕реЗ рдХреЙрдкреА/рдкреЗрд╕реНрдЯ рдХрд░рдирд╛: https://github.com/vuejs/vue/issues/2760#issuecomment -250883407

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ $ рдкреНрд░реЗрд╖рдг рдХреЛ рд╣рдЯрд╛рдирд╛ рдПрдХ рднрдпрд╛рдирдХ рд╡рд┐рдЪрд╛рд░ рдерд╛ред рдпрд╣ рдПрдХ рджреГрд╢реНрдп рдкреЗрдбрд╝ рдкрд░ рдмреБрд▓рдмреБрд▓реЗ рдХреНрд░рд┐рдпрд╛рдУрдВ/рдШрдЯрдирд╛рдУрдВ рдХреА рдзрд╛рд░рдгрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкрд╣рд▓рд╛ рдпреВрдЖрдИ рдврд╛рдВрдЪрд╛/рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╣реАрдВ рдерд╛ред рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╡рд┐рдЪрд╛рд░ рд╣реИред рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЗрд╕ рдЖрдзрд╛рд░ рдкрд░ рдХреНрдпреЛрдВ рд╣рдЯрд╛ рджреЗрдВ рдХрд┐ "рдПрдХ рдРрд╕реА рдШрдЯрдирд╛ рдХреЛ рдкреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдЬреЛ рдЗрд╕рдХреЗ рдЕрдЬреНрдЮрд╛рдд рдореВрд▓ рдкреЗрдбрд╝ рдореЗрдВ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИ, рдореБрдЭреЗ рдкрд░реЗрд╢рд╛рдиреА рдХреЗ рд▓рд┐рдП рдиреБрд╕реНрдЦрд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ"? рдЖрдкрдХреЛ рдпрд╣ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░ рдЫреЛрдбрд╝рдиреА рд╣реЛрдЧреАред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдЪрд┐рдд рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди рд╣реИред рдпрд╣ рдХреЛрдИ рдирдИ рдЕрд╡рдзрд╛рд░рдгрд╛ рдирд╣реАрдВ рд╣реИ!

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рд▓рд╛рдн рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдЬрдм рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╡реЗрдм рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ/рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдЬреИрд╕реЗ рдбреАрдУрдПрдо рдФрд░ рдбреАрдУрдПрдо рдШрдЯрдирд╛рдУрдВ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреГрд╢реНрдп рдкреЗрдбрд╝ рдХреЛ рдмреБрд▓рдмреБрд▓рд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХреЗ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдРрд╕рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрдкрд╛рд▓рдВрдн рджреЗрдирд╛ред рдХреНрдпрд╛ рдШрдЯрдХреЛрдВ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдХреБрдЫ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╡реЗрдм рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП W3C рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ Vue рдШрдЯрдХ рдирд┐рдпрдорд┐рдд DOM рддрддреНрд╡реЛрдВ рдХреЗ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВред

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

рдЗрд╕ рд╕реВрддреНрд░ рдореЗрдВ рдЕрдиреНрдп рдкреНрд░рд╕реНрддрд╛рд╡ рдореБрдЭреЗ рдпрд╛рдж рджрд┐рд▓рд╛рддреЗ рд╣реИрдВ рдХрд┐ рдПрдореНрдмрд░рдЬреЗрдПрд╕ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдХреЗ рдиреАрдЪреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдЧреБрдг рдХреЗ рд░реВрдк рдореЗрдВ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдХреНрд░рд┐рдпрд╛рдПрдВ рдкрд╛рд╕ рдХрд░рдирд╛ред рдЗрддрдирд╛ рдердХрд╛рдК рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ! Vuejs рдпрд╣реА рдХрд╛рд░рдг рдерд╛ рдХрд┐ рдореИрдВрдиреЗ https://www.npmjs.com/package/ember-component-action-bubbling рд▓рд┐рдЦрд╛

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдЖрдкрдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИред рд▓реЗрдХрд┐рди рдЧрдВрднреАрд░рддрд╛ рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рднрдпрд╛рдирдХ рдмрджрд▓рд╛рд╡ рдерд╛ред

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

рдорд╛рди рд▓реАрдЬрд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдРрдк рд╣реИ рдЬрд╣рд╛рдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧ рдЗрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдИрд╡реЗрдВрдЯ-рдЖрдзрд╛рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде:

  1. рдПрдХ рд▓реЙрдЧрд┐рди рдШрдЯрдирд╛ рд╕реБрдиреЗрдВ
  2. рдШрдЯрдирд╛ рдХреЛ рдмрд╛рдж рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВ
  3. рдЬреЛ рднреА рдШрдЯрдХ рд╕реБрди рд░рд╣реЗ рд╣реИрдВ рдЙрд╕реА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрдХреНрдд рдШрдЯрдирд╛ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдВ

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

рддреЛ рдЖрдЗрдП рдПрдХ рд╕реНрдЯреЗрдЯрдлреБрд▓ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

  1. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд╛рддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд░рд╛рдЬреНрдп рдЪрд░ рдмрдирд╛рдПрдВред рд╕рд╛рдЗрди рдЖрдЙрдЯ рд╣реЛрдиреЗ рдкрд░ рдпрд╣ null рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рд╕рд╛рдЗрди рдЗрди рд╣реЛрдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд▓реЙрдЧрд┐рди рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред
  2. рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧ рдЗрди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЦрд╛рддрд╛ рдЬрд╛рдирдХрд╛рд░реА рд╕реЗрдЯ рдХрд░реЗрдВред

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

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

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

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд╣ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдШрдЯрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рд╡рд╣реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЙрд╕ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдШрдЯрдХ рдХреЛ рдПрдХ рдШрдЯрдирд╛ рдХреЛ рднрдЧрд╡рд╛рди рдХреЛ рдмрдмрд▓ рдХрд░рдирд╛ рд╣реИ рдЬрд╣рд╛рдВ рдкрддрд╛ рд╣реИред рдЖрдк рдЕрднреА рднреА рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдЧрд▓рддреА рд╕реЗ "рдЧрдВрджрд╛" рд╣реЛрдиреЗ рдХрд╛ рдПрдХ рд╣реА рдЬреЛрдЦрд┐рдо рдЪрд▓рд╛рддреЗ рд╣реИрдВред

рджреЛрдиреЛрдВ рдкреНрд░рддрд┐рдорд╛рдиреЛрдВ рдХреЛ рд╕реНрд╡рдЪреНрдЫ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдЖрдорддреМрд░ рдкрд░ (рдФрд░ рдЪрд╛рд╣рд┐рдП) рдврд╛рдВрдЪреЗ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реЛрдЧреАред

рдРрд╕реА рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реЛрдВрдЧреА рдЬрд╣рд╛рдВ рдПрдХ рддрдВрддреНрд░ рджреВрд╕рд░реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрдПрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдПрдХ рд▓реЙрдЧ-рдЗрди рд╕реНрдерд┐рддрд┐ рдЖрдкрдХреЗ рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП: рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рд╕рдордЭ рдореЗрдВ рдЖрддреА рд╣реИред рд▓реЗрдХрд┐рди рдЬрд┐рд╕ рдмрдЯрди рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреЗ рдкреАрдЫреЗ рдХреЗ рддрд░реНрдХ рдХреЛ рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рдкрд╛рддрд╛ рд╣реИред рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдКрдкрд░ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдПрдХ рдШрдЯрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдПрдХ рдорд╛рд░реНрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдмрдЯрди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗрд╡рд▓ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреЗ рдЗрд░рд╛рджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╕реВрдЪрдирд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдмрдЯрди, рдЗрд╕рд▓рд┐рдП, рд╕реАрдзреЗ рдЕрдкрдиреЗ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред

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

рдпрд╛, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдмрдЯрди 10 рд╕реНрддрд░ рдЧрд╣рд░рд╛ рд╣реЛ рдФрд░ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдкрд░ v-on:login рд╣реИрдВрдбрд▓рд░ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдкрдбрд╝реЗ рддрд╛рдХрд┐ рдЗрд░рд╛рджрд╛ рдЕрдкрдиреЗ рднрд╛рдЧреНрдп рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рдПред рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдкрд░ v-on рд╕реЗ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдХрдард┐рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рд╕реАрдзреЗ рд░рд╛рдЬреНрдп рдХреЛ рдмрджрд▓рдирд╛ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди Vuex рдЙрд╕ рдореБрджреНрджреЗ рдХреЛ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рд╕рдЪ рд╣реИ рдХрд┐ рдХреБрдЫ рд╕рдорд╛рдзрд╛рди рджреВрд╕рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд┐рд▓ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рдлрд┐рдЯ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдХрднреА рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдШреЛрд╖рдгрд╛рддреНрдордХ рддрд░реНрдХ рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдерд╛ред

рдЖрдкрдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╢рд╛рдпрдж рдореИрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрдЯрди рдирд╣реАрдВ рдмрдирд╛рдКрдВрдЧрд╛, рд╣реЗред рдкрд░рд┐рд╢рд┐рд╖реНрдЯ рдореЗрдВ, рдпрджрд┐ рдПрдХ рд▓реЙрдЧрд┐рди-рд╕рдВрдмрдВрдзрд┐рдд рдШрдЯрдХ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЗрддрдирд╛ рдЧрд╣рд░рд╛ рдШреЛрдВрд╕рд▓рд╛ рд╣реИ, рддреЛ рдмрд╕ рдЗрд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдмрджрд▓ рджреЗрдВред

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

рдпрд╣ рд╡рд╛рдВрдЫрдиреАрдп рдирд╣реАрдВ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓реЙрдЧ рдЗрди рдмрдЯрди рдХрд┐рд╕реА рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдерд╛ред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдиреЗ рдХрд┐рд╕реА рднреА рдкреНрд░рддрд┐рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП *_choice *_ рдирд╣реАрдВ рд▓рд┐рдпрд╛, рдЦрд╛рд╕рдХрд░ рдЬрдм рдШрдЯрдирд╛ рдмрдмрд▓рд┐рдВрдЧ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдирдП рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИред

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

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

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

10 рдореЗрдВ рд╕реЗ 9 рдмрд╛рд░, рдкреНрд░реЙрдкреНрд╕ рдФрд░ рдЗрд╡реЗрдВрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯреЛрд░ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рдХреЛрдИ рддрд╛рд░реНрдХрд┐рдХ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдмрд┐рд▓реНрдХреБрд▓ рдореЗрд░реА рдмрд╛рддред

рдбреАрдк рдиреЗрд╕реНрдЯрд┐рдВрдЧ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдЬрд┐рддрдирд╛ рд╣реЛ рд╕рдХреЗ рдмрдЪрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

рдХрднреА-рдХрднреА, рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдШрдЯрдирд╛рдУрдВ рдХреЛ рджреЛ рд╕реНрддрд░реЛрдВ рдкрд░ рдкреНрд░рдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рд╣реИ

рдЗрддрдирд╛ рд╕рдЪ рдирд╣реАрдВ рд╣реИ рдЬрдм рд╡реЗ рд╕реНрддрд░ рдЧрд╣рд░реЗ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рдкреНрд░рддрд┐рдорд╛рди рд╡реЗ рд╣реИрдВ рдЬреЛ рдЕрдВрдд рдореЗрдВ рдирд░рдХ рдХреЗ рдЕрдВрдд рддрдХ рджреБрд░реНрд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмреЛрдЭрд┐рд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ

рдпрд╣ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╢рд╛рд╕рди рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрджрд┐ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрдкрдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк 1.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдврд╛рдВрдЪреЗ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВред

рдПрдордПрдордХреЗ

рд╕рд╛рджрдЧреА рдФрд░ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдХрд╛рд░рдг рдореИрдВ рдПрдореНрдмрд░ рд╕реЗ рд╡реВ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рдерд╛ред $dispatch рдЙрди рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рдореБрдЭреЗ Vue рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╕рдВрдж рдЖрдИ рдФрд░ рдЗрд╕реЗ рд╣рдЯрд╛рдирд╛ рдореБрдЭреЗ рдмрд╣реБрдд рдордирдорд╛рдирд╛ рд▓рдЧрддрд╛ рд╣реИред

рдЯреАрдо рдиреЗ 2.0 рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реА рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╣рдЯрд╛ рджреАрдВред рдореИрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдЙрди рд╕рднреА рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рдмрд╕ рдпрд╣реА рдирд╣реАрдВред

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

@ktsn $broadcast рдФрд░ $dispatch рдХреЗ рд╡рд┐рдХрд▓реНрдк рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИрдВ, рдЗрд╕ рдирд┐рд╖реНрдХрд╛рд╕рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдЖрдпрд╛ рд╣реИ рдФрд░ рдмреЗрд╣рддрд░ рд╣реБрдЖ рд╣реИред

@rhyek рдореИрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдард╛рдП рдЧрдП рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдирд╛ 2ct рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЪреВрдВрдХрд┐ рдЪрд░реНрдЪрд╛ рдкрд╣рд▓реЗ рд╣реА рдХрдИ рд╡рд┐рд╖рдпреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рдЪреБрдХреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЛрдВ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рд╣рдордиреЗ $diospatch рдФрд░ $broadcast рдХрд╛ рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛:

1. рдирд┐рд╣рд┐рдд рдпреБрдЧреНрдордиред

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

рдпрджрд┐ рдЖрдк Vue 2.0 рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдкреЗрд╢ рдХрд┐рдП рдЧрдП рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдФрд░ рдмрд╣рд┐рд╖реНрдХрд░рдгреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╣рдЯрд╛рдирд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╖рдп рд╣реИ, рдФрд░ $dispatch рдкрджрд╛рд╡рдирдд рдХрд░рдирд╛ рд╡рд╣реАрдВ рдкрд░ рд╕рд╣реА рдмреИрдарддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг:

// parent
events: {
  'some-event': function () { ... }
}

// deeply nested child:
$dispatch('some-event')

рдпрд╣ рдареАрдХ рд╣реИ рдЬрдм рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рд╕реАрдзрд╛ рдмрдЪреНрдЪрд╛ рд╣реЛрддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╢реНрд░реЛрддрд╛ рдХреЗ рд╕рд╛рде $emit() рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдирд╣реАрдВ рд╣реИред

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

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

2. рдШрдЯрдирд╛ рдХреЗ рдирд╛рдо

рдЬрдм рдЖрдк рдЧрд╣рд░рд╛рдИ рд╕реЗ рдиреЗрд╕реНрдЯреЗрдб рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде $dispatch рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЕрдкрдиреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдирд╛рдо рджреЗрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдпрдерд╛, рд╡реЗ рд╕рдВрдШрд░реНрд╖ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

// parent
events: {
  'close': function () { ... }
}

// deeply nested child 1:
$dispatch('close')
// deeply nested child 2:
$dispatch('close')

..рдФрд░ рдЕрдЧрд░ рд╡реЗ рдмрдЪреНрдЪреЗ рдерд░реНрдб-рдкрд╛рд░реНрдЯреА-рд▓рд┐рдмрд╛рд╕ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдм рдЦрд░рд╛рдм рд╣реЛ рдЧрдП рд╣реИрдВред рдпрд╛ рдмреАрдЪ рдореЗрдВ рдХрд┐рд╕реА рдШрдЯрдХ рдореЗрдВ рдШрдЯрдирд╛ рдХреЛ рдкрдХрдбрд╝рдирд╛ рд╣реИ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк $dispatch() рдЖрдЧреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рддрдХ рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВред рдФрд░ рдЗрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдХреЛрдб рдХреЛ рджреЗрдЦрдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕реА рдШрдЯрдирд╛ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдФрд░ рдХреБрдЫ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

$emit рдФрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╢реНрд░реЛрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЖрдк рд╣рд░ рдЬрдЧрд╣ рд╕рд░рд▓, рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдИрд╡реЗрдВрдЯ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡реЗ рдЯрдХрд░рд╛рдПрдВрдЧреЗ рдирд╣реАрдВ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдИрд╡реЗрдВрдЯ рдХрд╛ рдЕрдкрдирд╛ рдХреЙрд▓рдмреИрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ @close="callback рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реЛрддрд╛ рд╣реИред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╕ рдпрд╣реА рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдиреЗ рдХрд┐рд╕реА рднреА рдкреНрд░рддрд┐рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП *рд╡рд┐рдХрд▓реНрдк * рдХреЛ рдирд╣реАрдВ рд▓рд┐рдпрд╛,

рдЕрдЧрд░ рд╣рдордиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рджреЛрдиреЛрдВ рдкреНрд░рддрд┐рдорд╛рди рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЙрдирдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рд╣рдо рдРрд╕рд╛ рдирд╣реАрдВ рд╕реЛрдЪрддреЗ, рдЙрдкрд░реЛрдХреНрдд рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдФрд░ рдмрд╣реБрдд рдХреБрдЫред

рдЗрд╕рд▓рд┐рдП, рд╣рдо "рдЧреНрд▓реЛрдмрд▓ рдмрд╕" рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд░рд╛рд╕реНрддрд╛ рдЫреЛрдбрд╝рддреЗ рд╣реБрдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЙрди рд╕рдордЭреМрддреЛрдВ рддрдХ рд▓реЗ рдЬрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреА рдЪрд┐рдВрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЕрднреА рддрдХ рдЖрдкрдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХреЗрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ $ рдкреНрд░реЗрд╖рдг рдФрд░ $ рдкреНрд░рд╕рд╛рд░рдг рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ "рд╣рдорд╛рд░рд╛" рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реНрдерд┐рддрд┐ рдХреЛ рдХреИрд╕реЗ рд╕реБрдзрд╛рд░ рд╕рдХрддрд╛ рд╣реИ?

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

@cnweibo рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рдкрдХреНрд╖реЛрдВ рдореЗрдВ рдмрд╣реБрдд рд╡рд┐рд╕реНрддреГрдд рддрд░реНрдХ рд╣реИрдВ, рдФрд░ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдореИрдВ "рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреА рдмрд╛рдд рдирд╣реАрдВ рджреЗрдЦрддрд╛ред рдЖрдЧреЗ рддрд░реНрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдкрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдПрдХ рдкреНрд▓рдЧрдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЗрддрдирд╛ рдХрдард┐рди рдирд╣реАрдВ рд╣реИред

@LinusBorg рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЗ рдЙрддреНрддрд░ рд▓рд┐рдЦрдиреЗ рдореЗрдВ

рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ $рдкреНрд░реЗрд╖рдг рдФрд░ $рдкреНрд░рд╕рд╛рд░рдг рдкрд╕рдВрдж рд╣реИ

рдореБрдЭреЗ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ $dispatch ред $broadcast рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ рдЕрдЬреАрдм рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, $dispatch рд╕рд┐рд░реНрдл рдЗрд╡реЗрдВрдЯ рдмрдмрд▓рд┐рдВрдЧ рд╣реИ рдЬреЛ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдХрдИ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рдмреАрдЪ рд╕рд░реНрд╡рд╡реНрдпрд╛рдкреА рд╣реИред $broadcast ... рдЗрддрдирд╛ рдирд╣реАрдВред рдПрдХрдорд╛рддреНрд░ рдЪреАрдЬ рдЬреЛ рдореИрдВрдиреЗ рдХрднреА рд╕рд╛рдордирд╛ рдХреА рд╣реИ рд╡рд╣ рдбрдмреНрд▓реНрдпреВрдкреАрдПрдл рдореЗрдВ "рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди" рдШрдЯрдирд╛рдПрдВ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реЗ рджреГрд╢реНрдп рдкреЗрдбрд╝ рдХреЛ рд╕рдмрд╕реЗ рдКрдкрд░реА рддрддреНрд╡ рд╕реЗ рдореВрд▓ рдШрдЯрдирд╛ рдХреЗ рд╕реНрд░реЛрдд рддрдХ "рд╕реБрд░рдВрдЧ" рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдХреЗрд╡рд▓ рд╕рдВрдмрдВрдзрд┐рдд рддрддреНрд╡реЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдиреАрдЪреЗ рд╕реАрдзреЗ рдиреАрдЪреЗ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕рдм рдХреБрдЫ _spread_ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдЖрдкрдХреЛ рдЕрдкрдиреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдирд╛рдо рджреЗрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рд╣реЛрдЧрд╛

рдореИрдВ рдЗрд╕рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдФрд░ рд╡реИрд╕реЗ рднреА рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдпрд╣реА рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд▓реЛрдЧ jQuery рдкрд░ рдХрд░рдиреЗ рдХреЗ рдЖрджреА рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗрд╡рд▓ рд╣реИрдВрдбрд▓рд░ рдХреЛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ "рд╕реНрд░реЛрдд" рдСрдмреНрдЬреЗрдХреНрдЯ рднреЗрдЬрддреЗ рд╣реИрдВ рдФрд░ рдЖрдк рд╢рд╛рдпрдж рдЙрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдВрджрд░реНрдн рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╕рдВрдХреЗрдд: instanceof )ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, DOM рдИрд╡реЗрдВрдЯ рдореЗрдВ event.target рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЛ рд╕реНрдерд┐рд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд▓рд╛рдн рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ "рд╕рдВрдШрд░реНрд╖" рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдмрд╣реБрдд рдХрдард┐рди рд╣реИ (рдПрдХ рдШрдЯрдирд╛ рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ)ред

рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ VueJS рдЯреАрдо рдХреЗ рд▓рд┐рдП рдЗрддрдиреА рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рдХреНрдпреЛрдВ рд╣реИред рдЕрдЧрд░ рд▓реЛрдЧ $dispatch рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╕рд╛рд╡рдзрд╛рдиреА рдирд╣реАрдВ рдмрд░рдд рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╣реБрдд рд╕реА рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡реЗ рдЧрд▓рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдк рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд▓рд╛рдкрд░рд╡рд╛рд╣ рд╣реЛрдиреЗ рд╕реЗ "рд░рдХреНрд╖рд╛" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреА рджреВрд░ рдЬрд╛рдПрдВрдЧреЗ?

рдпрд╣ рдареАрдХ рд╣реИ рдЬрдм рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рд╕реАрдзрд╛ рдмрдЪреНрдЪрд╛ рд╣реЛрддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╢реНрд░реЛрддрд╛ рдХреЗ рд╕рд╛рде $emit() рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдирд╣реАрдВ рд╣реИ, рдпрд╛ рддреЛ ..

рдИрдорд╛рдирджрд╛рд░ рд╕рд╡рд╛рд▓ (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ Vue рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реВрдВ), рд╣рд░ рд╕реНрддрд░ рдкрд░ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрдпрд╛ рдЖрдкрдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдкрд░ $emit рдШрдЯрдирд╛ рднреА рдирд╣реАрдВ рдХрд░рдиреА рд╣реИ? рдпрд╣ рдмрд╣реБрдд рдХрд╖реНрдЯрдкреНрд░рдж рд▓рдЧрддрд╛

рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ (https://github.com/vuejs/vue-cli/issues/123#issuecomment-233071630) рдХреЗ рд▓рд┐рдП "рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕" рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ vue-cli рдкрд░ рдХрд┐рд╕реА рдореБрджреНрджреЗ рдкрд░ рдХрд┐рд╕реА рдиреЗ рдХрд╣рд╛ рд╣реИ:

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдВрдд рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕рдВрддреБрд▓рди рдХрд╛ рд╕рд┐рд░реНрдл рдПрдХ рдореАрдЯрд░ рд╣реИред рд╣рдо рдЕрдкрдиреЗ рд╕рднреА (рдЕрдзрд┐рдХрд╛рдВрд╢) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рддрдиреЗ рдирд┐рд░реНрдгрдп рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рддрдиреЗ рдпрд╛ рдХреМрди рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рджрдо рдкрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

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

рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдПрдХ рдкреНрд▓рдЧрдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЗрддрдирд╛ рдХрдард┐рди рдирд╣реАрдВ рд╣реИред

@yyx990803 рд╢рд╛рдпрдж рдпрд╣реА _I'll_ рдЕрдВрдд рдХрд░ рд░рд╣рд╛ рд╣реИ... рд╢рд╛рдпрджред

@LinusBorg рднреА:

рдЗрд╕рд▓рд┐рдП, рд╣рдо "рдЧреНрд▓реЛрдмрд▓ рдмрд╕" рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд░рд╛рд╕реНрддрд╛ рдЫреЛрдбрд╝рддреЗ рд╣реБрдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЙрди рд╕рдордЭреМрддреЛрдВ рддрдХ рд▓реЗ рдЬрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдЖрдк "рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢" рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЖрдк рдордЬрдмреВрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред :)

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдПрдХ рд╣реА рд╕реБрд╡рд┐рдзрд╛ рдХреЛ dispatch рдФрд░ рдПрдХ EventBus рд╡рд┐рдзрд┐рдпреЛрдВ рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ?
рдпрд╣ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ

@posva рдореИрдВ рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, рдЖрдк рдореВрд▓ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рдореЙрдбреНрдпреВрд▓ рдкрд░ рдИрд╡реЗрдВрдЯ рдмрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк рдЗрд╕реЗ рдХрд╣реАрдВ рдФрд░ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ $emit , рдирд╣реАрдВ? рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рдЯреАрдмреАрдПрдЪред рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рджреГрдврд╝ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдореИрдВ рд╣рд░ рдмрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ VueJS рдЯреАрдо рдХреЗ рд▓рд┐рдП рдЗрддрдиреА рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рдХреНрдпреЛрдВ рд╣реИред рдЕрдЧрд░ рд▓реЛрдЧ $dispatch рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╕рд╛рд╡рдзрд╛рдиреА рдирд╣реАрдВ рдмрд░рдд рд╕рдХрддреЗ рд╣реИрдВ,

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

рдпрд╣ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рдордЭ рд╕рдХреЗрдВ рдХрд┐ рдЕрдЧрд░ рдкреВрд░реА рдЯреАрдо рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рдпрд╣ рд╣рдорд╛рд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ, рд╣рдореЗрд╢рд╛ рдПрдХ рдирд┐рдореНрди рд╕рдорд╛рдзрд╛рди рд╣реИ", рддреЛ рд╣рдо рдЗрд╕реЗ рдореВрд▓ рд╕реЗ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВред

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдореИрдВ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рдирд╡реАрдиреАрдХреГрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╣реБрдд рд╕реА рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡реЗ рдЧрд▓рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдк рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд▓рд╛рдкрд░рд╡рд╛рд╣ рд╣реЛрдиреЗ рд╕реЗ "рд░рдХреНрд╖рд╛" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреА рджреВрд░ рдЬрд╛рдПрдВрдЧреЗ?

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдирд╛рдЬреБрдХ рд╕рд╡рд╛рд▓ рд╣реИ рдФрд░ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдард┐рди рд╕рдВрддреБрд▓рди рд╣реИред рд╣рдореЗрдВ рдХреЗрд╕-рджрд░-рдорд╛рдорд▓реЗ рдХрд╛ рдиреНрдпрд╛рдп рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣ рдареАрдХ рд╣реИ рдЬрдм рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рд╕реАрдзрд╛ рдмрдЪреНрдЪрд╛ рд╣реЛрддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╢реНрд░реЛрддрд╛ рдХреЗ рд╕рд╛рде $emit() рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдирд╣реАрдВ рд╣реИ, рдпрд╛ рддреЛ ..

рдИрдорд╛рдирджрд╛рд░ рд╕рд╡рд╛рд▓ (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ Vue рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реВрдВ), рд╣рд░ рд╕реНрддрд░ рдкрд░ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрдпрд╛ рдЖрдкрдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдкрд░ $emit рдШрдЯрдирд╛ рднреА рдирд╣реАрдВ рдХрд░рдиреА рд╣реИ? рдпрд╣ рдмрд╣реБрдд рдХрд╖реНрдЯрдкреНрд░рдж рд▓рдЧрддрд╛ рд╣реИред

рдЪреВрдВрдХрд┐ рдореИрдВ рд╕реАрдзреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛-рдмрд╛рд▓-рд░рд┐рд▓реАрдЬрд╢рд┐рдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ $emit() рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

рдЗрд╕рд▓рд┐рдП, рд╣рдо "рдЧреНрд▓реЛрдмрд▓ рдмрд╕" рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд░рд╛рд╕реНрддрд╛ рдЫреЛрдбрд╝рддреЗ рд╣реБрдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЙрди рд╕рдордЭреМрддреЛрдВ рддрдХ рд▓реЗ рдЬрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдЖрдк "рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢" рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЖрдк рдордЬрдмреВрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред :)

рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╣рдо рдЖрдкрдХреЗ рдЬреАрд╡рди рдХреЛ рдереЛрдбрд╝рд╛ рдХрдард┐рди рдмрдирд╛рддреЗ рд╣реИрдВ - рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

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

рд╣рдо рдЖрдкрдХреЛ $emit() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рдо рдмрд╕ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЕрдкрдирд╛ рд░рд╛рд╕реНрддрд╛ рдереЛрдбрд╝рд╛ рдХрдард┐рди рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ Vue рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ: Vue.prototype.$bus = new Vue()
рдХреБрдЫ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рдирд╛ рдмрд╣реБрдд рд░рдЪрдирд╛рддреНрдордХ рдирд╣реАрдВ рд╣реИ...
рдореБрдЭреЗ рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рд░рд╣реЗрдЧреА

@posva

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рд╣рд░ Vue рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдореЗрдВ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ: Vue.prototype.$bus = new Vue()

рдореБрдЭреЗ рд╡рд╣ рдкрд╕рдВрдж рд╣реИред рдмрд╣реБрдд рдЪрд╛рд▓рд╛рдХред

рдХреБрдЫ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рдирд╛ рдмрд╣реБрдд рд░рдЪрдирд╛рддреНрдордХ рдирд╣реАрдВ рд╣реИ

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

рдореБрдЭреЗ рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рд░рд╣реЗрдЧреА

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

рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрд╕ рдЖрдЦрд┐рд░реА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордЬрд╛рдХ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрд╣рд╛, рдореИрдВ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рджреЗрдЦрддрд╛ рд╣реВрдВ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╕реНрдпрд╛ рдвреВрдВрдвреВрдВрдЧрд╛ред рдЕрд╕рд▓ рдореЗрдВ, рдХреБрдЫ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдореИрдВрдиреЗ рдПрдореНрдмрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВ рдПрдХ "рд╕реЗрд╡рд╛" рд▓рд┐рдЦрддрд╛ рд╣реВрдВ рдЬреЛ рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╢реНрд╡рд┐рдХ рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрдХ рдХреА рддрд░рд╣ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ, рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рди-рдмреВрдЭрдХрд░ рд╣рда рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реВ рдкрд╕рдВрдж рд╣реИред рдореИрдВ рдмрд╕ рдЗрд╕реЗ _рдкреНрдпрд╛рд░_ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рддреБрдореНрд╣реЗрдВ рдкрддрд╛ рд╣реИ?

рдХреНрдпрд╛ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдкрд░ $emit рдШрдЯрдирд╛ рднреА рдирд╣реАрдВ рдХрд░рдиреА рд╣реИ

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

рдЬреИрд╕реЗ:

<div>
  <a-button @click="modalShown = true">Open modal</a-button>
  <a-modal v-if="modalShown">
    <a-button @click="modalShown = false">Close modal</a-button>
  </a-modal>
</div>

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рд╕рдордп рдЦреБрдж рдХреЛ рджреЛрд╣рд░рд╛ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░ рджреВрдВрдЧрд╛ред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЪрд░реНрдЪрд╛ рдХрдИ рдХрд╛рдордХрд╛рдЬ рдХреЛ рдХреБрдЫ рдорд╛рдирдХ рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдмрддрд╛рддреЗ рд╣реБрдП рдШреВрдорддреА рд╣реИ рдЬреЛ рдХрд┐ рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред

@LinusBorg :

рдЦреИрд░, рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЯреАрдо рдореЗрдВ рдХреЛрдИ рднреА $ рдкреНрд░реЗрд╖рдг() рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдЙрдкрдпреЛрдЧрдХреЗрд╕ рдХреЛ рдЗрдВрдЧрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдерд╛ (рди рдХреЗрд╡рд▓ $emit()

рдпрд╣ рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХреЛрдИ рд╕рд┐рд╡рд┐рд▓ рдЗрдВрдЬреАрдирд┐рдпрд░ рдореБрдЭрд╕реЗ рд░рд╛рдЬрдорд╛рд░реНрдЧ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЛ рдмрдВрдж рди рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдкреВрдЫ рд░рд╣рд╛ рд╣реЛ:

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

рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдБ, "рдареАрдХ рд╣реИ, рдЬрд╝рд░реВрд░, рдЖрдк рдЗрд╕реЗ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдмрдврд╝рд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ рдЕрдЧрд▓реЗ рдСрдл-рд░реИрдВрдк рдХреЗ рд▓рд┐рдП рдмрд╕ 10 рдХрд┐рдореА рдЖрдЧреЗ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рд╕рдВрднрд╛рд▓ рд▓реВрдБрдЧрд╛ред"

:) рдЖрдкрдХреЗ рдЙрддреНрддрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдЖрдк рд╕рднреА рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдЦреБрд▓реЗ рд╣реИрдВ, рдХрдо рд╕реЗ рдХрдоред рдПрдХ рдЕрдЪреНрдЫреА рдЯреАрдо рд▓рдЧрддреА рд╣реИред

рдпрд╣ рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХреЛрдИ рд╕рд┐рд╡рд┐рд▓ рдЗрдВрдЬреАрдирд┐рдпрд░ рдореБрдЭрд╕реЗ рд░рд╛рдЬрдорд╛рд░реНрдЧ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЛ рдмрдВрдж рди рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдкреВрдЫ рд░рд╣рд╛ рд╣реЛ:

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

рдореИрдВ рдЕрдкрдирд╛ рдЦрд░рд╛рдм рд░реВрдкрдХ рднреА рдЬреЛрдбрд╝реВрдВрдЧрд╛ред :) рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ рдпрд╣ рдЕрдзрд┐рдХ рдкрд╕рдВрдж рд╣реИ:

  • "рдпрд╣ рд╕рдбрд╝рдХ рд▓реЛрдЧреЛрдВ рдХреЛ рдЙрдирдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬрд╝ рджреМрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддреА рд╣реИред рдЧрддрд┐ рд╕реАрдорд╛ рдкрд░ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рдзреАрдорд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмрдВрдкрд░ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред"
  • "рд▓реЗрдХрд┐рди рдореИрдВ рддреЗрдЬреА рд╕реЗ рдЕрдкрдиреЗ рдЧрдВрддрд╡реНрдп рдкрд░ рдЬрд▓реНрджреА рдкрд╣реБрдВрдЪрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ!"
  • "рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рдЖрдкрдХреЛ рдХреБрдЫ рдмрд╛рд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рд░реНрд╡рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рд╕рдбрд╝рдХ рдХреЗ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ 1.5 рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рджреЗрдЦрддреЗ рд╣реИрдВ, рдФрд░ рджреБрд░реНрдШрдЯрдирд╛рдУрдВ рдХреА рдорд╛рддреНрд░рд╛ рдФрд░ рдЕрдЧрд▓реЗ рдСрдл-рд░реИрдВрдк рдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрд╕ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рдбреНрд░рд╛рдЗрд╡рд░ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рд╣реИ рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд┐рдпрд╛ рд╣реИред"
  • "рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡реЗ рдмрдВрдкрд░ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИрдВ!"
  • рдареАрдХ рд╣реИ, 99% рдЧрдВрддрд╡реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рджреВрд╕рд░реА рд╕рдбрд╝рдХ рдЙрддрдиреА рд╣реА рддреЗрдЬрд╝ рд╣реИ рдЬрд┐рддрдиреА рдпрд╣ рдмрдВрдкрд░ рд╕реЗ рдкрд╣рд▓реЗ рдереА, рдмрд╕ рдЗрд╕реЗ рд▓реЗрдВред
  • "рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рджреВрд╕рд░реА рд╕рдбрд╝рдХ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ! рджреГрд╢реНрдп рдЙрддрдирд╛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ!"
  • ...

рдХреБрдЫ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рдирд╛ рдмрд╣реБрдд рд░рдЪрдирд╛рддреНрдордХ рдирд╣реАрдВ рд╣реИ

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @posva рдХрд╛ рдорддрд▓рдм рдерд╛: "рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИ" рдПрдХ рд░рдЪрдирд╛рддреНрдордХ рддрд░реНрдХ рдирд╣реАрдВ рд╣реИ рдЬрдм рдХреБрдЫ рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рд╛рде рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдХреБрдЫ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдз, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреА рдорд╛рдВрдЧ рдХрд░рддрд╛ рд░рд╣рддрд╛ рд╣реВрдВред

рд╣рд╛рдБ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЖрдкрдиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдЪреНрдЫреЗ рд░рд╛рдЬрдорд╛рд░реНрдЧ рдХреЛ рдЙрдбрд╝рд╛ рджрд┐рдпрд╛ рдФрд░ рд░рдмрд░рдпреБрдХреНрдд рдбрд╛рдорд░ рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдмрдирд╛рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдХрд╣реАрдВ рдкрдврд╝рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕рд╛рдл рд╣реИред рд╕рд╛рде рд╣реА, рдпрд╣ рдЕрддрд┐рд░рд┐рдХреНрдд 10 рдХрд┐рдореА рд╣реИред :)

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

рдЖрдк рдХреЛрдб рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рдЬреА рдХрд╣рд┐рдпреЗ

@posva рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдкрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдерд╛ред рдиреЛрдЯ: рдпрджрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рд╕реЛрдЪрдирд╛ рд╣реИ рдХрд┐ рдмрд┐рдирд╛ $ рдкреНрд░реЗрд╖рдг рдХреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ рдпрд╣ рдореЗрд░реА рдмрд╛рдд рдХреЛ рд╕рд╛рдмрд┐рдд рдХрд░рддрд╛ рд╣реИред

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

$dispatch()

// recursive-child
<template>
  <recursive-child></recursive-child>
  <button @click="dispatch">Do something</button>
<template>

<script>
  export default{
    methods: {
      dispatch() { this.$dispatch('do-something') }
    },
    events: {
      'do-something': function () { 
         // do something, or don't
         return true // nessessary to make the event bubble up further. Don't like the un-expressivness of this
       }
    }
  }
</script>

$emit()

// recursive-child
<template>
  <recursive-child @do-something="doSomething"></recursive-child>
  <button @click="doSometing">Do something</button>
<template>

<script>
  export default{
    methods: {
      doSomething() {
        // do someting, or don't
        this.$emit('do-something')
      }
    }
  }
</script>

рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рдХрдИ рдмрджрддрд░ рд╣реИ?

рдПрдХ рдФрд░ рдорд┐рд▓рд╛? :)

рдпрдХреАрдирди рдареАрдХред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╡реЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдирд╣реАрдВ рд╣реИрдВ рдлрд┐рд░ рднреА рдЙрд╕ рддрд░рд╣ рдиреЗрд╕реНрдЯреЗрдб рд╣реИрдВ?

рдареАрдХ рд╣реИред рдпрд╣рд╛рдБ рд╕реБрдмрд╣ рдХреЗ 5 рдмрдЬ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдЖрдкрдХрд╛ рдзрдиреНрдпрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдард┐рди рджрд┐рди рдмрд┐рддрд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБред рдЕрдЧрд░ рдореИрдВ рдмрд╛рдж рдореЗрдВ рдХреБрдЫ рдмреЗрд╣рддрд░ рд▓реЗрдХрд░ рдЖрддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдЗрд╕реЗ рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ рдпрджрд┐ рдирд╣реАрдВ, рддреЛ, рдпрд╛ рддреЛ рдЖрдк рдЬреАрдд рдЧрдП рд╣реИрдВ рдпрд╛ рдореИрдВрдиреЗ рд░реБрдЪрд┐ рдЦреЛ рджреА рд╣реИ :)

рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╡реЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдирд╣реАрдВ рд╣реИрдВ рдлрд┐рд░ рднреА рдЙрд╕ рддрд░рд╣ рдиреЗрд╕реНрдЯреЗрдб рд╣реИрдВ?

рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ @event= рд╢реНрд░реЛрддрд╛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ $emit() , рдФрд░ $dispatch() рд▓рд┐рдП рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред

рдпрд╣ рдЕрдЪреНрдЫрд╛ рдпрд╛ рдмреБрд░рд╛ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреНрд░рд┐рдпрд╛рддреНрдордХрддрд╛ рдмрдирд╛рдо рдЕрднрд┐рд╡реНрдпрдВрдЬрдирд╛ рдкрд░ рдЬреЛрд░ рджреЗрддреЗ рд╣реИрдВред

рдФрд░ рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВред рдпрджрд┐ рдХрд┐рд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдкрдХреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рддрдХ рдХрд┐рд╕реА рдШрдЯрдирд╛ рдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛рдмрджреНрдз рдХрд░рдирд╛ рд╣реИ рддреЛ рдРрд╕рд╛ рдХреБрдЫ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

<child-comp @event="$emit('event', $arguments)>
  • рдЖрдк "рдпреБрдЧреНрдорди" рдХрд╛ рд╢реЛрдХ рдордирд╛рдПрдВрдЧреЗ рдЬреЛ рдпрд╣ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдХрд░рддрд╛ рд╣реИред
  • рдореИрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░реВрдВрдЧрд╛
  • рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╣реИ рд▓реЗрдХрд┐рди рдХреЛрдИ рдмрдбрд╝реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИред
  • рдФрд░ рдореИрдВ рдЕрднреА рднреА рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде, рд╕рдВрднрд╡рддрдГ рдПрдХ рдЕрд▓рдЧ рдЕрдиреБрдХреВрд▓рди рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдЯреЛрд░ - рд▓реЗрдХрд┐рди рдпрд╣ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд░рд┐рджреГрд╢реНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдХреЗ рд╕рд╛рде рдмрд╣рд╕ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИред

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

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

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

рдореИрдВрдиреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ "рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ" рдХреЗ рд╕рд╛рде рдмрд╣рд╕ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИред

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

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

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

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

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

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

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