自己写了一段只能输入数字的组件代码,如下:
Vue.component('my-numberinput', { template:'<input type="text" ref="input" v-bind:value="value" v-on:input="updateValue($event.target.value)"/>', props:["value"], methods:{ updateValue: function (n) { this.oldval = this.oldval || 0; if (isNaN(n)) { this.$refs.input.value = this.oldval; } else { this.oldval = n; } this.$emit('input', Number(this.oldval)); } } });
使用时,发现不能绑定blur事件,代码如下:
<my-numberinput @blur="alert('no work')" onblur="alert('work')"></my-numberinput>
但是直接使用onblur事件又可以,所以想问问是我哪里写错了,还是什么原因
@blur.native=""
组件里面先监控input的bulr事件$emit出来,然后在组件上用@监控。