Presentational/Container components pattern with Vuex

How do you recommend to handle the Presentational - Container (or Smart - Dumb) component pattern with Vuex? Should the Presentational (or Dumb) components emit events to the parent or call Vuex actions? Imagine having a complex component structure where a Container (or Smart) component has many nested Presentational components. The nested event emission (eg, 4 levels) can be difficult to handle and requires a lot of repetitive code, but, on the other hand, a Presentational component that calls actions, does not seem very presentational to me. What about using an event bus? I know it is not recommended, and this is why I would like to read your recommendations.

I’m not sure I can make much sense of your question.

It sounds like you might be thinking about using Vuex as an alternative to an event bus to allow presentational components to trigger ‘work’ in container components by updating the store. While this could work, it’s likely to be unnecessarily complicated. From a presentational component’s perspective, Vuex is only likely to be used as a data source using getters, without doing any ‘work’ on the store via actions/mutations.

I’m interested to know why you say that event buses aren’t recommended - this sounds like exactly the situation which they are most useful for.