Vuex Actions in Vue are part of the Store as we have seen in the Vue basics.
From a Vue component in order to dispatch actions, it is as simple as this.
this.$store.dispatch('auth/login_action', user)
However, Vuex provides helper and utilities to do it even in more readable manner. First of all, one has to get the Vuex into the component.
import { mapActions } from 'vuex'
Next is the actual map of the dispatch code to a function call.
methods : {
...mapActions({
login : 'auth/login_action'
})
}
Now, wherever necessary one can call login()
which will dispatch the action. The code will look something like calling a function.
login(user)
What is done by mapActions
from Vuex is a mapping of login
function to this.$store.dispatch( 'auth/login_action', user )
. Wherever the login(user)
is called, it is actually doing this.$store.dispatch( 'auth/login_action', user )
.
// Now both are same
login(user)
this.$store.dispatch('auth/login_action', user)
Happy coding.