Vue.component('coupon', { props: ['code'], template: ` `, methods: { updateCode(code) { // Atttach validation + sanitization here. this.$emit('input', code); } } }); new Vue({ el: '#app', data: { coupon: 'FREEBIE' // Maybe from DB or querystring. } });