Vue组件传值过程中丢失数据的分析与解决方案

上传:drug94501 浏览: 7 推荐: 0 文件:pdf 大小:155.28 KB 上传时间:2021-06-19 11:50:32 版权申诉

举例以基于 el-table 封装的 ak-table 组件为例:往 ak-table 组件中传入 row-key 属性,该属性可传入一个函数:Function,具体见按理正常逻辑,传入 ak-table 的属性值应该原封不动地传入到 el-table 组件中,但是奇怪的事情在这里发生了,我们传入的函数在组件中消失了!问题分析首先传入 ak-table 的 row-key 属性的值,它是一个函数,即引用类型值,那么根据文章开头所说,如果对引用类型的值进行一般的深拷贝操作,是会丢失函数和数组等数据的。在 ak-table 中,找到 row-key 属性,因为没有在 props 中定义,所以应该是保存在组件的 attrs 属性中。去到mounted方法,在此打印attrs 的值,看看拷贝前后的数据对比。解决方案对于传入引用类型的值,直接通过子组件的 props 属性接收来自父组件的值,然后不对传进来的值做处理,直接使用。

上传资源
用户评论