通过this.$options.data()重置变量时,会影响到引用了props或methods的变量

之前的文章我有提到过通过this.$options.data().具体某个值来将该值进行初始化

但我在项目中遇到了一个问题:

具体情况是:在data中定义一个变量时有用到methods中的一个方法,在后续的方法中我通过this. $options.data.值去重置了另一个数据,但用了methods方法的那个变量受到了影响

去搜索了才知道,通过this.$options.data()重置组件data时,data中用this获取的props或者methods都会为undefined,因此,如果有变量中使用到了props中的数据或者methods中的方法,那么该数据就会有影响

因此为避免不需要重置的数据有影响,我们初始化时可以用 :

this.info=this.$options.data.call(this).info

举个例子:
例如:表单的自定义校验规则,自定义校验规则中validator的值为一个方法,该方法如果定义在了methods中,那么通过this.$options.data去初始化某个数据时,校验规则这个数据也会有影响,因为它里面某个自定义规则的validator变为了undefined

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值