最近在写vue3的项目,途中也遇到了一些问题。
- 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());
}