2025-05-02
Vue
00
请注意,本文编写于 225 天前,最后修改于 225 天前,其中某些信息可能已经过时。

目录

reactive数据重置

Vue3技巧大总结

reactive数据重置

在实际开发中,我们常常需要对某些数据进行深拷贝,以便于在特定操作时恢复原始数据。比如,当用户对某个表单进行编辑时,我们可能希望在用户放弃编辑时能够重置数据,恢复到原始状态。

这里我们创建了一个 useReactive 的自定义 Hook,它接收一个对象,并使用 reactive 将其变成响应式对象。同时,我们使用 JSON.parse(JSON.stringify(value)) 来进行深拷贝,这样可以避免直接引用原始数据,确保数据重置时不会影响到其他地方的状态。

ts
ts 复制编辑 import { reactive } from 'vue' export const useReactive = <T extends Object>(value: T) => { // 使用深拷贝确保 state 是原始数据的副本 const state = reactive(JSON.parse(JSON.stringify(value))) as T // 重置 state 数据为原始数据 const reset = (newData = null) => { // 删除现有的属性 Object.keys(state).forEach((key) => delete state[key]) if(newData){ // 重新赋值为原始数据 Object.assign(state,JSON.parse(JSON.stringify(newData))) }else{ // 重新赋值为原始数据 Object.assign(state, JSON.parse(JSON.stringify(value))) } } return { state, reset } }
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:繁星

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!