Can't execute code from a freed script

举个例子,父组件引入了子组件,子组件是个弹框。在子组件里面通过Ajax获取数据,这个数据是个对象或者数组,将这个对象赋值给父组件的 data 属性。子组件销毁之后,父组件却报错 Can't execute code from a freed script

原因是对象或数组直接给属性赋值是浅拷贝,数据实体在子组件内,如果子组件销毁了,那么这个实体数据也丢失了。这时父组件属性引入的数据突然不存在了,所以发生了异常

在将子组件的对象或数组数据经过深拷贝后赋值给父组件属性,那么父组件内存中也会有这份数据实体了。

JSON.parse(JSON.stringify(result));

完美解决

# Vue 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×