vue3重置reactive值

4,118 阅读1分钟

最近在写vue3的项目,途中也遇到了一些问题。

  1. reactive重置值
最开始我是这么写的
interface user {
  id: number;
  userName: string;
  password: string;
  nickName: string;
  phone: string;
  pwd2: string;
}
let addUser: UnwrapRef<user> = reactive({
    id: 0,
    userName: "",
    password: "",
    nickName: "",
    phone: "",
    pwd2: "",
});
//赋值,传参后准备重置
if (res.code == 0) {
addUser={
    id: 0,
    userName: "",
    password: "",
    nickName: "",
    phone: "",
    pwd2: "",
   }
   //但是这么写并没有用,
}

然后百度出了两种方法[- 关于reactive的重置问题# vue3.0重置reactive值

代码如下

//将reactive中的值拿出,用计算属性来获得
const info = () => {
  return {
    id: 0,
    userName: "",
    password: "",
    nickName: "",
    phone: "",
    pwd2: "",
  };
};
let addUser: UnwrapRef<user> = reactive(info());

//重置值
if (res.code == 0) {
      ElMessage({
        type: "success",
        message: res.msg,
      });
      //用对象的assign方法进行合并,Object.assign(需要重置的参数,计算方法返回的值)
      Object.assign(addUser, info());
    }