@okiba/store
v0.0.5
Published
A store module to implement state management
Downloads
10
Readme
Okiba / Store
A store module to implement state management. It allows registering to prop updates, as well as any update trough the catch-all callback.
__
import Store from '@okiba/store'
const store = new Store({ level: 1, lives: 3 })
const onLevelChange = level => {
console.log(level)
}
store.subscribe('*', state => console.log(`Store: ${state}`))
store.subscribe('level', onLevelChange)
store.set('level', 2)
// Logs: 2
// Logs: the whole state ({level: 1, lives: 3})
Installation
npm i --save @okiba/store
Or import it directly in the browser
<script type="module" src="https://unpkg.com/@okiba/store/index.js"></script>
Usage
import Store from '@okiba/store'
Untranspiled code 🛑
Okiba Core packages are not transpiled, so don't forget to transpile them with your favourite bundler. For example, using Babel with Webpack, you should prevent imports from okiba to be excluded from transpilation, like follows:
{
test: /\.js$/,
exclude: /node_modules\/(?!(@okiba)\/).*/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
}
constructor(initialState)
Arguments
+ initialState
: Object
The initial store's state
set(key, value)
Single state property setter
Arguments
+ key
: String
The property key
+ value
: any
The property value
get(key)
Single state property getter
Arguments
+ key
: String
The property key
getState()
State getter
Returns
Object
The current state
setState(state)
State setter
Arguments
+ state
: Object
The new state object
reset()
State resetter
clear()
Clears the current state, that is, the store is going to be empty. No callbacks are fired.
subscribe(key, callback)
State update subscription handler
Arguments
+ key
: String
The property to be observed
+ callback
: function
The function to be called on property update
unsubscribe(key, callback)
State update unsubscription handler
Arguments
+ key
: String
The property to be unobserved
+ callback
: function
The handler to be dismissed