本文实例为大家分享了Vue.js数字输入框组件的具体实现代码,供大家参考,具体内容如下
效果

入口页 index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>数字输入框组件</title>
</head>
<body>
<div id="app">
<input-number v-model="value" :max="10" :min="0"></input-number>
</div>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="input-number.js"></script>
<script src="index.js"></script>
</body>
</html>数字输入框组件 input-number.js
function isValueNumber(value) {
return (/(^-?[0-9]+.{1}d+$) | (^-?[1-9][0-9]*$) | (^-?0{1}$)/).test(value + '');
}Vue.component('input-number',{
template: '
<div class="input-number">
<input
type="text"
:value="currentValue"
@change="handleChange">
<button
@click="handleDown"
:disabled="currentValue <= min">-</button>
<button
@click="handleUp"
:disabled="currentValue >= max">+</button>
</div>',
props: {
max: {
type: Number,
default: Infinity
},
min: {
type: Number,
default: -Infinity
},
value: {
type: Number,
default: 0
}
},
data: function () {
return {
currentValue: this.value
}
},
watch: {
currentValue: function (val) {
this.$emit('input', val);
this.$emit('on-change',val);
},
value: function (val) {
this.updateValue(val);
}
},
methods: {
updateValue: function (val) {
if(val > this.max)
val = this.max;
if(val < this.min)
val = this.min;
this.currentValue = val;
},
handleDown: function () {
if(this.currentVaule <= this.min)
return;
this.currentValue -= 1;
},
handleUp: function () {
if(this.currentVaule >= this.max)
return;
this.currentValue += 1;
},
handleChange: function (event) {
var val = event.target.value.trim();
var max = this.max;
var min = this.min;










