我有一个组件从父组件中获取 prop ,现在我只想克隆 prop --我不想在父组件中也反映这些更改。
<template>
<input-text v-model="form.name" />
</template>
export default defineComponent({
props: {
record: {
type: Object,
required: true,
default: () => ({}),
},
},
setup(props) {
const form = ref({})
// when props change, clone them
watchEffect(() => {
dForm.value = props.record
})
return { form }
},
})
现在,我想在每次props到达时创建一个副本-我不希望v-model
更改父组件中的props-我只希望更改在本地发生,在这个组件内部。我如何克隆props.record
?我尝试了Object.assign({}, props.record)
和其他一些方法,但都不起作用。
1条答案
按热度按时间0x6upsns1#
使用深度观察者
小心使用
深度监视需要遍历被监视对象中的所有嵌套属性,并且在大型数据结构上使用时开销可能会很大。请仅在必要时使用它,并注意性能影响。
x一个一个一个一个x一个一个二个一个x一个一个三个一个