允许第三方js与我的vuejs app进行通信

时间:2017-08-06 00:55:07

标签: vue.js

我正在创建一个vuejs应用。我想添加第三方非vue js脚本向我的应用程序发送命令或数据的能力。例如

window.app = new Vue({})

app.setTitle = 'Hello'

当然我想只暴露某些方法和触发器。

1 个答案:

答案 0 :(得分:4)

你可以这样做window.app,当你不使用webpack就足够了。如果您使用webpack,则必须导出app变量。 在 如vue文档中所述,new Vue()返回一个可以访问所有方法,数据等的代理对象。因此,如果您只想导出一些方法,则必须创建一个接口对象。

var app = new Vue({...});
var interface = {
  methodA: app.methodA,
  methodC: app.methodC
};

您可以以类似的方式使事件可用,但最好使用vuex。

如果您更喜欢全局状态对象,请使用vuex。它的属性可以映射到每个实例和组件https://github.com/vuejs/vuex

如果您更喜欢基于事件的方法,请使用事件总线https://alligator.io/vuejs/global-event-bus/