vue3 + ts reactive方式清空表单对象

reactive 方式

javascript 复制代码
const emptyForm = (): DefectRecord => ({
  recordStatus: DEFECT_RECORD_STATUS.DRAFT,
  unsafeBehaviorFlag: false,
  rectifiedOnRegister: false,
  isRepeat: false,
  hasEquipment: false,
  observeTime: nowStr(),
  observerId: currentUserId.value,
  observerNickname: currentUserName.value
})
const form = reactive<DefectRecord>(emptyForm())
javascript 复制代码
function resetFormData() {
  Object.keys(form).forEach(key => {
    delete form[key]
  })
  Object.assign(form, emptyForm())
  proxy.resetForm('formRef')
}

Object.assign(form, emptyForm()) 这个只能替换 emptyForm 中定义的字段

emptyForm 中没有定义的字段 比如 id 、remark 、status 等等其他字段会保持原样

下面这样 先 删除所有key 再 赋值 就能达到重置的效果

Object.keys(form).forEach(key => {

delete formkey

})

Object.assign(form, emptyForm())

ref 方式

javascript 复制代码
// 如果你用的是 ref() 就简单很多:
// 表单很常见
const form = ref({
  name: '',
  age: 0
})
// 正确重置方式(这会清空没有列出来的字段):
form.value = {
  name: '',
  age: 0
}
相关推荐
卷无止境15 分钟前
ECharts:把数据变成故事的可视化利器
前端
Eric_见嘉23 分钟前
在职前端 Skill 和 MCP 分享
前端·后端·agent
狗凯之家源码网25 分钟前
微博图床 PHP 系统搭建与实战应用指南
android·开发语言·php
liangshanbo121540 分钟前
面试题:如何优化 Webpack 的打包速度?
前端·webpack·node.js
wengad1 小时前
从 wangEditor 迁到 wangEditor-next
前端·javascript·vue.js
乌暮2 小时前
深入理解 Java 泛型:把「万能盒子」用对、用稳
java·开发语言·后端·学习
行者-全栈开发2 小时前
【前端/JS框架】CVE-2026-3854:GitHub Enterprise Server X-Stat注入XSS漏洞深度剖析与紧急修复指南
前端·javascript·github
2601_962218612 小时前
C语言中三种库的编译和使用方法
开发语言·c++
传奇开心果编程3 小时前
中庸、有容、破执:仓颉编程语言的中华智慧结晶——三重哲学境界思辨
开发语言·华为·开源·软件工程
jimy13 小时前
派生类重写基类虚函数(二):override的作用
开发语言·c++