Olá, estou um pouco confuso sobre o vm.$dispatch
pois esperava que ele retornasse valores do retorno de chamada do ouvinte para lógica adicional que não poderia ser colocada no retorno de chamada _ (imo) _, mas acabou sendo o exemplo ele mesmo. Estou aprendendo Vue e provavelmente perdi algo.
var vm = new Vue({
// omitted
events: {
'object:creating' : function (args) {
// omitted
return false;
},
'object:created' : function (args) {
// omitted
}
}
});
var child = new Vue({
parent: vm,
// omitted
methods: {
performWhatever: function (args) {
//
},
createObject: function (args) {
// Pre-create
if ( this.$dispatch('object:creating', args) === false ) {
// Stop the creation
}
// The business logic
this.performWhatever(args);
// Post-create
this.$dispatch('object:created', args);
}
}
})
Como você pode ver, a operação de pré-criação é opcional.
Obrigada.
SomeAsyncCode === false
$dispatch
espera que você passe vários argumentos, incluindo uma função de callback.this.$dispatch('object:creating', args, function() {
// The business logic
this.performWhatever(args);
})
e do lado do receptor,
events: {
'object:creating' : function (args, callback) {
// Do something with args and fire callback (or not)
callback()
}
}
Obrigado @fnlctrl pela explicação :)
@fnlctrl Obrigado pela explicação. É assíncrono, esqueci, que vergonha = D
Comentários muito úteis
SomeAsyncCode === false
$dispatch
espera que você passe vários argumentos, incluindo uma função de callback.e do lado do receptor,