npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

vuex-simplify

v1.2.0

Published

Plugin to simplify work with Vuex

Downloads

3

Readme

vuex-simplify

Plugin to simplify work with Vuex.

Use simple functions to access store state, getters and dispatch actions.

You don't even need to create mutations.

Installation

$ npm install vuex-simplify

How to use

In your main.js file

import VuexSimplify from 'vuex-simplify';
import store from './store';
Vue.use(VuexSimplify, { store });

Now you can access simplified functions from any component.

store.js

import Vue from 'vue'
import Vuex from 'vuex'
import shop from './modules/shop';

Vue.use(Vuex);

export default new Vuex.Store({
  state: {
      first_name: 'John',
      last_name: 'Doe'
  },
  actions: {
      myAction({ state }, payload) {
          // do something very important
      }
  },
  getters: {
      helloGetter: state => {
          return 'Hello, ' + state.first_name + ' ' + state.last_name
      }
  },
  modules: { shop }
})

Shop module shop.js

export default {
    namespaced: true,
    state: {
        products: [
            {
                title: "product1",
                price: 12
            },
            {
                title: "product2",
                price: 58
            }
        ]
    },
    actions: {
        checkout({ state }, payload) {
            // very important checkout function here
        }
    },
    getters: {
        summary: state => state.products.reduce((sum, item) => sum + item.price, 0)
    }
}

AnyComponent.js

export default {
    name: 'AnyComponent',
    created() {
        const first_name = this._state('first_name'); // get first_name from root store
        this._state('last_name', 'Smith'); // set last_name to 'Smith' in root store
        this._dispatch('myAction', { some: 'payload' }); // dispatch root action with payload
        const hello_message = this._getter('helloGetter', 'optionalParamsHere') // use getter from root
        
        const products = this._state('shop', 'products'); // get products from shop module
        this._state('shop', 'products', []); // make products an empty array
        this._dispatch('shop', 'checkout', { some: 'payload' }); // dispatch action checkout from shop module
        const summary = this._getterFm('shop', 'summary', 'optionalParams'); // use getter from shop module
    }
}

Contributions

Thanks to @IngvarLosev for idea and early realization