【问题标题】:How to access a vue component method from another app?如何从另一个应用程序访问 vue 组件方法?
【发布时间】:2019-08-17 20:24:51
【问题描述】:

我的这段代码在纯 html/javascript 中可以正常工作,但在 vuejs 中却不行。我有这个名为 myMethod() 的函数。 在 javascript 控制台中调试时,我可以这样访问它:myMethod("toto")。但在 vuejs 中,它只能像这样访问:$vm0.myMethod("toto")。

我绝对需要像这样访问它:myMethod("toto")。

这在 vue 中是否可行?

提前致谢。

【问题讨论】:

  • window.myMethod = () => {} 并在任何地方使用它
  • 在上下文中,我的 vue 应用程序只是手机应用程序中的一个浏览器选项卡。这个手机应用程序检查 vue 应用程序代码中名为 myMethod() 的方法,并在需要时调用它。这个应用程序不能调用 window.myMethod() 因为它不能!

标签: javascript vue.js vuejs2 vue-component


【解决方案1】:

对于非父子关系,则与此相同。从任何其他组件调用一个方法,显然是组件的任何方法。只需将$on 函数添加到$root 实例并调用任何其他访问$root 和调用$emit 函数的组件。

在第一个组件上

…… 挂载(){ this.$root.$on('component1', () => { // 你的代码在这里 this.c1method() } }

并在第二个组件中调用$root 中的$emit 函数

... c2方法:函数(){ this.$root.$emit('component1') //像这样 },

它更像是一个套接字。参考这里

https://stackoverflow.com/a/50343039/6090215

【讨论】:

  • 感谢您的回复,但我认为这是在一个 vue 应用程序中工作,还是我遗漏了什么?我的 vue 组件方法将被另一个不是 vuejs 应用程序的应用程序调用。不是我的 vue 应用程序中的另一个组件。我希望我很清楚......
猜你喜欢
  • 2016-11-07
  • 1970-01-01
  • 2021-02-16
  • 2018-02-19
  • 1970-01-01
  • 2019-11-05
  • 2015-11-09
  • 2021-01-15
  • 1970-01-01
相关资源
最近更新 更多