„vuex-persistedstate zum Wechseln zwischen sessionStorage und localStorage'
P粉295728625
P粉295728625 2023-08-25 23:06:52
0
1
489
<p>Wenn der Benutzer das Kontrollkästchen „Angemeldet bleiben“ aktiviert, möchte ich von sessionStorage zu localStorage wechseln, während ich vuex-persistedstate verwende</p> <pre class="brush:php;toolbar:false;">export default store(function (/* { ssrContext } */) { const Store = createStore({ Zustand: { }, Aktionen: { setLodingMode({ commit }, newMode) { commit("SET_LOADING_MODE", newMode); }, resetStates({ commit }) { commit("AUTHENTICATION_RESET_STATE"); commit("login/RESET_STATE"); }, }, Module: {Anmeldung, Authentifizierung}, Plugins: [createPersistedState()], }); Rückgabe Store; });</pre> <p>Der Punkt ist, dass ich Änderungen wie diese vornehmen möchte</p> <pre class="brush:php;toolbar:false;">state: { Flagge: falsch }, Plugins: [ createPersistedState({ storage: flag ? window.localStorage : window.sessionStorage, }), ],</pre> <p>Ich möchte, dass sich die Flagge basierend auf dem Kontrollkästchen „Angemeldet bleiben“ ändert, das der Benutzer beim Anmelden auswählt. Wenn der Benutzer also das Kontrollkästchen auswählt, wird die Flagge wahr und alle Daten werden in localStorage gespeichert</p>
P粉295728625
P粉295728625

Antworte allen(1)
P粉658954914

根据@Estus Flask的评论,我使用了自定义存储,并通过直接调用localStorage来管理“记住我”选项,并在localStorage中设置了一个标志。

plugins: [
      createPersistedState({
        paths: ["authentication.userAuthenticationInfo"],
        storage: {
          getItem(key) {
            if (localStorage.getItem("rememberMe") == 1) {
              return localStorage.getItem(key);
            } else {
              return Cookies.get(key);
              //return sessionStorage.getItem(key);
            }
          },
          setItem(key, value) {
            if (localStorage.getItem("rememberMe") == 1) {
              localStorage.setItem(key, value);
            } else {
              Cookies.set(key, value);
              //sessionStorage.setItem(key, value);
            }
          },
          removeItem(key) {
            if (localStorage.getItem("rememberMe") == 1) {
              localStorage.removeItem(key);
            } else {
              Cookies.remove(key);
              //sessionStorage.removeItem(key);
            }
          },
        },
      }),
    ],

并且我在每次注销或401响应时清除localStorage。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!