У вас есть пара вещей, которые идут не так, но наиболее фундаментальным является то, что вы смешиваете Nom и NUM в своем коде.Я немного переработал ваш компонент и превратил ваши данные num в свойство, а затем привязал его к вашему основному приложению.
Вот ваш переработанный код ...
Vue.config.devtools = true;
// global component registration
Vue.component('num-input', {
template: '#numInput',
props: ['value'],
computed: {
isNegative: function() {
console.log('num: ' + this.value)
return this.value < 0;
},
listeners: function () {
return this.$listeners;
},
},
methods: {
reset () {
if (this.isNegative) {
this.$emit('input', 0)
}
}
},
});
new Vue({
el: '#container',
data: {
num: 0,
},
methods: {
increaseBy1() {
this.num++;
console.log("increased by 1");
},
},
});
Чтобы просмотретькод и html-привязку. Я разветвил ваш код, и его можно найти по адресу ...
https://codepen.io/peterpde/pen/BOVQzg