【问题标题】:Why updated not working on vue.js?为什么更新不适用于 vue.js?
【发布时间】:2018-02-12 11:10:50
【问题描述】:

我的代码是这样的:

updated() {
    console.log('test')
}, 

演示和完整代码如下:https://jsfiddle.net/50wL7mdz/58492/

我在控制台上查看,console.log('test') 的结果没有显示

如果我使用挂载,它可以工作

为什么如果我使用更新,它不起作用?

我该如何解决这个问题?

【问题讨论】:

  • 我可能是错的,但我很确定这是因为它位于根实例而不是组件上。你在实例上更新什么?

标签: vue.js vuejs2 vue-component


【解决方案1】:

您实际上并没有更新任何内容,请查看此 JSFiddle:

https://jsfiddle.net/50wL7mdz/58496/

此数据是您的初始数据,因此永远不会触发更新挂钩。

data: {
  message: 'Hello Vue.js!'
}

一旦我更改了挂载生命周期挂钩中的初始数据,您就会看到updated 挂钩被触发。

【讨论】:

  • 所以你的意思是应该有更新的数据?如果没有更新数据,那么updated 不起作用?
  • 来自文档:Updated: Called after a data change causes the virtual DOM to be re-rendered and patched. 所以您实际上需要更改数据属性的值。所以是的,应该有更新的数据。
  • 好的。非常感谢
【解决方案2】:

另一种可能导致 updated() 失败的情况与 v-if 有关。如果组件的 v-if 初始值为 true,则 updated() 函数起作用。但是如果 v-if 的初始值为 false,updated() 可能会失败。

【讨论】:

    猜你喜欢
    • 2019-10-11
    • 2020-04-30
    • 2011-06-18
    • 2018-04-28
    • 1970-01-01
    • 1970-01-01
    • 2017-04-18
    • 1970-01-01
    • 2021-02-04
    相关资源
    最近更新 更多