參數(shù):
{string | Array<string>} event?(數(shù)組只在 2.2.0+ 中支持)
{Function} callback
用法:
監(jiān)聽當(dāng)前實(shí)例上的自定義事件膜廊。事件可以由vm.$emit觸發(fā)×墼桑回調(diào)函數(shù)會接收所有傳入事件觸發(fā)函數(shù)的額外參數(shù)砸喻。
示例:
vm.$on('test',function(msg){console.log(msg)})vm.$emit('test','hi')// => "hi"
參數(shù):
{string} event
{Function} callback
用法:
監(jiān)聽一個(gè)自定義事件疲迂,但是只觸發(fā)一次。一旦觸發(fā)之后,監(jiān)聽器就會被移除募逞。
參數(shù):
{string | Array<string>} event?(只在 2.2.2+ 支持?jǐn)?shù)組)
{Function} [callback]
用法:
移除自定義事件監(jiān)聽器。
如果沒有提供參數(shù)馋评,則移除所有的事件監(jiān)聽器放接;
如果只提供了事件,則移除該事件所有的監(jiān)聽器留特;
如果同時(shí)提供了事件與回調(diào)纠脾,則只移除這個(gè)回調(diào)的監(jiān)聽器。
vm.$emit( eventName, […args] )
參數(shù):
{string} eventName
[...args]
觸發(fā)當(dāng)前實(shí)例上的事件蜕青。附加參數(shù)都會傳給監(jiān)聽器回調(diào)苟蹈。
示例:
只配合一個(gè)事件名使用?$emit:
Vue.component('welcome-button', {template:`
? ? <button v-on:click="$emit('welcome')">
? ? ? Click me to be welcomed
? ? </button>
? `})
newVue({el:'#emit-example-simple',methods: {sayHi:function(){? ? ? alert('Hi!')? ? }? }})
Click me to be welcomed
配合額外的參數(shù)使用?$emit:
Vue.component('magic-eight-ball', {data:function(){return{possibleAdvice: ['Yes','No','Maybe']? ? }? },methods: {giveAdvice:function(){varrandomAdviceIndex =Math.floor(Math.random() *this.possibleAdvice.length)this.$emit('give-advice',this.possibleAdvice[randomAdviceIndex])? ? }? },template:`
? ? <button v-on:click="giveAdvice">
? ? ? Click me for advice
? ? </button>
? `})
newVue({el:'#emit-example-argument',methods: {showAdvice:function(advice){? ? ? alert(advice)? ? }? }})
Click me for advice