Vue.component('say', { template: ` <div> <input v-model="this.message" type="text"></input> <button type="button" @click="$emit('speak', this.message)">Speak</button> </div>`, data: { message: '' } }) new Vue({ el: '#root', methods: { speakMethod: function (msg) { alert(msg) } } })
<html> <body> <div id="root"> <say v-on:speak="speakMethod($event)"></say> </div> </body> <script src="https://cdn.jsdelivr.net/npm/vue"></script> </html>