@ yyx990803 ă
ăăăŤăĄăŻăvuejsăłă˘ăăźă ă
vuejs2.0ă使ç¨ăă茪ĺăłăłăăźăăłăéăŽăă¤ăłăăăźăă¤ăłăé俥ăŽéŠĺăŞă˝ăŞăĽăźăˇă§ăłăčŚă¤ăăăŽăŤčŚĺ´ăăŚăăžăă
vuejs2.0ăŻ$ broadcastă$ dispatch apiăĺťć˘ăăăăă$ Broadcastă$ dispatchăvuejs2.0ă¤ăăłăăăšćŠč˝ăćäžăă䝣ćżă˝ăŞăĽăźăˇă§ăłăčŚă¤ăăăŽăŻé常ăŤĺ°éŁă§ăă
ăăŽăăăăŻăŤé˘ăăăšăŹăăăăăăŤć¸ăăăŽă§ăăăăŤč˛źăäťăăŚăăăŤč°čŤăăăă¨ćăăžăă
vuejs2.0ăŤé˘ăăĺŞăăă˘ă¤ăă˘ă解湺çăăŞăéăăéăăŞăă§ăă ăăă
<pcom id=1>
<soncoma></soncoma>
<soncomb></soncomb>
</pcom>
<pcom id=2>
<soncoma></soncoma>
<soncomb></soncomb>
</pcom>
ä¸č¨ăŽăłăźăă§ăŻăăă¨ăă°ăpcom1ăŽĺăăsoncoma $ emită¤ăăłăăé俥ăăĺ ´ĺă揥ăŽăăăŤăŞăăžăă
bus.$emit('son-coma-event',somedata)
pcomă§ăŻăăăŽă¤ăăłăă揥ăŽăăăŤčăăžăă
bus.$on('son-coma-event',function(){})
pcom1ă ăăăăŽă¤ăăłăăĺŚçăăăăăŤăăăăŽă§ăăăćŽĺżľăŞăăpcom2ăăăăĺŚçăăžăă
ăăŽçść
ăŤĺăçľăćšćłăŻďź
ç§ăŽă˘ăăŞăąăźăˇă§ăłăŽĺéżçăŽ1ă¤ăŻăthisă$ parentăă¤ăăłăăăšă¨ăăŚä˝żç¨ăăăă¨ă§ăă
ĺäžăŽĺ ´ĺďź
this.$parent.$emit('some-event',someData)
茪ăŽĺ ´ĺďź
{
created(){
this.$on('some-event',function(){})
}
ä¸č¨ăŽĺéżçăŽăă¤ăăšçšăŻćŹĄăŽă¨ăăă§ăă
ăăč¤éăŞćĄäťśă§ăŻăĺ帰ăłăłăăźăăłăăŞăŠăăŤăšăżă ă¤ăăłăăˇăšăă ăŤéŠăăă˝ăŞăĽăźăˇă§ăłăčŚă¤ăăăŽăăăĺ°éŁăŤăŞăăžăă
<pcom>
<recursivechild>
<recursivechild>
<recursivechild>
</recursivechild>
</recursivechild>
<recursivechild>
</pcom>
<pcom>
<recursivechild>
<recursivechild>
<recursivechild>
</recursivechild>
</recursivechild>
<recursivechild>
</pcom>
recursivechildăŻăŠăŽăăăŤç´ćĽăŽpcomăłăłăăźăăłăă¨é俥ăăžăăďź
ăăăăŽăăăăŻăŤă¤ăăŚăăăŞăăŽčăăăă¤ăłăăćăăŚăă ăăă
ăăăă¨ăăďź
ä¸čŹçăŞććĄč¨čŤăŞăŽă§ăăžă ăăŁăăŤăä˝ćăăŚăăžăăă ĺż
čŚăŤĺżăăŚăăă˘ăłăšăăŹăźăˇă§ăłç¨ăŤä˝ćăăăă¨ćăăžăă
ăăăă¨ăăďź
ăăăŻ2.0ăŽĺ¤ć´ă§ăă§ăŤćŁĺ˝ĺăăăŚăăžă
ăăăăłăăźă§ăďź
$dispatch
ă¨$broadcast
ć¨ĺĽ¨ăŤĺŻžĺŚăăćšćł
$dispatch
ă¨$broadcast
ăéć¨ĺĽ¨ăŤăăççąăŻăăłăłăăźăăłăăăŞăźăŽć§é ăŤäžĺăăă¤ăăłăăăăźăŻăăłăłăăźăăłăăăŞăźă大ăăăŞăććăŤă¤ăăŚć¨čŤăăăŽăéŁăăĺ ´ĺăăăăăă§ăďźç°ĄĺăŤč¨ăă°ăăăă§ăŻăăăžăăďźă大čŚć¨ĄăŞă˘ăăŞă§éŠĺăŤćĄĺźľă§ăăăăăĺžă§čŚçăćăăăăăŤč¨ĺŽăăăăăăžăăďźă$dispatch
ă¨$broadcast
ăăĺ ĺźăłăłăăźăăłăéăŽé俥ă解湺ăăžăăă 䝣ăăăŤă Node.jsăŽ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- dom / 6
ăăŽčŚäťśăŤĺŻžĺŚăăăăăŽç°ĄĺăŞč§ŁćąşçăŻăăăžăăďź
ăăŞăźĺ ăŽă¤ăăłăă¨ăăŽçŹčŞăŽăăźăżăć´ć°ăăžă
ăăăŻăč¤éăŞă¤ăăłăăˇăšăă ă使ç¨ăăăŤăĺç´ăŤvuexă§č§Łćąşăăăžăă
vuexăŻăă˘ăăŞăąăźăˇă§ăłăŹăăŤăŽă°ăăźăăŤéççść ăăźăżçŽĄçăŤćéŠă§ăă
ăăăăç§ăç解ăăŚăăăăăŤăçšĺŽăŽăăźăŤăŤăłăłăăźăăłăăăźăżăŤăŻéŠăăŚăăŞăĺŻč˝ć§ăăăăžă
玥ç
ăăăźăŤăŤăăŻăĺä¸ăŽăłăłăăźăăłăăŽăżăćĺłăăžăă ăăŞăăŽăŚăźăšăąăźăšăŻăĺ
¨ä˝ăŽçść
ă玥çăăŚăăžă
č¤ć°ăŽăłăłăăźăăłăăŞăŽă§ăăăŽă°ăăźăăŤă
ăžăăvuexăŻă˘ă¸ăĽăźăŤďźçść
ăľăăăŞăźďźăćă¤ăă¨ăă§ăăăăăăă°ăăźăăŤĺ¤ć°ăă§ăŻăăăžăăă
ä¸ç¨ŽăŽăă°ăăźăăŤăă çŹčŞăŽvuexă使ç¨ăăŚăłăłăăźăăłăăŽă°ăŤăźăăé§ĺă§ăăžă
ă˘ă¸ăĽăźăŤă
ăăŽăă¤ăăłă寞ĺ
ąćçść
ăăŽč°čŤĺ
¨ä˝ăŻć°ăśćă§č§Łćąşăăăžăă
䝼ĺăçľčŤăŻăă°ăăźăăŤă¤ăăłăăăšăžăăŻvuexăŽăăăăă使ç¨ăăăă¨ă§ăă ă ăăç§ăŻ
vuexă¨ăăŽäťçľăżăŤă¤ăăŚăăŁă¨čŞăăă¨ăăĺ§ăăăžăă
ć¨ă2016ĺš´9ć1ćĽăŤăŻă16ć17ĺcnweibo [email protected]ăŻć¸ăăžăăďź
@posva https://github.com/posva ăć ĺ ąăăăă¨ăăăăăžăă ăăš
ăăăŻăĺä¸ăŽăłăłăăźăăłăăćăĺç´ăŞĺä¸ăŽăłăłăăźăăłăă§ĺŽéăŤăăžăćŠč˝ăăžă
ăă¤ăłăé俥ă ĺăăłăłăăźăăłăăćă¤ăłăłăăźăăłăăč¤ć°ăăĺ ´ĺ
ăżă¤ăăĺéĄăçşçăăžăăăćŽĺżľăŞăăăăăăŻćŁĺ¸¸ăŞăąăźăšă§ăă ĺ¤ăăŽ
ĺ ´ĺăŤăăŁăŚăŻăă¤ăăłăă使ç¨ăăăăŽăŻăăăă¤ăăŤĺąăăĺ°ăăŞăăźăżăć´ć°ăăăă¨ă§ă
çšĺŽăŽăłăłăăźăăłăă çžĺ¨ăŽă¤ăăłăăăšăŽĺŽčŁ ă§ăŻ
ĺŽĺ ăžăăŻçşäżĄăăźăăŤé˘ăăć ĺ ąďźç§ăŻăăšăŚăŽ_uidăčŚăŚăăžăă
ăłăłăăźăăłăăă¤ăăłăăŽé çˇăŤăăŽä¸ćăŽ_uidă使ç¨ă§ăăă§ăăăăďź ďźă ăăă§
vuejs2.0ăŻăĺŽéăŤăŻăă¤ăłăăăźăă¤ăłăă¤ăăłăé俥ăăľăăźăă§ăăžăăă ăăăă¨ă
ćŁç˘şăŞvuejs2.0ă¤ăăłăăăšăŻăăłăłăăźăăłăăżă¤ăăăăłăłăăźăăłăăżă¤ăăŽăżăăľăăźăăăžă
ăłăăĽăăąăźăˇă§ăłďź ăăŽčŚäťśăŤĺŻžĺŚăăăăăŽç°ĄĺăŞč§ŁćąşçăŻăăăžăăďź
ăăŞăźĺ ăŽă¤ăăłăăŤăăŁăŚăăŞăŹăźăăă_ITS OWNDATA_ăć´ć°ăăžă
vuexăŻăă˘ăăŞăąăźăˇă§ăłăŹăăŤăŽă°ăăźăăŤéççść ăăźăżçŽĄçăŤćéŠă§ăă
ăăăăç§ăç解ăăŚăăăăăŤăçšĺŽăŽăăźăŤăŤăłăłăăźăăłăăăźăżăŤăŻéŠăăŚăăŞăĺŻč˝ć§ăăăăžă
玥çďźăăŽĺéĄăŤă¤ăăŚăăŁă¨čăăŚăżăŚăă ăăă
â
ăăŽăšăŹăăăŤăľăăšăŻăŠă¤ăăăŚăăăăăăăăĺăĺăŁăŚăăžăă
ăăŽăĄăźăŤăŤç´ćĽčżäżĄăăGitHubă§čĄ¨ç¤şăăŚăă ăă
https://github.com/vuejs/vue/issues/3581#issuecomment -244008699ăăžăăŻăăĽăźă
ăšăŹăă
https://github.com/notifications/unsubscribe-auth/AFTLl1bjHqWTVDAkr8Fqbx0WiTuH16n2ks5qlooBgaJpZM4JyUfJ
ă
ăăŽĺéĄă解湺ăăžăă
@ktsn ăăă˘ăăŁăăŤăăăăă¨ăă ăăăŻăžăăŤç§ăç°ĄĺăŞč§Łćąşçăćăă§ăăăă¨ă§ăďź
@fnlctrl ăăăăăă˘ă¸ăĽăŠăźvuexçść
玥çăŤăăĺ¤ăăŽćéă貝ăăăžă
ăăăăăéĄăăăžăăďź
ç§ăŽćčŚă§ăŻă$ roadcastăŻĺż
čŚăăăžăăăč˝ä¸ăăĺ°éĺ
ˇăŽăăźăżăăăźăŽăżăĺż
čŚă§ăă
$ 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 ďź
$ dispatchăĺé¤ăăăŽăŻă˛ăŠăčăă ăŁăă¨ćăăžăă ăăăŻăăă¸ăĽă˘ăŤăăŞăźä¸ă§ăăăŞăłă°ă˘ăŻăˇă§ăł/ă¤ăăłăăŽćŚĺżľăĺŽčŁ ăăćĺăŽUIăăŹăźă ăŻăźăŻ/ăŠă¤ăăŠăŞă§ăŻăăăžăăă§ăăă ăăăŻĺĺăŤç˘şçŤăăăčăă§ăă ăćŞçĽăŽčŚŞăăŞăźă§ĺŻä˝ç¨ăĺźă辡ăăă¤ăăłăăăăŁăšăăăă§ăăăă¨ăŻăç§ăŤă¨ăŁăŚăăŠăăŤăŽăŹăˇăăŽăăăŤčăăăăă¨ăăĺćă§ăăŞăăăŽćŠč˝ăĺăé¤ăăŽă§ăăďź ăăŽč˛ŹäťťăŻăŚăźăśăźăŤäťťăăĺż čŚăăăăžăă ăăŽćŠč˝ăéŠĺăŤä˝żç¨ăăăă¨ăŻăăťă¨ăăŠăŽĺ¸¸čăăăă¨ćăăžăă ăăăŻć°ăăćŚĺżľă§ăŻăăăžăăďź
ăăŽăŠă¤ăăŠăŞăăDOMăDOMă¤ăăłăăŞăŠăŽéˇĺš´ç˘şçŤăăăWebăăŻăăă¸ăź/ćŚĺżľăŤĺşăĽăăŚć§çŻăăăŚăăĺ ´ĺăăăŽĺ¤ć´ăŽăĄăŞăăăŻĺŽéăŤăŻăăăăžăăăĺŽéăŤăŻăăă¸ăĽă˘ăŤăăŞăźăăăăŤă˘ăăăă誰ăăăŞăçść ă§ä˝ĺš´ăăăăăŚăăžăăćĺĽăč¨ăă ăłăłăăźăăłăăŽă˘ă¤ăă˘ăŻăWebăłăłăăźăăłăăŤé˘ăăW3CăŽććĄăŽăăăă§ăćčżĺăĺ ĽăăăăăăŽă§ăŻăăăžăăăďź ç§ăŽćčŚă§ăŻăă¤ăăłăĺŚçăăŠăŽăăăŤčĄăăăăăŤé˘ăăŚăVueăłăłăăźăăłăăé常ăŽDOMčŚç´ ă¨ĺć§ăŤĺä˝ăăăă¨ă ăăçăŤăăŞăŁăŚăăžăă
ă°ăăźăăŤă¤ăăłăăăšă使ç¨ăăăăăŤććĄăăă䝣ćżćĄăŻăďźéˇĺš´ăŤăăăŁăŚç˘şçŤăăăćŚĺżľă§ăăăăďźăăĺŽç¨çă§ĺšćçă§ç解ăăăăăăŽăăă§ăŤĺĺ¨ăăĺ ´ĺăç§ăŤăŻéčŤççă§ăă
ăăŽăšăŹăăăŽäťăŽććĄăŻăEmberJSăăăăăŠăŽăăăŤĺŽčĄăăăăăćăĺşăăăžăă é幤ăŽĺăŹăăŤăŽăłăłăăźăăłăăŤăăăăăŁă¨ăăŚăŻăăźă¸ăŁă˘ăŻăˇă§ăłă渥ăăžăă ă¨ăŚăéĺąă§ä¸ĺż čŚă§ăďź Vuejsăç§ăhttps://www.npmjs.com/package/ember-component-action-bubblingăć¸ăăççąă§ăă
ăăă¨ăŻĺĽăŤăç§ăŻăăŞăăŽĺłć¸é¤¨ăćŹĺ˝ăŤĺĽ˝ăă§ăă ăăăăçĺŁăŤăăăăŻă˛ăŠăĺ¤ĺă ăŁăă¨ćăăžăă
ă¤ăăłăăăšăăŠăă¤ă ăŻăă¤ăăłăăăźăšăŽă˘ăźăăăŻăăŁă厣č¨ĺăŽçść ăăźăšăŽă˘ăźăăăŻăăŁăăăĺŁăăă¨ăĺ¤ăĺ ´ĺăŤăăžăŁăăĺăăă¨ăčĄăăăăŽă˝ăŞăĽăźăˇă§ăłă¨ăăŚăŽăżććĄăăăžăăă
ăă¨ăă°ăăŚăźăśăźăăă°ă¤ăłă§ăăă˘ăăŞăăăă¨ăăžăăă¤ăăłăăăźăšăŽă˝ăŞăĽăźăˇă§ăłă§ăŻă揥ăŽăăăŤăŞăăžăă
ăă ăăăăăŤăŻăăă¤ăăŽĺéĄăăăăžăă ć大ăŽĺéĄăŻăă¤ăăłăăçşçăăă¨ăăŤDOMă§ăŹăłăăŞăłă°ăăăŞăăłăłăăźăăłăăĺ¤ć´ăĺăĺăăŞăăă¨ă¨ăă˘ăăŞăąăźăˇă§ăłăŽăŠăŽé¨ĺăă¤ăăłăăĺăĺăăăăžăŁăăăăăăŞăăă¨ă§ăă ăăăŤăă¤ăăłăăŽĺ俥č ăŻăčż˝ĺ ć ĺ ąăćäžăăăŞăéăăă¤ăăłăăăŠăăăćĽăŚăăăŽăăçĽăăă¨ăŻă§ăăžăăă çłă訳ăăăžăăăăăăăŻç§ăćąăŁăŚăă大čŚć¨ĄăŞăŻăŠăšăżăźăăĄăăŻă§ăăăĺăłä˝żç¨ăăĺż čŚăŻăăăžăăă
ăăă§ăŻăăšăăźăăăŤă˘ăăăźăă使ç¨ăăžăăăă
null
ăăľă¤ăłă¤ăłăăă¨ăŚăźăśăźăŽăă°ă¤ăłć
ĺ ąă襨示ăăăžăăăăŽçść ĺ¤ć°ăŤäžĺăăă˘ăăŞĺ ăŽăăšăŚăăăăŤĺżăăŚć´ć°ăăăžăă ă¤ăăłăăŻăăăžăăăăłăłăăźăăłăăŻĺ¸¸ăŤćŁăăć ĺ ąă襨示ăăăăăăłăłăăźăăłăăăă¤ăŠăă§ä˝ćăăăăăŻé˘äżăăăžăăă ă¤ăăłăă使ç¨ăăŚă°ăăźăăŤçść ăć´ć°ăăăă¨ăă§ăăžăăăć´ć°ă§ăăăŽăŤăŞăăăăăăŽă§ăăăăă
厣č¨ĺă˘ăăăźăă使ç¨ăăă¨ăăŚăźăśăźăă˘ăăŞăąăźăˇă§ăłă§ä˝ăăăŚăăăăŤé˘äżăŞăăăăźăŤăŤ/ă°ăăźăăŤçść ăŤćŁç˘şăŤĺżăăŚĺ¸¸ăŤĺăăăăŤčĄ¨ç¤şăăăăăăŤăłăłăăźăăłăăč¨čż°ă§ăăžăă ăăăVueăŽćĺłă§ăăă¨ç§ăŻäżĄăăŚăăžăăăă˝ăăăŚă§ă˘éçşăŽăťă¨ăăŠăŽăă¨ă¨ĺć§ăŤăăăăç解ăăăŽăŤăă°ăăćéăăăăăžăăă ăăăăç§ăăĄăăăŁăăă¨ăă¨ăŚăăăăăćăăžăă
硨éďźăăăăăŠăĄăźăżăçŁčŚăăŚăăă¨ăă°AJAXăŞăŻă¨ăšăăé俥ăăăăĺ¤ć´ăăăă¨ăăŤäťăŽă˘ăŻăˇă§ăłăĺŽčĄăăăă§ăăăă¨ăĺżăăŞăă§ăă ăăă ăă¨ăă°ăăŚăźăśăźăăă°ă¤ăłăăĺžăăloggedInăĺ¤ć°ăçŁčŚăăăăătrueăŽĺ ´ĺăŻăăăăăŁăźăŤçťĺăŞăŠăčŞăżčžźăżăžăă
ç§ăŻăăŞăăč¨ăŁăŚăăăă¨ăç解ăăŚăăžăăăăăă¤ăăŽăŠăłăă ăŞăłăłăăźăăłăăă°ăăźăăŤçść ăĺ¤ć´ăăăă¨ăŻăăăŽăŠăłăă ăŞăłăłăăźăăłăăă¤ăăłăăăăăŤă˘ăăăăăăă¨ă¨ĺăăă¨ăŻăăŠăăŤăăăăçĽăŁăŚăăă¨ćăăžăă ăăă§ăăă˘ăăŞăąăźăˇă§ăłăŽăăăźă誤ăŁăŚăăăźăăŁăăŤăŞăă¨ăăăžăŁăăĺăăŞăšăŻăăăăžăă
严ćšăŽăăŠăă¤ă ăăŻăŞăźăłăŞćšćłă§ĺŚçăăćšćłăăăăăăăŻé常ăăăŹăźă ăŻăźăŻăŽăŚăźăśăźăŽč˛Źäťťă§ăăăă¨ăŤăŞăăžăďźăăăŚăăăăšăă§ăďźă
1ă¤ăŽăĄăŤăăşă ăäťăŽăĄăŤăăşă ăăăçăŤăăŞăŁăŚăăçšĺŽăŽçśćłăăăăžăă ăă¨ăă°ăăă°ă¤ăłçść ăŻă˘ăăŞăąăźăˇă§ăłĺ ¨ä˝ăŤçĽăăăŚăăăăŽă§ăŞăăă°ăŞăăŞăăă¨ăŤĺćăăžăăă°ăăźăăŤçść ăŻçăŤăăŞăŁăŚăăžăă ăă ăăă˘ăăŞăąăźăˇă§ăłăŚăźăśăźăăŻăŞăăŻăăăăżăłăŻăé常ăĺŽéăŤăŚăźăśăźăăă°ă¤ăłăăăčĺžăŤăăăă¸ăăŻăĺŚçăăžăăăăăăŻăăă§ăźăłăŽä¸ä˝ă§ĺŚçăăăăăŽăŤăŞăăžăă ăăăŻăłăłăăźăăłăăăăăăžăăăăăŤăźăăăăăăžăăă ăăżăłăŻăăăăăĺŻä¸ăŽăă°ă¤ăłăŤććăŽăăăŞăăŽăéçĽăăĺż čŚăăăăžăăăăżăłăŻăăăăăăç´ćĽăăŞăăŽă°ăăźăăŤăŞçść ăĺ¤ć´ăăĺż čŚăăăăžăăă
ăăŽăăă$ dispatchăĺé¤ăăăăă¨ă§ăăăżăłăłăłăăźăăłăăăă˘ăăŞăąăźăˇă§ăłăŽăŚăźăśăźăťăăˇă§ăłă玥çăăă°ăăźăăŤăŞăă¸ă§ăŻăăčŞčăăăăŽćĺłăç´ćĽéçĽăăĺż čŚăăăăžăă ăăăŤăăăăăżăłăă˘ăăŞăąăźăˇă§ăłĺ ¨ä˝ăŤçˇĺŻăŤçľĺăăăžăă
ăžăăŻăăăżăłă10ăŹăăŤăŽćˇąăă§ăăšăăăă¤ăłăăłăăăăŽéĺ˝ăŤĺ°éăăăăăŤăăăšăŚăŽăŹăăŤă§v-on:login
ăăłăăŠăźă厣č¨ăăĺż
čŚăăăĺ ´ĺăăăăžăă ĺ
¨ăä¸čŚă§ăă
ĺŽéăăăšăŚăŽăŹăăŤă§v-on
ăĺŽčĄăăĺż
čŚăăăă¨ăăłăźăăŽäżĺŽăéŁăăăŞăăžăă
ćăăăŤăçść ăç´ćĽĺ¤ć´ăăă ăă§ăĺéĄăçşçăăĺŻč˝ć§ăăăăžăăăVuexăŻçŞçśĺ¤ç°ă¨ă˘ăŻăˇă§ăłă§ăăŽĺéĄă解湺ăăžăă ăăăŚăăăă¤ăăŽč§ŁćąşçăäťăŽč§ŁćąşçăăăćłćĄăŤăăžăéŠĺăăăă¨ăŻäşĺŽă§ăăă厣č¨ĺăă¸ăăŻăăăčŻăé¸ćč˘ă§ăŻăŞăăŁăă¨ăăçśćłăŤééăăăă¨ăŻăăăžăăă
ăăŞăăŽçšĺŽăŽăąăźăšă§ăŻăç§ăŻăăăăăă°ă¤ăłĺ°ç¨ăŽăăżăłăä˝ăăŞăă§ăăăăă čŁéşă§ăŻăăă°ă¤ăłé˘éŁăŽăłăłăăźăăłăăä˝ăăăŽççąă§ăăŽćˇąăăžă§ăăšăăăăŚăăĺ ´ĺăŻăă°ăăźăăŤçść ăĺ¤ć´ăăă ăă§ăă
ăă°ă¤ăłăăżăłăŻăťăăŽä¸äžă§ăă ăăăŚăvuexăšăă˘ăŻăç§ăăă°ăăźăăŤăŞăă¸ă§ăŻăăăŤă¤ăăŚč¨ĺăăă¨ăăŤč¨ĺăăŚăăăăŽă§ăă vuexăăŠăŽăăăŤćŠč˝ăăăă調ăšăĺż čŚăăăăžăăăăšăă˘ă¸ăŽĺç §ă玥çăăă ăă§ăăŠăłăă ăŞăłăłăăźăăłăăă˘ăăŞăŽćŽăăŽçść ăŤçˇĺŻăŤçľĺăăŚăăă¨ćăăžăă
ăă¨ăă°ăăă°ă¤ăłăăżăłăăľăźăăăźăăŁăŽăŠă¤ăăŠăŞăŽä¸é¨ă§ăăŁăĺ ´ĺăăăăŻćăžăăăăăžăăă
çšăŤă¤ăăłăăŽăăăŞăłă°ăĺşăčŞčăăăŚăăăăăăăă¸ă§ăŻăăŽć°ăă貢çŽč ăç°ĄĺăŤç解ă§ăăĺ ´ĺăŻăăŠăĄăăŽăăŠăă¤ă ă使ç¨ăăĺ ´ĺă§ă* _choice * _ăĺăĺťăăŞăă§ăă ăăă
ăă¨ăă°ăăŤăźăżăźăăĽăźăłăłăăźăăłăăŤăŻăăšăă˘ăŤă˘ăŻăťăšăăŚăłăăăăăĺŽĺ ¨ăŞć¨Šéăăăă¨ćăăžăăăăăŻăăăŠăłăă ăłăłăăźăăłăăăŽćĺłăŤăăŁăŚç°ăŞăăžăă ăă ăăăăżăłăăăŠăźă ăăăŽäťăŽUIčŚç´ ăŞăŠăŽĺĺŠç¨ç¨ăŽĺ°ăăŞăłăłăăźăăłăă§ăăĺ ´ĺďź10ĺä¸9ĺďźăĺ°éĺ ˇăă¤ăăłăă使ç¨ăăăăăăăšăă˘ăŤă˘ăŻăťăšăăčŤççăŞççąăŻăăăžăăă
Vueă˘ăăŞăąăźăˇă§ăłăŽăăźăżăŻăăăăăŚăłă§ăăăăăăăźăŤăŤçść ăă§ăăă ăăăăăŹăăŤăŤäżă¤ĺż čŚăăăăžăă 桹ăĺ ĽăĺčŞä˝ăŻăĺŻč˝ăŞéăéżăăăšăĺéĄă§ăă ă¤ăăłăă2ăŹăăŤä¸ăŤäźćăăăă¨ăŻăăăťăŠé˘ĺă§ăŻăăăžăăăăăăăăă桹ăăŞăĺ ´ĺăŻăăăłăăŹăźăć§é ăĺčăăĺż čŚăăăăăăăăžăăă
ăă ăăăăăŻăťă¨ăăŠćĽçˇă§ăă ĺ¤ăăŽĺ ´ĺăç解ăăăăăăŠăă¤ă ăŻăĺ°çăŽçľăăăžă§čĺž ăăăŚćąăăŤăăăŞăăăŠăă¤ă ă§ăă çžĺ¨2.0ă使ç¨ăăŚăăăťă¨ăăŠăŽäşşăĺćăăŚăăăăăŤăçść ăăźăšăŽă˘ăăăźăăŻăŻăăăŤç°Ąĺă§ăă 1.0ăĺźăçśă使ç¨ăăăă¨ăăăăŽă˘ăăăźăă弽ăżă§ăŞăĺ ´ĺăŻĺĽăŽăăŹăźă ăŻăźăŻăŤç§ťčĄăăăă¨ăă§ăăžăă
10ĺăŽăăĄ9ĺăŻăĺ°éĺ ˇăă¤ăăłăă使ç¨ăăăăăăăšăă˘ăŤă˘ăŻăťăšăăčŤççăŞççąăŻăŞăăŻăă§ăă
ăžăăŤç§ăŽăă¤ăłăă
桹ăĺ ĽăĺčŞä˝ăŻăĺŻč˝ăŞéăéżăăăšăĺéĄă§ăă
ĺ ´ĺăŤăăŁăŚăŻăăăăŻăŞăăˇă§ăłă§ăŻăăăžăăă
ă¤ăăłăă2ăŹăăŤä¸ăŤäźćăăăŽăŻăăăťăŠé˘ĺă§ăŻăăăžăă
ăăăăŽăŹăăŤă桹ăăŞăă¨ăăăăťăŠçĺŽă§ăŻăăăžăăă
ç解ăăăăăăŠăă¤ă ăŻăĺ°çăŽçľăăăžă§čĺž ăăăŚćąăăŤăăăŞăăăŠăă¤ă ă§ăă
ăăăŻăăŚăźăśăźăŽčŚĺžćŹĄçŹŹă§ăă
1.0ăĺźăçśă使ç¨ăăăă¨ăăăăŽă˘ăăăźăă弽ăżă§ăŞăĺ ´ĺăŻĺĽăŽăăŹăźă ăŻăźăŻăŤç§ťčĄăăăă¨ăă§ăăžăă
Mmkă
ăˇăłăăŤăă¨äžżĺŠăăăEmberăăVueă¸ăŽĺăćżăăć¤č¨ăăççąă§ăă $dispatch
ăŻç§ăVueăŤă¤ăăŚćĽ˝ăăă ăă¨ăŽ1ă¤ă§ăăăăăăĺé¤ăăăă¨ăŻç§ăŤăŻă¨ăŚăćŁćçă§ăă
ăăźă ăŻă2.0ăŞăŞăźăšăŽĺ¤ăăŽćŠč˝ăĺé¤ăăžăăă ç§ăŻăăăăăšăŚăŤćŁç´ăŤĺćăăžăă ăăă ăă§ăŻăăăžăăă
čżäżĄăăăă¨ăăăăăžăă
@ktsn $ broadcastă¨$
@rhyekăăŞăăć辡ăăăăă¤ăăŽăă¤ăłăăŤă¤ăăŚç§ăŽ2ctăä¸ăăăă¨ćăăžăă č°čŤăŻăă§ăŤĺ¤ăăŽăăăăŻăăăŠăăˇăĽă˘ăăăăŚăăăŽă§ă$ diospatchă¨$ broacastăéć¨ĺĽ¨ăŤăăççąăŤă¤ăăŚăŽĺşćŹăŤćťăăăă¨ćăăžăă
ă¤ăăłăăăăŁăšăăăăă茪ă¨ćˇąăăăšăăăăĺăăăĺ ´ĺăăłăźăăăăăŽé˘äżăć¨ć¸ŹăăćšćłăŻăăăžăăďźăăĄăăă $broadcast
ăŤă¤ăăŚăĺăăă¨ăč¨ăăžăďźă
Vue 2.0ă§ĺ°ĺ
ĽăăäťăŽĺ¤ć´ă¨éć¨ĺĽ¨ăčŚăă¨ăć示çăŞäťŁćżć掾ăĺŞĺ
ăăŚćéťçăŞĺä˝ăĺé¤ăăăă¨ăä¸čŹçăŞăăźăă§ăăă $dispatch
éć¨ĺĽ¨ăăăăŤă´ăŁăăă§ăăăă¨ăŤć°äťăăăăăăžăăă
äžďź
// parent
events: {
'some-event': function () { ... }
}
// deeply nested child:
$dispatch('some-event')
ăăăŻă茪ăŤç´ćĽăŽĺă1ă¤ăăăŞăĺ ´ĺăŻĺéĄăăăžăăăăăăŽĺ ´ĺăăăłăăŹăźăăŤăŞăšăăźăĺŤă$emit()
ăăĺŽéăŽä˝ĺăŞä˝ćĽă§ăŻăăăžăăă
ăăšăăăăĺďźçšăŤćˇąăăăšăăăăďźăăžăăŻč¤ć°ăŽç´ćĽăŽĺăăăă¨ăăăŤďźçšăŤăăźă ă§ďźăăŠăăźăăăŽăéŁăăăŞăăžă-ăăšăŚăŽĺă調ăšăăăăłăźăăłăĄăłăăŤäžĺăăŚăŠăŽă¤ăăłăă§ăăăăćć¸ĺăăĺż čŚăăăăžăčż˝ĺ ăŽăă¤ăŠăźăăŹăźăă§ăăăĺăłăłăăźăăłăăăăăŹăźăăăžăă
$ dispatchă¨$ broadcastă弽ăă ă¨č¨ăăŽăŻăăăăăäťăŽăłăłăăźăăłăăŤć¸Ąăĺż čŚăăŞăăăă§ăă ăăăŚăç§ăŻăăăăăç°Ąĺă§ăăăă¨ăŤĺćăăăă¨ăă§ăăžă-ăăăăăăăĺŽéăŤĺż čŚă§ăăă¨ăăĺ¤ăăŽçśćłăŤééăăăă¨ăŻăăăžăăăčż˝ĺ /ăăŽć čĄä¸ăŤăăăŽéăŽăłăłăăźăăłăăŤăăŁăŚă
桹ăăăšăăăăăłăłăăźăăłăă§$dispatch
ă使ç¨ăăĺ ´ĺăă¤ăăłăăŽĺĺ犺éăé常ăŤć示çăŤăăĺż
čŚăăăăžăăăăăăŞăă¨ăă¤ăăłăăčĄçŞăăĺŻč˝ć§ăăăăăă§ăă
// parent
events: {
'close': function () { ... }
}
// deeply nested child 1:
$dispatch('close')
// deeply nested child 2:
$dispatch('close')
..ăăăŚăăăăăŽĺăăľăźăăăźăăŁăŽăŠă¤ăăŠăŞă§ăăĺ ´ĺăăăŞăăŻäťăăăĄăăăĄăă§ăă ăžăăŻă茪ăžă§$dispatch()
ăăĺăŤăă¤ăăłăăŽĺĺăĺ¤ć´ăăăăăŤăéä¸ăŽăłăłăăźăăłăă§ă¤ăăłăăăăŁăăăăĺż
čŚăăăăžăă ăăăŚăăăăăłăĄăłăăăăă¨ăĺżăăŞăă§ăă ăăăăăŽăłăźăăčŚăŚăă誰ăăăă¤ăăłăăŽĺĺăĺ¤ć´ăă䝼ĺ¤ăŤä˝ăăăŞăççąăčăăăăăăăŞăăăă§ăă
$ emităăăłăăłăăŹăźăăŞăšăăźă使ç¨ăăŚăăăŽĺéĄăŻçşçăăžăăă ăˇăłăăŤă§çăă¤ăăłăĺăăŠăă§ă使ç¨ă§ăăžăăĺă¤ăăłăăŤăŻçŹčŞăŽăłăźăŤăăăŻăăăłăăŹăźă@close="callback
"ăŤćˇťäťăăăŚăăăăăčĄçŞăăăă¨ăŻăăăžăăă
ăŠăĄăăŽăăŠăă¤ă ă使ç¨ăăăă¨ăă*é¸ć*ăĺăĺťăăŞăăŁăăăăăŽăŤă¨ćăăžăă
严ćšăŽăăŠăă¤ă ăĺçăŤćŠč˝ăăă¨čăăĺ ´ĺăăăăăĺçăŤćąăăžăă ăăăăä¸č¨ăŽççąăŞăŠăăăăăăŻćăăžăăă
ăăăăŁăŚăăă°ăăźăăŤăăšăćšĺźă§ĺéżăăćšćłăćŽăăŞăăăăŚăźăśăźăćăĺšćçă§ăăăă¨ăăăăŁăăăŻăăŁăăŻăŤčŞĺ°ăăăă¨ăăžăă
ăžăăä¸çăŽĺ˝ĺŽśăŤĺŻžăăć¸ĺżľăŤă¤ăăŚăă芹ăăăăă¨ćăăžăăăăăŞăăŽçŤĺ ´ăĺŽĺ ¨ăŤç解ăăŚăăă¨ăŻč¨ăăžăăă
$ dispatchă¨$ broadcastăćéŠă ă¨ćăäžăćäžă§ăăăăăăăžăăăăăç§ăăĄăŽăă˘ăăăźăăăŠăŽăăăŤçśćłăćšĺă§ăăăăăčŚăăăăă¨ćăăžăăďź
$ dispatch / $ broadcastă¨ă¤ăăłăăăšăŻç°ăŞăăă¨ăćąăŁăŚăăă¨ćăăžăă ăăăăŤăăăăłăźăăŽäżĺŽă厚ćăŤăŞăăăăžăăžăŞăˇăăŞăŞă§ĺé˘ă§ăăžăă 严ćšăĺ
ĽăăŚăăăă¨ăă§ăăă°ç´ ć´ăăăă§ăă
ăăăăŽĺ ´ĺăăä¸ćšăäťćšăăĺŞăăŚăăă¨ăŻč¨ăéŁăă
@cnweiboĺćšă§ăăŞăĺžšĺşçăŞč°čŤăăăŁăă¨ćăăžăăăćŁç´ăŞă¨ăăăăăăžăăžăŞăă¨ăŤĺăçľăăăă¨ăŤă¤ăăŚăŽăăŞăăŽä¸ťĺźľăŻăăăăžăăă é ć ŽăŞăč°čŤăăŚăă ăăăăăăç§ăŻç˘şăăŤăăă辡ăăăŞăă¨ăăŞăăŤč¨ăăă¨ăă§ăăžăă
ćŹĺ˝ăŤĺż čŚăŞĺ ´ĺăŻăăăŠă°ă¤ăłă¨ăăŚčŞĺă§ĺŽčŁ ăăăŽăŻăăăťăŠéŁăăăăăžăăă
@LinusBorgčżäżĄăć¸ăăŽăŤćéă
ăăŞăăŻ$ dispatchă¨$ broadcastă弽ăă ă¨č¨ăăžă
ćŁç´ă $dispatch
弽ăă§ăă $broadcast
ééăăŞăç§ăŤăŻĺĽĺŚăŤćăăžăăă ç§ăč¨ăŁăăăăŤă $dispatch
ăŻĺăŞăă¤ăăłăăŽăăăŞăłă°ă§ăăăçžćçšă§ăŻĺ¤ăăŽăăŠăăăăŠăźă ăŤéĺ¨ăăŚăăăăŽă§ăă $broadcast
...ăăăťăŠĺ¤ăăŻăăăžăăă ç§ăäťăžă§ăŤééăăăŽă¨äźźăŚăăăŽăŻăé常ăŽă¤ăăłăă¨ăă˘ăŤăŞăŁăŚăăWPFăŽăăăŹăăĽăźăă¤ăăłăă ăă§ăă ăăăăŻăăă¸ăĽă˘ăŤăăŞăźăćä¸ä˝ăŽčŚç´ ăăĺ
ăŽă¤ăăłăăŽă˝ăźăšăžă§ăăăłăăŞăłă°ăăăžăăăé˘éŁăăčŚç´ ăŽăă§ăźăłăç´ćĽä¸ăŁăŚé俥ăăăă ăă§ăăăšăŚăŤăĺşăăăăăă§ăŻăăăžăăă
ă¤ăăłăăŽĺĺ犺éăć確ăŤăăĺż čŚăăăăžă
ç§ăŻăăăŤĺćăăžăăă¨ăŤăăăăăăŻé常ç§ăăăăă¨ă§ăă ăăăŻäşşă
ăjQueryă§čĄăăă¨ăŤć
ŁăăŚăăăă¨ă§ăăăăžăă ăăăŤăä¸é¨ăŽăăŠăăăăŠăźă ăŻăă˝ăźăšăăŞăă¸ă§ăŻăăĺźć°ă¨ăăŚăăłăăŠăźăŤé俥ăăă ăă§ăăăăăăŤĺşăĽăăŚăłăłăăăšăăăăŁăŤăżăźĺŚçăăăă¨ăă§ăăžăďźăăłăďź instanceof
ďźă ăă¨ăă°ăDOMă¤ăăłăă§ăŻevent.target
使ç¨ă§ăăžăă äťăŽăăŠăăăăŠăźă ăŤăŻéçĺăĺŚçăăă¨ăăĺŠçšăăăăăăăăŽăčĄçŞăăŤééăăăŽăŻé常ăŤĺ°éŁă§ăďźă¤ăăłăăŻăŻăŠăšăŽă¤ăłăšăżăłăšă§ăďźă
ăăăăŤăăăăăăVueJSăăźă ăŤă¨ăŁăŚăŞăăăăŞăŤć¸ĺżľăăăăŽăç§ăŻćŁç´ăŤç解ăăŚăăžăăă äşşă
ă$dispatch
使ç¨ăŤĺĺ注ćă§ăăŞăĺ ´ĺăŻăăŠă¤ăăŠăŞă使ç¨ăăŚééăŁăŚăăäťăŽĺ¤ăăŽăă¨ăčŚă¤ăăăă¨ăă§ăăă¨ç˘şäżĄăăŚăăžăă ăŚăźăśăźăä¸ćł¨ćăăăäżčˇăăăăăăŤăŠăăžă§čĄăăžăăďź
ăăăŻă茪ăŤç´ćĽăŽĺă1ă¤ăăăŞăĺ ´ĺăŻĺéĄăăăžăăăăăăŽĺ ´ĺăăăłăăŹăźăăŤăŞăšăăźăĺŤă$ emitďźďźăăĺŽéăŽä˝ĺăŞä˝ćĽă§ăŻăăăžăăă
ćŁç´ăŞčłŞĺďźç§ăŻćăăăŤVueăŤć
ŁăăŚăăŞăăŽă§ďźăăăšăŚăŽăŹăăŤă§ăŞăšăăźă厣č¨ăă䝼ĺ¤ăŤăăă§ăźăłä¸ăŽăăšăŚăŽăłăłăăźăăłăă§ă¤ăăłăă$emit
ăăĺż
čŚăŻăăăžăăăďź ăăăŻă¨ăŚă迡ćăŞ
çľčŤă¨ăăŚăć°ăăăăă¸ă§ăŻăăŤăĺ ŹĺźăăłăăŹăźăăăĺ°ĺ Ľăăăă¨ăŤă¤ăăŚă vue-cliăŽĺéĄăŤă¤ăăŚčŞ°ăăč¨ăŁăăă¨ăĺźç¨ăăžăăăďźhttps://github.com/vuejs/vue-cli/issues/123#issuecomment-233071630ďźďź
ăĺçĽăăăăăžăăăăĺ ŹĺźăăłăăŹăźăăŤç¸ăăăŚăăăăă§ăŻăăăžăăă ăăăŻăăŞăăŤčŞçąăä¸ăăžăăăĺćăŤăăăŻăăŞăăăăŞăčŞčşŤă§ăăĺ¤ăăŽćąşĺŽăăăĺż čŚăĺźă辡ăăăžăă
çľĺąăŽă¨ăăăăăšăŚăŻăťăăŽ1ăĄăźăăŤăŽăăŠăłăšă ă¨ćăăžăă ăăăăŽćąşĺŽăŽăăĄăăăšăŚăŽďźăťă¨ăăŠăŽďźăŚăźăśăźăŤĺŻžăăŚäşĺăŤčĄăăă¨ăă§ăăćąşĺŽăŽć°ă¨ăăŚăźăśăźăčŞĺă§ĺŽčĄăăăć°ăžăăŻăŠăăćąşĺŽăăăă
ç§ăŻăăŽĺ˛ĺŚăŤĺćăăžăăăĺĽĺŚăŞăă¨ăŤăăăŽĺéĄăŤă¤ăăŚç§ăééăăăŽă¨ĺăć 庌ă§ăŻăăăžăăă ăăŽăłăĄăłăă¨ăăă§ăŽăłăĄăłăăŽéăŤç§ăčŚăăłăłăăŠăšăăŻăčŞçąăŤčŚç´ăăăžăă ăăŞăăŻăčŻăăăćçľçăŤăŻćŹ éĽăŽăăćĺłăŤĺşăĽăăŚé¸ćč˘ă弪ăŁăŚăăžăă
ćŹĺ˝ăŤĺż čŚăŞĺ ´ĺăŻăăăŠă°ă¤ăłă¨ăăŚčŞĺă§ĺŽčŁ ăăăŽăŻăăăťăŠéŁăăăăăžăăă
@ yyx990803ăăăŻăăăă_ç§ă_ăăăă¨ăŤăŞăăă¨ă§ă...ăăăăă
@LinusBorgăďź
ăăăăŁăŚăăă°ăăźăăŤăăšăćšĺźă§ĺéżăăćšćłăćŽăăŞăăăăŚăźăśăźăćăĺšćçă§ăăăă¨ăăăăŁăăăŻăăŁăăŻăŤčŞĺ°ăăăă¨ăăžăă
ăăŞăăŻăć縌ăăăă¨ăăŚăăăăŽă§ăŻăŞăă埡ĺśăăŚăăăŽă§ăă :)
dispatch
ă¨EventBusăĄă˝ăăăŽä¸Ąćšă§ĺăćŠč˝ăĺŽčŁ
ăăăă¨ăăžăăăďź
ăăăŻĺ˝šçŤă¤ăăăăăžăă
@posvaäşĺŽăăŚăăžăăăĺşćŹçăŤăŻăăăă˘ă¸ăĽăźăŤă§ă¤ăăłăăăšăŞăă¸ă§ăŻăă厣č¨ăăăăă$emit
ăŤăăăĺ ´ćăŤă¤ăłăăźăăăžăă ç§ăŻăăă弽ăă§ăŻăăăžăăătbhă 羜寞ăŤä˝żăăă¨ăăăăžăăăćŻĺăăăăăă¨ă§ăŻăŞăă¨ĺźˇă俥ăăŚăăžăă
ăăăăŤăăăăăăVueJSăăźă ăŤă¨ăŁăŚăŞăăăăŞăŤć¸ĺżľăăăăŽăç§ăŻćŁç´ăŤç解ăăŚăăžăăă
$dispatch
使ç¨ăŤĺĺ注ćă§ăăŞăĺ ´ĺ
éčŚăŞăŽăŻăăăźă ăŽčŞ°ăă$dispatch()
ĺŽéăŽăŚăźăšăąăźăšăććă§ăăăäťăŽă˝ăŞăĽăźăˇă§ăłďź $emit()
ă ăă§ăŞăăăââăšăăžăăŻă°ăăźăăŤăŞçść
ďźăăăăŚç§ăăĄăçăăăăăŤă¤ăăŚăŽçĄć°ăŽăăŠăźăŠă ăŽć稿ăŤăä˝ăčŚăăăžăăă§ăăă
ăăăŻä¸ťčŚłçăŞčŚćšăăăăăžăăăăăăźă ĺ ¨ä˝ăăăăăŻç§ăăĄăŽçľé¨ă§ăŻĺ¸¸ăŤĺŁăŁă解湺çă§ăăăă¨čăăă¨ăăłă˘ăăĺ¤ăăŚăăžăăă¨ăç解ă§ăăăăăăăžăăă
ăăŽćçšă§ăĺŽéăŽäžăŤă¤ăăŚčŠąăĺăăăăŤăŞăăĄăźăć´ć°ăăăă¨ćăăžăă
ăăŞăăŻĺ˝źăăăăŞăăŽăŠă¤ăăŠăŞă使ăŁăŚééăŁăŚăăäťăŽĺ¤ăăŽăă¨ăčŚă¤ăăăă¨ăă§ăăă¨ç˘şäżĄăăŚăăžăă ăŚăźăśăźăä¸ćł¨ćăăăäżčˇăăăăăăŤăŠăăžă§čĄăăžăăďź
ăăĄăăăăăăŻĺžŽĺŚăŞčłŞĺă§ăăăčŚă¤ăăăŽăéŁăăăăŠăłăšă§ăă ăąăźăšăă¤ăąăźăšă§ĺ¤ćăăĺż čŚăăăăžăă
ăăăŻă茪ăŤç´ćĽăŽĺă1ă¤ăăăŞăĺ ´ĺăŻĺéĄăăăžăăăăăăŽĺ ´ĺăăăłăăŹăźăăŤăŞăšăăźăĺŤă$ emitďźďźăăĺŽéăŽä˝ĺăŞä˝ćĽă§ăŻăăăžăăă
ćŁç´ăŞčłŞĺďźç§ăŻćăăăŤVueăŤć ŁăăŚăăŞăăŽă§ďźăăăšăŚăŽăŹăăŤă§ăŞăšăăźă厣č¨ăă䝼ĺ¤ăŤăăă§ăźăłä¸ăŽăăšăŚăŽăłăłăăźăăłăă§ă¤ăăłăă$ emităăĺż čŚăŻăăăžăăăďź ăăăŻă¨ăŚă迡ćăŞăăă§ăă
ç§ăŻç´ćĽăŽčŚŞĺé˘äżăŤă¤ăăŚčŠąăăŚăăăŽă§ă$ emitďźďźă1ĺă ăčĄăĺż čŚăăăăžăă
桹ăăăšăăăăĺăăăĺ ´ĺăŻăăăĄăăăăšăŚăŽăŹăăŤă§ĺé俥ăăĺż čŚăăăăžăăăçš°ăčżăăžăăăăšăăăăĺ¤ăăŽĺăŤăăŁăšăăăăăăă¨ăćŹĺ˝ăŤĺż čŚă§ăăăăäťăŽă˝ăŞăĽăźăˇă§ăłăăăćăžăăçśćłăŻčŚă¤ăăăžăăă§ăăă
ăăăăŁăŚăăă°ăăźăăŤăăšăćšĺźă§ĺéżăăćšćłăćŽăăŞăăăăŚăźăśăźăćăĺšćçă§ăăăă¨ăăăăŁăăăŻăăŁăăŻăŤčŞĺ°ăăăă¨ăăžăă
ăăŞăăŻăć縌ăăăă¨ăăŚăăăăŽă§ăŻăŞăă埡ĺśăăŚăăăŽă§ăă :)
ç§ăăĄăŻăăŞăăŽäşşçăĺ°ăéŁăăăăă¨ćăăžă-ăăŞăăŻă§ăăžă
$emit()
使ç¨ă埡ĺśăăăŽă§ăŻăŞăăĺ°ăéŁăăăăŚăăă ăă§ăă
ăăšăŚăŽVueă¤ăłăšăżăłăšăŤčż˝ĺ ăăăă¨ăă§ăăă¨ćăăžăďź Vue.prototype.$bus = new Vue()
ä˝ăă弽ăă§ăŻăŞăăă¨ăŻăăžăĺťşč¨çă§ăŻăăăžăă...
ç§ăŻăăŞăăŽäžăĺž
ăŁăŚăăžăđ
@posva
ăăšăŚăŽVueă¤ăłăšăżăłăšăŤčż˝ĺ ăăăă¨ăă§ăăă¨ćăăžăďźVue.prototypeă$ bus = new Vueďźďź
ç§ăŻăăă§ăă ăăŞă賢ăă
ä˝ăă弽ăă§ăŻăŞăăă¨ăŻăăžăĺťşč¨çă§ăŻăăăžăă
ĺ°ăŞăă¨ăç§ăŤă¨ăŁăŚăŻăăăăä˝ăă使ç¨ăăăăŠăăăé¸ćăăăăăŽăăŞăćĺšăŞĺşćşă ă¨ćăăžăă ăăăăŤăăăăŞăă¤ăăłăăăăŞăłă°ăăăŽĺ ´ćăŤăăă¨ćăăŽăăä˝ĺşŚăčż°ăšăŚăăžăăă
ç§ăŻăăŞăăŽäžăĺž ăŁăŚăăžăđ
ă¤ăžăăç§ăŻćŹĺ˝ăŤăăĺż čŚăăăăžăăďź ă¤ăăłăăăšă使ç¨ăăăăăăšăŚăŽăŹăăŤă§ăŞăšăăźă厣č¨ăăăăăă¨ăăă˘ă¤ăă˘ăć°ăŤĺ ĽăăŞăçśćłăŤă¤ăăŚăŽäžă示ăăžăăă ăăŞăăŻăłăźăăčŚăăă§ăăďź ç§ăŽä¸ťĺźľăăăĺ°ăć確ăŤăăăăăŤä˝ăăćăă¤ăăăăăăžăăăăă¤ăăłăăăăŞăłă°ăŻăťă¨ăăŠăŽäşşă彚çŤă¤ăăŽă¨ăăŚčŠäžĄă§ăăăăŞăć¨ćşçăŞăăŽă ă¨ćăăžăăă¤ăăłăăăšăĺˇăŽăăăźă¸ăŁăźăŻăĺ°ăŞăă¨ăç§ăŤă¨ăŁăŚăŻä¸ç¨Žă§ăăăŠăăŞăšăăŹăăă§ăç解ăăăŽăŻéŁăăăă¨ă§ăŻăăăžăăăăćľčĄăŤććăŞé ĺăŽăăăŤčŚăăăăŠăă¤ă ăˇăăă đ
ăăĄăăăăăŽćĺžăŽăłăĄăłăăŤă¤ăăŚăŻĺčŤă§ăă ç§ăĺăŤčż°ăšăăăăŤăç§ăŻăăăăŽä˝żç¨ćłăčŚăŚăééăăŞăăăăă§č§ŁćąşăăšăĺéĄăčŚă¤ăăă§ăăăă ĺŽéăç§ăEmberă使ç¨ăăŚĺăçľăă ăăă¤ăăŽăăă¸ă§ăŻăă§ăŻăă°ăăźăăŤăŞçść ăăăźă¸ăŁăźă¨ăžăŁăăĺăăăăŤćŠč˝ăăăăľăźăăšăăä˝ćăăĺžĺăăăăžăă ç§ăŻăăŞăăŤäżč¨źăăžăăç§ăŻăăăŤă¤ăăŚć ćăŤé ĺşăŤăŞăăă¨ăŻăăŚăăžăăă
ç§ăŻ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
ă¨2ă¤ăŽa-button
ă¤ăłăšăżăłăšăŽä¸Ąćšăĺä¸ă¤ăłăšăżăłăšăŽăç´ćĽčŤçĺăă§ăăăăă§ăă ăăăšăăäź´ăč¤éăŞăăĽăźé幤ăăăăŤăăăăăăă
ç§ăŻăăŽćçšă§čŞĺčŞčşŤăçš°ăčżăăŚăăă¨ćăăžăă ăŠăăăăăăăç§ăŻăăŽĺéĄăĺéżăăăă¨ăŤăŞăăžăă ăăŽč°čŤăăăŞăăăăŽççąă§ăăŻăĺĺ¨ăăŞăăăăŞăć¨ćşçă§ĺŽç¨çăŞăăŽă¸ăŽăăă¤ăăŽĺéżçăčż°ăšăăă¨ăä¸ĺżăŤĺąéăăăŚăăăă¨ăŻăç§ăŤăŻĺĽĺŚăŤćăăžăă
@LinusBorg ďź
éčŚăŞăŽăŻăăăźă ĺ ăŽčŞ°ăăäťăŽă˝ăŞăĽăźăˇă§ăłďź$ emitďźďźă ăă§ăŞăďźăăă弽ăžăă$ dispatchďźďźăŽĺŽéăŽăŚăźăšăąăźăšăććă§ăăŞăăŁăă¨ăăăă¨ă§ăă
ăăăŻăéŤéé衯ăŽĺşĺŁăééăăŞăççąăĺ°ăăĺć¨ć帍ăŽăăăŤç§ăŤăŻčăăăžăă
ăăăŽăŞăăŠăłăăŻăäşşă ă塌ćăăăĺłćăăăăŤă¤ăăŚćˇˇäšąăă交塎çšăŤă¤ăŞăăăžăăăťă¨ăăŠăŽäşşăŻăăăŤä˝ĺš´ăä˝ăă§ăăăŽă§éăçĽăŁăŚăăžăăăć°ăăĺ¸ć°ăŻăă°ăă°ć°ĺš´é迡ĺăŤăŞăăžăĺă¨ç§ăăĄăŻăăăéżăăăă¨ćăăžăăă
ăăăăăžăăă確ăăŤăăăŞăăŻăăăéăăăă¨ăă§ăăžăăăăăŻăŻăźăŤă§ăăç§ăŻćŹĄăŽăŞăăŠăłăăžă§ăăăŤ10ăă秝ĺăăĺż čŚăăăăžăăç§ă玥çăăžăăăă¨ç§ăŻč¨ăăžăă
:)ăčżäşăăăă¨ăăăăăžăă ĺ°ăŞăă¨ăăçăăăčŞçąăŤč°čŤă§ăăăă¨ăăăăăćăăžăă čŻăăăźă ăŽăăă§ăă
ăăăŻăéŤéé衯ăŽĺşĺŁăééăăŞăççąăĺ°ăăĺć¨ć帍ăŽăăăŤç§ăŤăŻčăăăžăă
ăăăŽăŞăăŠăłăăŻăäşşă ă塌ćăăăĺłćăăăăŤă¤ăăŚćˇˇäšąăă交塎çšăŤă¤ăŞăăăžăăăťă¨ăăŠăŽäşşăŻăăăŤä˝ĺš´ăä˝ăă§ăăăŽă§éăçĽăŁăŚăăžăăăć°ăăĺ¸ć°ăŻăă°ăă°ć°ĺš´é迡ĺăŤăŞăăžăĺă¨ç§ăăĄăŻăăăéżăăăă¨ćăăžăăă
ćŞăăĄăżăăŠă˘ăčż˝ĺ ăăžăă :)ç§ăŽčŚč§Łă§ăŻăăăăŻăăäźźăŚăăžăďź
ä˝ăă弽ăă§ăŻăŞăăă¨ăŻăăžăĺťşč¨çă§ăŻăăăžăă
ĺ°ăŞăă¨ăç§ăŤă¨ăŁăŚăŻăăăăä˝ăă使ç¨ăăăăŠăăăé¸ćăăăăăŽăăŞăćĺšăŞĺşćşă ă¨ćăăžăă ăăăăŤăăăăŞăă¤ăăłăăăăŞăłă°ăăăŽĺ ´ćăŤăăă¨ćăăŽăăä˝ĺşŚăčż°ăšăŚăăžăăă
@posvaăŽćĺłăŻăăç§ăŻăăă弽ăăă¨ăăćĺłă ă¨ćăăžăăä˝ăăäżćăăăăĺš ĺşăăŚăźăśăźă¨ăŠă¤ăăŠăŞăŤä˝ăăčż˝ĺ ăăăăč°čŤăăă¨ăăăç§ăŻăăă弽ăăăŻĺťşč¨çăŞč°čŤă§ăŻăăăžăăă ăăŽăăăĺäşşçăŞĺĽ˝ăżă§ăŻăŞăăćĺšă§ĺŽéăŽăŚăźăšăąăźăšăŤă¤ăăŚčŠąăĺăăăăŤćąăçśăăŚăăžăă
ăăăăăŞăăĺŽç§ăŤčŻăéŤéé衯ăçç ´ăăă´ă ĺźăă˘ăšăăĄăŤăă§ĺĽăŽéŤéé衯ăĺťşč¨ăăăă¨ăé¤ăăŚăăŠăăă§ăăăăăŞăăăăăŤčŞăžăăăăă§ăă ăžăăăăăŻä˝ĺăŞ10ăăă§ăă :)
äžăŤă¤ăăŚďźĺ帰ăłăłăăźăăłăăŤé˘ăăĺ ăŽčłŞĺăŤć稿ăăăăăŽăŻĺéĄăŞăă¨ćăăžăă ă¤ăăłăăăăŁăăăăăĺŽĺ ¨ăŤčŻăäžăăăă¨ăăŤăăăšăŚăŽăŹăăŤă§é çŞăŤä˝ăăĺŽčĄăăăă¨ćłĺăăŚăżăŚăă ăăă $ dispatchă§ăăăčĄăăŽăŻé常ăŤç°Ąĺă§ăă
ăăŞăăŻăłăźăăčŚăăă§ăăďź
ăŻăăăéĄăăăžă
@posvaĺăŽăłăĄăłăăŽäžăćăăžăăă 注ďź$ dispatchăŞăă§ăăăčĄăćšćłăć°ç§äťĽä¸čăăŞăăă°ăŞăăŞăĺ ´ĺăăăăŻç§ăŽăă¤ăłăă訟ćăăžăă
äžăŤă¤ăăŚďźĺ帰ăłăłăăźăăłăăŤé˘ăăĺ ăŽčłŞĺăŤć稿ăăăăăŽăŻĺéĄăŞăă¨ćăăžăă ă¤ăăłăăăăŁăăăăăĺŽĺ ¨ăŤčŻăäžăăăă¨ăăŤăăăšăŚăŽăŹăăŤă§é çŞăŤä˝ăăĺŽčĄăăăă¨ćłĺăăŚăżăŚăă ăăă $ dispatchă§ăăăčĄăăŽăŻé常ăŤç°Ąĺă§ăă
$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ćă§ăăăăăă¨ăăăăăžăăă ĺžă§ăăŁă¨čŻăăăŽăćăă¤ăăĺ ´ĺăŻć稿ăăžăăăăăă§ăŞăĺ ´ĺăŻăăăŞăăĺăŁăăăčĺłă夹ăŁăăăŽăŠăĄăăă§ă:)
ăăăăĺ帰çă§ăŻăŞăăăžă ăăŽăăăŤăăšăăăăŚăăĺ ´ĺăŻăŠăăŞăăžăăďź
$emit()
ĺăăłăăŹăźăăŤ@event=
ăŞăšăăźăčż˝ĺ ăăĺż
čŚăăăăžăăă $dispatch()
ĺ ´ĺăŻăăă§ăŻăăăžăăăăăă ăă§ăă
ăăăŻăĺéˇć§ă¨čĄ¨çžĺăŽăŠăĄăă埡調ăăăăŤĺżăăŚăčŻăăćŞăăăăăăăžăă
ăăăŚă¨ăăă§ă ăăçśćłă§ă茪ăžă§ă¤ăăłăăéŁéăăăĺż čŚăăăĺ ´ĺăăăăŻćŹĄăŽăăăŤĺŽčĄă§ăăžăă
<child-comp @event="$emit('event', $arguments)>
ă¨ăŤăăăç´ ćľăŞč°čŤăăăŞăăŽĺ˝çśăŽçĄç ă漽ăăă§ăă ăăă
@rhyekăăăă$dispatch
ă使ç¨ăăăă¨ăŤćąşăăă¨ăăççąă ăă§ĺéżçăŽăăăŤčŚăăžăăăăăăŻçŽć¨ă§ăŻăăăžăăă çŽć¨ăŻăăłăłăăźăăłăăéŠĺăŞäżĺŽć§ă§ç¸äşăŤé俥ă§ăăăăăŤăăăă¨ă§ăă ăăŽçŽć¨ăéćăăă¨ăă弽ăżăé¤ăăŚăăšăŚăŽĺŽç¨çăŞéˇćă¨çćăăŞăšăăăă¨ă $dispatch
ăŻĺŁăŁă解湺çă§ăăăăăç§ăăĄăŻăăăĺé¤ăăžăăă
ăžăăDOMă¤ăăłăăŽăăăŞăłă°ăŻăăłăłăăźăăłăéăŽé俥ă¨ăŻć šćŹçăŤç°ăŞăăă¨ăŤćł¨ćăăŚăă ăăă ăă¤ăăłăăăăŞăłă°ăŻĺşăčŞčăăăŚăăăă¨ăăč°čŤăŻăăăăç§ăăĄă解湺ăăăă¨ăăŚăăĺéĄăŽčŻă解湺çă§ăŞăăă°ăŞăăŞăă¨ăăćĺłă§ăŻăăăžăăă
ăç§ăŻăăă弽ăă§ăŻăŞăăă¨č°čŤăăăŽăéŁăăăŽă§ăç§ăŻăăŽăšăŹăăă§ăłăĄăłăăçľăăžăăă
ćăĺčăŤăŞăăłăĄăłă
@rhyekăăŞăăć辡ăăăăă¤ăăŽăă¤ăłăăŤă¤ăăŚç§ăŽ2ctăä¸ăăăă¨ćăăžăă č°čŤăŻăă§ăŤĺ¤ăăŽăăăăŻăăăŠăăˇăĽă˘ăăăăŚăăăŽă§ă$ diospatchă¨$ broacastăéć¨ĺĽ¨ăŤăăççąăŤă¤ăăŚăŽĺşćŹăŤćťăăăă¨ćăăžăă
1.ćéťăŽçľĺă
ă¤ăăłăăăăŁăšăăăăă茪ă¨ćˇąăăăšăăăăĺăăăĺ ´ĺăăłăźăăăăăŽé˘äżăć¨ć¸ŹăăćšćłăŻăăăžăăďźăăĄăăă
$broadcast
ăŤă¤ăăŚăĺăăă¨ăč¨ăăžăďźăVue 2.0ă§ĺ°ĺ ĽăăäťăŽĺ¤ć´ă¨éć¨ĺĽ¨ăčŚăă¨ăć示çăŞäťŁćżć掾ăĺŞĺ ăăŚćéťçăŞĺä˝ăĺé¤ăăăă¨ăä¸čŹçăŞăăźăă§ăăă
$dispatch
éć¨ĺĽ¨ăăăăŤă´ăŁăăă§ăăăă¨ăŤć°äťăăăăăăžăăăäžďź
ăăăŻă茪ăŤç´ćĽăŽĺă1ă¤ăăăŞăĺ ´ĺăŻĺéĄăăăžăăăăăăŽĺ ´ĺăăăłăăŹăźăăŤăŞăšăăźăĺŤă
$emit()
ăăĺŽéăŽä˝ĺăŞä˝ćĽă§ăŻăăăžăăăăăšăăăăĺďźçšăŤćˇąăăăšăăăăďźăăžăăŻč¤ć°ăŽç´ćĽăŽĺăăăă¨ăăăŤďźçšăŤăăźă ă§ďźăăŠăăźăăăŽăéŁăăăŞăăžă-ăăšăŚăŽĺă調ăšăăăăłăźăăłăĄăłăăŤäžĺăăŚăŠăŽă¤ăăłăă§ăăăăćć¸ĺăăĺż čŚăăăăžăčż˝ĺ ăŽăă¤ăŠăźăăŹăźăă§ăăăĺăłăłăăźăăłăăăăăŹăźăăăžăă
$ dispatchă¨$ broadcastă弽ăă ă¨č¨ăăŽăŻăăăăăäťăŽăłăłăăźăăłăăŤć¸Ąăĺż čŚăăŞăăăă§ăă ăăăŚăç§ăŻăăăăăç°Ąĺă§ăăăă¨ăŤĺćăăăă¨ăă§ăăžă-ăăăăăăăĺŽéăŤĺż čŚă§ăăă¨ăăĺ¤ăăŽçśćłăŤééăăăă¨ăŻăăăžăăăčż˝ĺ /ăăŽć čĄä¸ăŤăăăŽéăŽăłăłăăźăăłăăŤăăŁăŚă
2.ă¤ăăłăĺ
桹ăăăšăăăăăłăłăăźăăłăă§
$dispatch
ă使ç¨ăăĺ ´ĺăă¤ăăłăăŽĺĺ犺éăé常ăŤć示çăŤăăĺż čŚăăăăžăăăăăăŞăă¨ăă¤ăăłăăčĄçŞăăĺŻč˝ć§ăăăăăă§ăă..ăăăŚăăăăăŽĺăăľăźăăăźăăŁăŽăŠă¤ăăŠăŞă§ăăĺ ´ĺăăăŞăăŻäťăăăĄăăăĄăă§ăă ăžăăŻă茪ăžă§
$dispatch()
ăăĺăŤăă¤ăăłăăŽĺĺăĺ¤ć´ăăăăăŤăéä¸ăŽăłăłăăźăăłăă§ă¤ăăłăăăăŁăăăăĺż čŚăăăăžăă ăăăŚăăăăăłăĄăłăăăăă¨ăĺżăăŞăă§ăă ăăăăăŽăłăźăăčŚăŚăă誰ăăăă¤ăăłăăŽĺĺăĺ¤ć´ăă䝼ĺ¤ăŤä˝ăăăŞăççąăčăăăăăăăŞăăăă§ăă$ emităăăłăăłăăŹăźăăŞăšăăźă使ç¨ăăŚăăăŽĺéĄăŻçşçăăžăăă ăˇăłăăŤă§çăă¤ăăłăĺăăŠăă§ă使ç¨ă§ăăžăăĺă¤ăăłăăŤăŻçŹčŞăŽăłăźăŤăăăŻăăăłăăŹăźă
@close="callback
"ăŤćˇťäťăăăŚăăăăăčĄçŞăăăă¨ăŻăăăžăăă严ćšăŽăăŠăă¤ă ăĺçăŤćŠč˝ăăă¨čăăĺ ´ĺăăăăăĺçăŤćąăăžăă ăăăăä¸č¨ăŽççąăŞăŠăăăăăăŻćăăžăăă
ăăăăŁăŚăăă°ăăźăăŤăăšăćšĺźă§ĺéżăăćšćłăćŽăăŞăăăăŚăźăśăźăćăĺšćçă§ăăăă¨ăăăăŁăăăŻăăŁăăŻăŤčŞĺ°ăăăă¨ăăžăă
ăžăăä¸çăŽĺ˝ĺŽśăŤĺŻžăăć¸ĺżľăŤă¤ăăŚăă芹ăăăăă¨ćăăžăăăăăŞăăŽçŤĺ ´ăĺŽĺ ¨ăŤç解ăăŚăăă¨ăŻč¨ăăžăăă
$ dispatchă¨$ broadcastăćéŠă ă¨ćăäžăćäžă§ăăăăăăăžăăăăăç§ăăĄăŽăă˘ăăăźăăăŠăŽăăăŤçśćłăćšĺă§ăăăăăčŚăăăăă¨ćăăžăăďź