justore
v5.0.1
Published
We don't need flux , just the store please
Maintainers
Readme
Justore
We don't need flux , just the store!
Installation
npm install justore --saveBasic Usage
var justore = require("justore");
var initData = {};
var store = new justore(initData,'Store Name');
//Write or change data to store, return a Promise
store.write('todos',['drink','cook']);
//Subscribe to change
let subscription = store.sub('todos.0',function(newVal,prevVal){
store.read('todos') === newVal //true, 'drink'
});
//Remember to clean up
subscription.unsubscribe();Advanced usage
store.batchWrite([keyPaths], manipulateFunction);Batch write multiple data to the store, only emit if it's listed on the keyPaths
store.batchWrite(['vtext', 'enable'], draft => {
draft.vtext.i = 10
draft.enable = true
draft.pos = 12 // works, but no event emit
});store.write(keyPath, data [,options])Write data to the store, return store
store.write('todos',['drink','cook'],{
//Boolean. If true, change the store without trigger any events
mute:false
});store.sub(keyPath[,onNext][,immediate])Subscribe to the store, if onNext is defined, return an Rx Subscription, else return an Rx stream
store.sub('todos.1',function (newVal, oldVal) {
//do tings
});store.read(keyPath)Get value for attribute by passing the key.
store.read("todos.0") //--> 'drink'store.delete(keyPath)Useful when you want to delete a root key and it's data
store.delete("todos")
store.report() //--> {}store.report()return the full store data. You cannot manipulate it
store.debugOnif a key in this array, will toggle JS breakpoints when writing that key
React Mixin helper
store.createReactMixin(key)Return a mixin. Will call
onStoreChangemethod on a React component when store change.
Auto unsubscibe
If the subscribed data has been deleted (not set to undefined), the subscription will unsubscribe automaticallyBrowser support
IE11 or higher