icestark-data is a JavaScript library for icestark, used for communication.
npm install @ice/stark-data> icestark sommunication solution. icestark docs.
     
``bash`
npm install @ice/stark-data --save
Global Store, unified management of all variables
- get(key)
- set(key, value)
- on(key, callback, force), when force is true, callback will be called immediately when initializing
- off(key, callback)
#### example
`javascript
// Framework
import { store } from '@ice/stark-data';
const userInfo = { name: 'Tom', age: 18 };
store.set('user', userInfo); // set UserInfo
store.set('language', 'CH');
// Sub-application A
import { store } from '@ice/stark-data';
const userInfo = store.get('user'); // get UserInfo
function showLang(lang) {
console.log(current language is ${lang});
}
store.on('language', showLang, true); // add callback for 'language', callback will be called whenever 'language' is changed
store.off('language', showLang); // remove callback for 'language'
`
Global Event, unified management of all events
- on(key, callback) callback will be called with (...rest)
- off(key, callback)
- emit(key, ...rest)
#### example
`javascript
// Framework
import { event } from '@ice/stark-data';
function fresh(needFresh) {
if (!needFresh) return;
fetch('/api/fresh/message').then(res => {
// ...
});
}
event.on('freshMessage', fresh);
// Sub-application A
import { event } from '@ice/stark-data';
event.emit('freshMessage', false);
// ...
event.emit('freshMessage', true);
`
Feel free to report any questions as an issue, we'd love to have your helping hand on icestark.
If you're interested in icestark`, see CONTRIBUTING.md for more information to learn how to get started.