Vuex extended
Description
short package to extend vuex with some additional mappers
Install
NPM
npm i vuex-extended
Yarn
yarn add vuex-extended
Vuex store preparation
Add the setEntry mutation to your store. If you are using store modules,
make sure to insert in at root level of the store.
import { createSetEntryMutation } from 'vuex-extended';
export const mutations = {
...createSetEntryMutation,
};
Usage
Now you can use all vuex mappers and the additional mappers in your Vue components.
import { mapEntry, mapActions } from 'vuex-extended'
Vue.component('my-component', {
computed: {
...mapEntry('path.to.my.entry')
},
methods: {
...mapActions('myAction')
}
})
Additional mappers
mapEntry
mapEntry adds computed getters and setters for the given store entries. This is especially usefull
for handling form data with v-model.
Syntax
There are multiple ways to use mapEntry:
Vue.component('my-component', {
computed: {
...mapEntry('path.to.my.entry'),
...mapEntry('path.to.my.entry', 'alias'),
...mapEntry('path.to.my', ['entry']),
...mapEntry('path.to.my', [{'alias': 'entry'}]),
...mapEntry('path.to.my', ['entry', 'anotherEntry']),
...mapEntry('path.to.my', [{'alias': 'entry'}, {'anotherAlias': 'anotherEntry'}]),
...mapEntry('path.to.my', [{'alias': 'entry'}, 'anotherEntry']),
}
});
You can use dot notation, slash notation and bracket notation for the path.
Vue.component('my-component', {
computed: {
...mapEntry('path.to.my.entry'),
...mapEntry('path/to/my/entry'),
...mapEntry('path["to"]["my"]["entry"]'),
...mapEntry('path/to.my["entry"]'),
...mapEntry('path.to.my[0].entry'),
}
});