如何强制Vuejs运行监视功能

时间:2018-09-21 14:32:04

标签: javascript vue.js

我正在使用Vue,并具有以下几种监视功能:

Exception in thread "main" cucumber.runtime.CucumberException: Unrecognized plugin: org.jetbrains.plugins.cucumber.java.run.CucumberJvm2SMFormatter
at cucumber.runtime.RuntimeOptions.addPluginName(RuntimeOptions.java:171)
at cucumber.runtime.RuntimeOptions.parse(RuntimeOptions.java:122)
at cucumber.runtime.RuntimeOptions.<init>(RuntimeOptions.java:84)
at cucumber.runtime.RuntimeOptions.<init>(RuntimeOptions.java:77)
at cucumber.runtime.RuntimeOptions.<init>(RuntimeOptions.java:69)
at cucumber.api.cli.Main.run(Main.java:31)
at cucumber.api.cli.Main.main(Main.java:18)

我的问题是所有这些道具仅会在更改时(更改后)或换句话说在与视图/ ui交互后进行评估。 取而代之的是,我需要他们中的每一个在init上进行一次评估。有wa吗?在文档上找不到有用的信息。

2 个答案:

答案 0 :(得分:2)

您可以传递immediate属性:

https://vuejs.org/v2/api/#vm-options

示例:

watch: {
  foo: {
    immediate: true,
    handler(nv, ov) { ... }
  }
}

另一个选择是将逻辑抽象为方法并在生命周期挂钩上运行它。如果您还需要在其他地方运行逻辑,这将很有用。

答案 1 :(得分:0)

经过一些研究,答案是:您不能可靠地做到这一点。或者,更精确地说,即使通过传递immediate: true,在函数作用域中,您也无法访问与生命周期挂钩类似的属性,例如'mounted'(请参见上面的注释,例如{ {1}}。

因此,我个人最终将所需的逻辑抽象到另一个函数中,并将其定义到Vue的$refs属性中。然后,我根据需要在methods(出于我的init需求)和监视程序(而不是原始代码)中调用该函数。