vue初始化赋值为null但是在输入框输出的却是字符串类型
时间: 2024-03-08 12:50:38 浏览: 95
在 Vue 中,模板中绑定的值都是字符串类型,因此如果在模板中使用双花括号绑定一个 null 值,会自动将其转换为空字符串。这是因为在 HTML 中,所有的值都是字符串类型。
如果要将一个输入框中输入的字符串类型的值转换为 null,可以使用 JavaScript 的内置函数 parseFloat 将其转换为数字类型,然后判断该数字是否为 NaN,如果是,则将变量赋值为 null。例如:
```html
<template>
<div>
<input type="text" v-model="ageString" />
<div v-if="age === null">My age is unknown</div>
<div v-else>My age is {{ age }}</div>
</div>
</template>
<script>
export default {
data() {
return {
age: null,
ageString: ''
}
},
watch: {
ageString(newVal) {
const num = parseFloat(newVal);
this.age = isNaN(num) ? null : num;
}
}
}
</script>
```
上述代码中,首先在 data 中定义了一个 age 变量,初始值为 null,表示年龄未知,ageString 变量,初始值为 '',表示输入框中的值为空。在模板中,使用一个输入框绑定了 ageString 变量,当输入框中的值发生变化时,通过一个 watch 监听器来将其转换为 null 或数字类型,并更新 age 变量的值。如果 age 变量的值为 null,则显示 "My age is unknown",否则显示 "My age is xx",其中 xx 为 age 变量的值。
阅读全文