之前的文章我有提到过通过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