Vue: 当您在 beforeDestroy 中更改道具时,Vue 不会调用观察者

创建于 2018-05-23  ·  3评论  ·  资料来源: vuejs/vue

版本

2.5.16

转载链接

https://jsfiddle.net/86s8qufj/

重现步骤

  1. 打开复制链接
  2. 打开控制台
  3. 单击“切换测试组件”按钮。
    这将为您创建 TestComponent。
  4. 尝试更改输入中的某些内容。 您可以在控制台中看到“In testInfo watcher”,这意味着 testInfo watcher 已调用。
  5. 再次单击“切换测试组件”按钮。
    这会破坏 TestComponent。
    在 beforeDestroy 钩子中,我更改了“testInfo”属性。
    但是您只能在控制台中看到“In beforeDestroy”而不是“In beforeDestroy”和“In testInfo watcher”。

什么是预期?

我希望在 beforeDestory 钩子中更改“testInfo”属性时会调用该观察者。

实际发生了什么?

我在 beforeDestroy 钩子中更改了 'testInfo' 属性,但没有调用 watcher。

最有用的评论

我会说在文档中提及它会很好 - 因为现在有“在 Vue 实例被销毁之前调用。在这个阶段,实例仍然是完整的功能。”

所有3条评论

此外,如果您尝试在销毁的钩子中记录 testInfo - 您将看到新值。 但是对象应该被销毁......

beforeDestroy发生在销毁 Vue 实例之前,因此观察者不会触发是正常的,因为一旦实例被销毁它们就会触发(使大多数观察者功能无效)。
您应该在beforeDestroy挂钩中自己调用观察者,而不是更改数据

我会说在文档中提及它会很好 - 因为现在有“在 Vue 实例被销毁之前调用。在这个阶段,实例仍然是完整的功能。”

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

相关问题

bdedardel picture bdedardel  ·  3评论

bfis picture bfis  ·  3评论

franciscolourenco picture franciscolourenco  ·  3评论

Jokcy picture Jokcy  ·  3评论

paulpflug picture paulpflug  ·  3评论