vuex-module

0.4.0 • Public • Published

vuex-module

Module that turns vuex modules into poetry.

Key features

  • Auto namespacing for mutations, actions and getters
  • Mappers for namespaced components
  • Localized state and commit available via this
  • Nicer way of registering mutations, actions and getters
  • Optional global registration for getters

Example

import { VuexModule } from 'vuex-module'
import shop from '../../api/shop'
 
const { state, getter, action, mutation, build } = new VuexModule('products')
 
state({ all: [] })
 
getter(function all() {
  return this.state.all
});
 
action(function fetch() {
  return shop.getProducts(products => {
    this.commit('fetch', products)
  })
})
 
mutation(function fetch(products) {
  this.state.all = products
})
 
export default build()

Getters, actions and mutations will be prefixed with with module name resulting with: products/all, and products/fetch methods.

You can then use VuexModule mappers to map namespaced methods to your components.

export default {
  computed: mapGetters({ products: 'all' }, 'products'),
  methods: mapActions(['fetch'], 'products')
}

Inside mutations state is available via this. This simplifies function declaration and makes code more readable. Same goes for getters and actions (context, commit, rootState, rootGetters).

MIT

/vuex-module/

    Package Sidebar

    Install

    npm i vuex-module

    Weekly Downloads

    2

    Version

    0.4.0

    License

    MIT

    Unpacked Size

    88.5 kB

    Total Files

    13

    Last publish

    Collaborators

    • undersc0pe
    • vladimyr