我习惯于使用全局事件总线来处理跨组件方法。例如:
var bus = new Vue();
...
//Component A
bus.$emit('DoSomethingInComponentB');
...
//Component B
bus.$on('DoSomethingInComponentB', function(){ this.doSomething() })
但是,我正在构建一个较大的项目,这需要全局状态管理。自然,我想使用Vuex。
尽管此总线模式可用于Vuex,但似乎是错误的。我已经看到Vuex建议替代此模式。
有没有一种方法可以在Vuex的组件中运行方法?我应该如何处理?
在事件总线用于在应用程序的不同组件之间进行通信的同时,vuex可以管理应用程序的中央状态,从某种意义上说,Vuex和事件总线是两种不同的事物。
您可以从组件执行vuex突变或动作,还可以从vuex的动作引发事件。
正如文档所说:
因此,您可以通过总线从操作引发事件,并且可以从任何组件方法调用操作。