Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ropbla9/vue-reactive-storage

Reactive layer for interacting with localStorage from Vue. Plugin for Vue 2.
https://github.com/ropbla9/vue-reactive-storage

Last synced: 3 months ago
JSON representation

Reactive layer for interacting with localStorage from Vue. Plugin for Vue 2.

Awesome Lists containing this project

README

        

# vue-reactive-storage
Reactive layer for interacting with localStorage from Vue. Plugin for Vue 2.

### install

`npm install --save https://github.com/ropbla9/vue-reactive-storage`

* This package is not on NPM, use GitHub source only.

### why

`window.localStorage` cannot be reactive if you use it directly with Vue, ex

```js
new Vue({
data {
localStorage: window.localStorage
},
template: "

{{localStorage.notes}}, {{localStorage.lang}} ...
",
created: function() {
this.localStorage.lang = "other value";
}
})
```

Code above will not react, even bind to view. So...

### how to use

```js
import reactiveStorage from "vue-reactive-storage";
// Set initial values
Vue.use(reactiveStorage, {
   "notes": 'foo',
   "lang": 'foo',
   "name": 'foo',
"count": 1,
   "userConfig": {age: 10, name: 'fred'}
});
```

Define vars that will be stored and proxied by `Vue` (any other var in `window.localStorage` that is not on this array will not be proxied).

Now you can acess the namespace localStorage in Vue.

```js
new Vue({
template: "

{{localStorage.notes}}, {{localStorage.lang}} ...
",
created: function() {
this.localStorage.lang = "other value"; // will react on the view and on real localStorage.
}
})
```