重置页面数据(涉及$options及Object.assign)

$options是一个记录当前Vue组件的初始化属性选项。通常开发中,我们想把data里的某个值重置为初始化时候的值,可以像下面这么写

this.value = this.$options.data().value;

在实际开发中,我们会遇到复杂的表单弹窗,例如新建弹窗,保存成功后一般会跳转到列表页,再次打开时需要清空表单数据及一些设置数据可以清空data。代码如下:

Object.assign(this.$data, this.$options.data.call(this));

但是涉及有表单校验的时候,再次打开页面,会走校验,此时需要处理下表单相关的

this.$refs.ruleFormRef.resetFields();

针对在data中定义的rules,目前还没有找到解决方法,我一般把rules写在dom中

这里小讲一下 Object.assign:

1 如果只有一个参数,Object.assign会直接返回该参数

const target = { a: 1, b: 2 };
const currentTarget = Object.assign(target);
console.log(currentTarget);
 
//{a: 1, b: 2}

如果该参数不是对象会转为对象,然后return;(undefined || null出现在target(源对象)位置无法转换为对象会报错)

const currentTarget = Object.assign(10);
console.log(currentTarget);
 
//Number {10}

其他类型的值(即数值,字符串和布尔值)不在首参数,也不会报错。但是,除了字符串会以数组形式,拷贝入目标对象,其他值都不会产生效果。

const source1 = "aaa";
const source2 = false;
const source3 = 666;
 
const currentTarget = Object.assign({}, source1, source2, source3);
console.log(currentTarget);
//{0: "a", 1: "a", 2: "a"}

参考链家:Object.assign()详解-阿里云开发者社区

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值