Vue plugin for work with LocalStorage from Vue context
npm install vue-ls

Vue plugin for work with local storage, session storage and memory storage from Vue context

Recommended: https://unpkg.com/vue-ls, which will reflect the latest version as soon as it is published to npm. You can also browse the source of the npm package at https://unpkg.com/vue-ls/
Also available on jsDelivr or cdnjs, but these two services take some time to sync so the latest release may not be available yet.
#### NPM
`` bash`
npm install vue-ls --save
#### Yarn
` bash`
yarn add vue-ls
#### Bower
` bash`
bower install vue-ls --save
` bashinstall dependencies
npm install
Usage
Vue storage API.
` js
import Storage from 'vue-ls';const options = {
namespace: 'vuejs__', // key prefix
name: 'ls', // name variable Vue.[ls] or this.[$ls],
storage: 'local', // storage name session, local, memory
};
Vue.use(Storage, options);
//or
//Vue.use(Storage);
new Vue({
el: '#app',
mounted: function() {
Vue.ls.set('foo', 'boo');
//Set expire for item
Vue.ls.set('foo', 'boo', 60 60 1000); //expiry 1 hour
Vue.ls.get('foo');
Vue.ls.get('boo', 10); //if not set boo returned default 10
let callback = (val, oldVal, uri) => {
console.log('localStorage change', val);
}
Vue.ls.on('foo', callback) //watch change foo key and triggered callback
Vue.ls.off('foo', callback) //unwatch
Vue.ls.remove('foo');
}
});
`
Use in js file
` js
// localStore.js
import Storage from 'vue-ls';
const options = {
namespace: 'vuejs__', // key prefix
name: 'ls', // name variable Vue.[ls] or this.[$ls],
storage: 'local', // storage name session, local, memory
};const { ls } = Storage.useStorage(options)
export default ls
// somefile.js
import ls from 'localStore.js';
ls.set('foo', 'boo');
ls.get('foo');
`#### Global
-
Vue.ls
#### Context
- this.$lsAPI
####
Vue.ls.get(name, def)Returns value under
name in storage. Internally parses the value from JSON before returning it.-
def: default null, returned if not set name.####
Vue.ls.set(name, value, expire)Persists
value under name in storage. Internally converts the value to JSON.-
expire: default null, life time in milliseconds name####
Vue.ls.remove(name)Removes
name from storage. Returns true if the property was successfully deleted, and false otherwise.####
Vue.ls.clear()Clears storage.
####
Vue.ls.on(name, callback)Listen for changes persisted against
name on other tabs. Triggers callback when a change occurs, passing the following arguments.-
newValue: the current value for name in storage, parsed from the persisted JSON
- oldValue: the old value for name in storage, parsed from the persisted JSON
- url: the url for the tab where the modification came from####
Vue.ls.off(name, callback)Removes a listener previously attached with
Vue.ls.on(name, callback).Testing
-
npm run test - run unit test
- npm run test:browserstack - run browser test
- npm run test:browserstack:chrome
- npm run test:browserstack:ie
- npm run test:browserstack:edge
- npm run test:browserstack:firefox
- npm run test:browserstack:safari
- npm run test:chrome` - run browser test in chromeTesting Supported By
The assumption is that your page will already know all interactions with localStorage in its own window and only needs notification when a different window changes things. This, of course, is a foolish assumption. But.
| Project | Status | Description |
|---------|--------|-------------|
| vue-gallery | !npm | VueJS responsive and customizable image and video gallery |
| vue-popper | !npm | VueJS popover component based on popper.js |
This project exists thanks to all the people who contribute. [Contribute].
Become a financial contributor and help us sustain our community. [Contribute]
#### Individuals
#### Organizations
Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]
MIT © Igor Ognichenko