vue3表单字段赋值清空
时间: 2025-05-05 19:03:35 AIGC 浏览: 76
### Vue3 表单字段赋值和清空
#### 使用 `reactive` 和 `ref`
在 Vue 3 中,表单字段可以通过 `reactive` 或者 `ref` 来定义并管理其状态。为了实现表单字段的赋值和清空操作,通常会保存一份原始数据副本用于重置。
当使用 `reactive` 定义响应式对象时,可以直接通过重新分配整个对象来进行初始化设置或清除操作[^2]:
```javascript
import { reactive, toRefs } from 'vue';
// 原始数据模板
const formDataTemplate = {
name: '',
email: ''
};
// 初始化表单数据
let formData = reactive({ ...formDataTemplate });
function resetFormData() {
Object.assign(formData, formDataTemplate);
}
```
对于单独的输入控件,则可以利用 `ref` 进行更细粒度的操作:
```javascript
import { ref } from 'vue';
// 单独定义每个字段作为 refs
const userName = ref('');
const userEmail = ref('');
function clearInputFields() {
userName.value = '';
userEmail.value = '';
}
```
#### 组件内部处理
如果是在组件内完成这些功能,可以在 setup 函数里声明上述变量以及相应的方法,并将其暴露出去供模板或其他地方调用。
```html
<template>
<!-- 省略其他 HTML 结构 -->
<form @submit.prevent="handleSubmit">
<label>Name:</label><input v-model="userName" />
<label>Email:</label><input v-model="userEmail" />
<button type="reset" @click="clearInputFields">Clear</button>
<button>Submit</button>
</form>
</template>
<script lang="ts">
export default defineComponent({
setup() {
const userName = ref('');
const userEmail = ref('');
function handleSubmit() {/* 处理提交 */}
function clearInputFields() {
userName.value = '';
userEmail.value = '';
}
return { userName, userEmail, handleSubmit, clearInputFields };
}
});
</script>
```
以上展示了如何在一个简单的场景下对 Vue 3 的表单字段执行赋值与清空动作。实际项目可能会更加复杂,涉及到更多类型的输入元素或者其他业务逻辑需求。
阅读全文
相关推荐




















