- Props (
props) – The simplest communication channel in Vue for direct Parent-Child communication. It should mostly be used to pass data relating to presentation logic or a restricted set of data down the hierarchy.
- Refs and methods (
ref) – When it doesn’t make sense to use a prop to let a child handle an event from a parent, setting up a ref on the child component and calling its methods is just fine.
- Events (
$emit and $on) – The simplest communication channel for direct Child-Parent communication. Again, should be used for presentation logic.
- Event bus (
this.$root.$emit, this.$root.$on) – This can become useful when passing props all over the place from far up down to deeply nested children components, with almost no other components needing these in between.
- Centralized store (Vuex) – Vuex is the way to go with Vue for state management. It offers a lot more than just events and it’s ready for full scale application.