0.2.5 • Published 4 years ago

@golml/vuex-help v0.2.5

Weekly downloads
32
License
MIT
Repository
github
Last release
4 years ago

vuex-help

a plugin offers more natural API for Vuex.

Requirements

  • Vue.js (v2.0.0+)
  • Vuex (v2.0.0+)
  • Vue.use(Vuex) is installed
  • All Vuex state, getters and actions are organized into Vuex modules.

Motivations

Improve some of the difficulties of the existing api and mapXXX helpers.

  1. bad readability
  2. magic strings are hard to maintain and refactor
  3. can't navigate to the source in the IDE

Usage

minimal example how to access actions and mutations without using mapXX helpers and magic string

export default {
  computed: {
    cart () {
      const { cartProducts: products, cartTotalPrice: total } = this.$h.getters.cart
      const { checkoutStatus } = this.$h.state.cart
      return {
        products,
        total,
        checkoutStatus
      }
    }
  },
  methods: {
    checkout (products) {
      this.$h.dispatch.cart.checkout(products)
    }
  }
}

note: v0.2.4 supports two different helper formats. see Api documentation for more detail.

<div class="cart">
    <h2>Your Cart</h2>
    <p v-show="!cart.products.length"><i>Please add some products to cart.</i></p>
    <ul>
      <li
        v-for="product in cart.products"
        :key="product.id">
        {{ product.title }} - {{ product.price | currency }} x {{ product.quantity }}
      </li>
    </ul>
    <p>Total: {{ cart.total | currency }}</p>
    <p><button :disabled="!cart.products.length" @click="checkout(cart.products)">Checkout</button></p>
    <p v-show="cart.checkoutStatus">Checkout {{ cart.checkoutStatus }}.</p>
  </div>

Install

npm install --save @golml/vuex-help
// example/shopping-cart/app.js
import Vue from 'vue'
import VuexHelp from 'vuex-help'
Vue.use(VuexHelp)

Check out full example on shopping-cart-vuex.

Nuxt.js

install vuex-help as nuxtjs plugin

// vuex-help.plugin.js 
export default function (ctx, inject) {
  const { store } = ctx
  const vuexHelp = mapStore(store)
  inject('h', vuexHelp)
}
// nuxt.config.js
{
  plugins: [{ src: '~/plugins/vuex-help.plugin.js'}]
}

API

Vue.use(VuexHelp, options) (v0.2.4)

Creates a new instance of the plugin with the given options. The following options can be provided to configure the plugin for your specific needs:

  • name <String>: The key for define property name on Vue.prototype. Defaults to "$h".
  • format <String>: Specify "vuex" for helper object that follow vuex api format. ie. $h.dispatch.products.getAllProducts(). See full example on shopping-cart-vuex. Specify "module" for helper object that follow module format. ie. $h.products.actions.getAllProducts(). See full example on shopping-cart. Defaults to "vuex".

Roadmap

open to feature requests.

License

The MIT License (MIT). Please see License File for more information.

0.2.5

4 years ago

0.2.4

4 years ago

0.2.3

4 years ago

0.2.2

4 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.1.8

4 years ago

0.1.9

4 years ago

0.1.7

4 years ago

0.1.6

4 years ago

0.1.5

4 years ago

0.1.4

4 years ago

0.1.3

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago