GithubHelp home page GithubHelp logo

Comments (9)

deltragon avatar deltragon commented on August 12, 2024 1

while i do understand the implications from asynchronous operation in the dehydration, and with that the decision not to include the functionality, i do have to point out that localForage does not work with your given example since localForageInstance.getItem returns a Promise, not a value.

from vuex-persistedstate.

robinvdvleuten avatar robinvdvleuten commented on August 12, 2024 1

then I am afraid that the concept of vuex and so this plugin isn't compatible with your particular use case. What you can do though is to look into how to set your "initial state" through SSR (https://ssr.vuejs.org/en/data.html), which should be the same idea.

from vuex-persistedstate.

robinvdvleuten avatar robinvdvleuten commented on August 12, 2024

Ok so I do not know exactly what localForage is here? Looks like a typo to me. You'll have to provide more context than this I'm afraid.

from vuex-persistedstate.

robinvdvleuten avatar robinvdvleuten commented on August 12, 2024

Please open a more descriptive issue with more context and example code.

from vuex-persistedstate.

deltragon avatar deltragon commented on August 12, 2024

localForage is a wrapper around different kinds of offline storage, IndexedDB, WebSQL, localStorage, etc.: https://localforage.github.io/localForage/
It implements a interface very similar to localStorage, just asynchronous; setItem, getItem, etc. return Promises.
Also, it can store all kinds of data types, not just strings, which might be what's causing problems here (JSON decoded twice?)
What I'd be interested personally is if persistedstate has support for asynchronous storage types in general

from vuex-persistedstate.

deltragon avatar deltragon commented on August 12, 2024

I'd be open to making a contribution

from vuex-persistedstate.

robinvdvleuten avatar robinvdvleuten commented on August 12, 2024

@deltragon that would be great! It looks like they have the same API as localstorage. My first guess is that you need to overrule the storage option here (https://github.com/robinvdvleuten/vuex-persistedstate/blob/master/src/plugin.js#L64). And then inject a similar object as this class (https://github.com/robinvdvleuten/vuex-persistedstate/blob/master/src/plugin.js#L31) with the the getItem / setItem methods calling the underlaying localforage library.

from vuex-persistedstate.

robinvdvleuten avatar robinvdvleuten commented on August 12, 2024

@deltragon maybe an instance created by localforage as described here will do (https://localforage.github.io/localForage/#multiple-instances-createinstance).

import createPersistedState from 'vuex-persistedstate'

const localForageInstance = localforage.createInstance({ name: "nameHere" });

const store = new Vuex.Store({
  // ...
  plugins: [createPersistedState({ storage: localForageInstance })]
})

from vuex-persistedstate.

robinvdvleuten avatar robinvdvleuten commented on August 12, 2024

@deltragon my given example should work with a default localForage setup. For more advanced use cases this plugin isn't then insufficient. I can't merge all functionality for all user's use cases I am afraid. I would like this plugin to be as lean as possible.

from vuex-persistedstate.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.