Slim Top-Level API

Slim is the entry point to the Slim library. If you load Slim from a Script tag, Slim can use these top-level APIs globally. If you use ES6 and npm, impoart Slim from 'slim-store'. If you use ES5 and npm, var Slim = require('slim-store').

Overview

Create a Store instance.

Inject the plugin.

Event center related.

Store instance API.

Reference

Slim.createStore

Slim.createStore(Spec) creates and returns a Store instance.

const store = Slim.createStore(spec)

Spec

Spec is a configuration object passed in Slim.createStore

const store = Slim.createStore(spec)

Slim.use

Slim.use(plugin) is a more flexible plugin injection method before Store is created.

import Slim from 'slim-store'

let plugin = {
    init(store) {
      console.log('init')
    }
}

Slim.use(plugin)

Store.dispatch

Store.dispatch(actionType, ...args) Trigger Action. More about Action.

import Slim from 'slim-store'

const actions = {
  increment: (context, ...args) => {
    console.log('action increment fire')
  }
}

const store = Slim.createStore({
  actions
})

store.dispatch('increment')
// output: action increment fire

Store.commit

Store.commit(reducerKey, ...args) Trigger Reducer. More about Reducer.

import Slim from 'slim-store'

const reducers = {
  increment: (state, ...args) => {
    console.log('action increment fire')
  }
}

const store = Slim.createStore({
  reducers
})

store.commit('increment')
// output: action increment fire

Store.getGetter

Store.getGetter(getterKey) is a combination of state methods. More about getGetter.

import Slim from 'slim-store'

const state = {
  firstName: 'slim',
  lastName: 'store'
}

const getters = {
  fullName: ({firstName, lastName}) => firstName + ' ' + lastName 
}

const store = Slim.createStore({
  state,
  getters
})                  

const username = store.getGetter('username')

console.log(username)   
// output: slim store

Spec.state

Spec.state is a single object data source

const state = {
  level1: {
    key1OfLevel1: 11
  },
  level2: {
    key1OfLevel2: 12
  }
}

Spec.actions

Spec.actions is the key-value pair of the method. The callback receives multiple parameters, the first parameter is the current Store context

const actions = {
  actionType: (context, ...args) => {
    store.commit('actionType', ...args)
  }
}

Spec.reducers

Spec.reducers is the key-value pair of the method. The callback receives multiple parameters, the first parameter is the **State registered under the current Store

const reducers = {
  reducerKey: (state, arg1, arg2) => {
    state.someKey = arg1 + arg2
  }
}

Spec.getters

Spec.getters is the key-value pair of the method. The callback receives a parameter, State registered under Store

const getters = {
  fullName: ({firstName, lastName}) => firstName + ' ' + lastName
}

Spec.mode

Spec.mode is the data restriction mode, optional values: "strict" (default) and "loose", more about Mode

Spec.plugin

Spec.plugin is a collection of injection plugins of type array, more about Plugin.

Last Updated: 2/20/2019, 6:05:34 PM