我正在用onMounted钩子从数据库中获取数据,并在表单中显示对象。当用户点击保存时,我只想检查对象数据是否发生了变化。
onMounted(async () => {
loadingBasic.value = true
const doc = await getDocument('workspaces',props.uid) //doc is ref({}) also
wspace.value = doc.value
loadingBasic.value = false
})
我创建了一个只读对象,但是当wspace对象改变时,只读对象也改变了。我怎样才能创建一个引用对象的初始拷贝呢?
顺便问一下,有没有其他简单的方法来检查表单更改?
3条答案
按热度按时间ie3xauqp1#
您仅复制带有
wspace.value = doc.value
的引用。您可以使用以下命令复制值:tvokkenx2#
一些建议**:**
shallow copy
,而是对象的deep copy
来保持初始状态,可以检查两个here中的差异。JSON.parse(JSON.stringify(object))
{...obj}
并将结果赋给新变量。演示:
gwbalxhn3#
应使用以下选项执行深层拷贝:
结构化克隆https://developer.mozilla.org/en-US/docs/Web/API/structuredClone
常量复制条=结构化克隆(foo)