Rumah  >  Soal Jawab  >  teks badan

"vuex-persistedstate untuk bertukar antara sessionStorage dan localStorage"

<p>Jika pengguna memilih kotak pilihan "Ingat saya", saya mahu bertukar daripada sessionStorage kepada localStorage, sementara saya menggunakan vuex-persistedstate</p> <pre class="brush:php;toolbar:false;">eksport stor lalai(fungsi (/* { ssrContext } */) { const Store = createStore({ nyatakan: { }, tindakan: { setLodingMode({ commit }, newMode) { commit("SET_LOADING_MODE", newMode); }, resetStates({ commit }) { commit("ATHENTICATION_RESET_STATE"); commit("log masuk/RESET_STATE"); }, }, modul: { log masuk, pengesahan }, pemalam: [createPersistedState()], }); kembali Stor; });</pre> <p>Intinya saya ingin membuat perubahan seperti ini</p> <pre class="brush:php;toolbar:false;">nyatakan: { bendera: palsu }, pemalam: [ createPersistedState({ storan: bendera ? window.localStorage : window.sessionStorage, }), ],</pre> <p>Saya mahu bendera berubah berdasarkan kotak semak "Ingat Saya" yang dipilih pengguna semasa log masuk, jadi apabila pengguna memilih kotak semak, bendera menjadi benar dan semua data disimpan dalam localStorage</p> ;
P粉295728625P粉295728625420 hari yang lalu499

membalas semua(1)saya akan balas

  • P粉658954914

    P粉6589549142023-08-26 11:07:29

    Setiap komen @Estus Flask, saya menggunakan storan tersuai dan menguruskan pilihan "ingat saya" dengan menghubungi localStorage secara terus dan menetapkan bendera dalam 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);
                }
              },
            },
          }),
        ],

    Dan saya mengosongkan localStorage pada setiap log keluar atau respons 401.

    balas
    0
  • Batalbalas