Кажется, хорошо для меня, может быть, проблема приходит откуда-то еще. Вы можете проверить скрипку, где я изменил, чтобы проверить пользовательское событие:
https://jsfiddle.net/Mark_f/u06dmhfn/125/
Vue.component('surprise-app', {
template: `<button @click="surprise">Surprise Me!</button>`,
data() {
return {
surprise: '',
};
},
methods: {
surprise() {
this.$emit('formsubmit')
},
},
})
new Vue({
el: '#surpriseApp',
data: {
surpriseMessage: null,
},
methods: {
surpriseMe() {
this.surpriseMessage = 'you got surpried';
},
},
});
Однако, согласно документам , лучше использовать kebab-case для имен событий.