91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

誤引用vuex-persistedstate導致用戶信息無法清除怎么解決

發布時間:2022-04-29 15:42:28 來源:億速云 閱讀:329 作者:iii 欄目:開發技術

這篇“誤引用vuex-persistedstate導致用戶信息無法清除怎么解決”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“誤引用vuex-persistedstate導致用戶信息無法清除怎么解決”文章吧。

    vuex-persistedstate導致用戶信息無法清除

    問題

    網站使用nuxt框架,使用js-cookie+vuex存儲用戶信息,在這一篇文章中關于nuxt使用vuex存儲以及獲取用戶信息踩坑,我講過nuxt是服務端和客戶端渲染集成,所以服務端將user信息初始化為空,客戶端無法再次初始化,即便客戶端的cookie中能獲取到用戶信息,也無法給user賦值。

    后來在網上搜索了半天解決辦法,引入了vuex-persistedstate,但是引入之后并未使用,且并未及時刪除,仍然使用cookie在客戶端獲取user信息,清除cookie中user信息,發現user信息仍然存在,經排查發現localStorage存儲了一份user信息,逐步排查發現是因為調用了vuex-persistedstate將user信息和token存儲在localStrorage,但是在退出登錄時只清除了vuex中token,并未清除user信息,所以導致問題的出現。

    解決辦法

    刪除vuex-persistedstate或者在退出登錄時清除vuex中user信息。

    延伸

    1、基于以上問題,研究了一下vuex-persistedstate,發現三點:存儲位置:默認localStorage(永久存儲本地,只能手動刪除),可修改為sessionStorage(關閉瀏覽器即無);存儲對象鍵:默認為vuex,可任意修改,存儲對象:store。

    nuxt中使用vuex-persistedstate,通過在nuxt.config.js中全局引入

    localStorage.js

    import createPersistedState from 'vuex-persistedstate'
     
    export default ({ store }) => {
      window.onNuxtReady(() => {
        createPersistedState({ key: 'paida-vuex', storage: window.sessionStorage })(store)
      })
    }

    nuxt.config.js

     plugins: [
        {
          src: '~/plugins/localStorage',
          ssr: false
        }
      ]

    2、cookie禁用問題:因為網站是在用戶信息和token存儲在cookie中,禁用之后登錄相關操作無法進行。谷歌、火狐禁用cookie,導致localStorage,sessionStorage無法正常使用。

    另外,做了一個突發奇想的測試,在axios的配置文件中直接引入store,獲取token,即便登錄獲取到token,也更新了store,但是因為axios作為外部插件引入,并不屬于vue 組件,所以無法獲取token的最新信息。 

    使用vuex-persistedstate插件遇到的問題

    這是一個做持久化的插件:vuex-persistedstate

    誤引用vuex-persistedstate導致用戶信息無法清除怎么解決

     我在做項目時,遇到一個問題,就是做下面這個功能,渲染數據的時候,因為這個數據好多個地方使用,所以呢,把它存到了vuex里面。vuex 是將數據存到了瀏覽器的內存中,刷新就沒了

    誤引用vuex-persistedstate導致用戶信息無法清除怎么解決

     誤引用vuex-persistedstate導致用戶信息無法清除怎么解決

    這行代碼是寫在vuex里面的,就是說,我直接從本地去拿數據

    list: JSON.parse(window.localStorage.getItem('abc')).category.list || []

     誤引用vuex-persistedstate導致用戶信息無法清除怎么解決

    直接看下代碼:我一開始是這樣想的,既然我vuex中有數據了,不用計算屬性行不行,直接渲染,確實可以渲染,但是品牌這一項咋渲染呢,push行不通啊,那就只能把結構寫死,但是頁面效果就不對了,所以這個地方用計算屬性,第一,動態的取到前兩項,第二,可以動態的添加新的 li 結構。

    計算屬性使用的場景:有數據啦,但不是我想要的格式,要加工加工

     setup () {
        const brand = reactive({
          id: 'brand',
          name: '品牌',
          children: [{ id: 'brand-children', name: '品牌推薦' }]
        })
        const store = useStore()
        const cateList = computed(() => {
          const list = store.state.category.list.map(item => {
            return {
              id: item.id,
              name: item.name,
              children: item.children && item.children.slice(0, 2)
            }
          })
          list.push(brand)
          return list
        })
        return { cateList }
      }

    以上就是關于“誤引用vuex-persistedstate導致用戶信息無法清除怎么解決”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    锡林郭勒盟| 晋城| 舒兰市| 河北省| 揭西县| 宜州市| 大邑县| 田东县| 兴山县| 乌拉特前旗| 聊城市| 商洛市| 湖口县| 玉屏| 沐川县| 南康市| 乌鲁木齐县| 蓬溪县| 连云港市| 酒泉市| 河西区| 广昌县| 台北市| 仁布县| 张家口市| 北安市| 兴化市| 临湘市| 德保县| 贡嘎县| 贵阳市| 敦煌市| 乐都县| 广元市| 道孚县| 广东省| 三门峡市| 郑州市| 普兰店市| 曲周县| 宾阳县|