Vue再次加载组件,变量更新导致无法渲染视图

发布于 2022-09-06 21:32:43 字数 826 浏览 8 评论 0

有一个组件,组件data中有一个数组:

data () {
  return {
    list: [] // 假设该数组的 dep.id = 53 
  }
}
vue中被监听的对象,在控制台中打印的时候,会有 __ob__: Observer 其中有个dep.id
还不太了解这个dev.id的具体含义,猜测该id为对象唯一标识

然后,在methods中,为list赋值,大概操作就是 this.list = someData, 然后视图会自动更新,目前一切正常

问题是,当页面进行跳转,再回到该页时,会发现 listdep.id值更新了,且该值貌似都比较大,基本在1000+,先假设该值是1024
而且,在操作list时,即上面提到的操作 this.list = someData, 这里的listdep.id并不是1024,而是最初的值 53,这最终导致的结果就是视图无法更新(猜测这时视图引用的应该是1024list

目前已经通过在data()外定义list,使得重新加载组件时引用的都是同一个对象,但是这里面的歪歪还请大佬们指点一下

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

┼── 2022-09-13 21:32:43

貌似是因为代码里有闭包,导致变量在组件销毁时没能初始化

笑着哭最痛 2022-09-13 21:32:43

重新加载组件,data 恢复到初始值,这有什么问题吗- -

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文