Vue: 提升 vnode - 无限循环警告

创建于 2017-09-15  ·  3评论  ·  资料来源: vuejs/vue

版本

2.4.4

转载链接

http://jsfiddle.net/vjvMp/2019/

重现步骤

组件的精确布局在 JSFiddle 中。 由于某种原因,组件的组装非常脆弱,这让我认为这是一个错误。 例如,如果我删除不应影响代码的最顶层layout组件,警告就会消失: http :

什么是预期?

将 Child 上的插槽提升到 Parent 并在 Child 上方渲染,没有问题。

实际发生了什么?

Child 被渲染,但有一个无限更新循环警告。

最有用的评论

  • 您正在从data返回 API,这使得 while api对象具有反应性
  • 当您将 vnodes 设置为使 Vue 尝试转换 vnode 的 API 时
  • 在 2.4.3 中,插槽节点现在在重新渲染时被深度克隆以修复一些错误,这使得渲染函数将整个 vnode 注册为反应性依赖项,因此更改 vnode 会触发重新渲染。

现在,您的解决方法可能是Object.freeze vnode 或不使 api 注入具有反应性。

所有3条评论

代码在 v2.4.2

  • 您正在从data返回 API,这使得 while api对象具有反应性
  • 当您将 vnodes 设置为使 Vue 尝试转换 vnode 的 API 时
  • 在 2.4.3 中,插槽节点现在在重新渲染时被深度克隆以修复一些错误,这使得渲染函数将整个 vnode 注册为反应性依赖项,因此更改 vnode 会触发重新渲染。

现在,您的解决方法可能是Object.freeze vnode 或不使 api 注入具有反应性。

修复效果很好! 谢谢@yyx990803

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

robertleeplummerjr picture robertleeplummerjr  ·  3评论

paulpflug picture paulpflug  ·  3评论

guan6 picture guan6  ·  3评论

bdedardel picture bdedardel  ·  3评论

wufeng87 picture wufeng87  ·  3评论