首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在localStorage上使用Vuejs3?

如何在localStorage上使用Vuejs3?
EN

Stack Overflow用户
提问于 2022-08-23 12:11:28
回答 2查看 274关注 0票数 0

我对localStorage和使用它感到有点困惑。我有一个Statistic.vue,它在结尾处显示模态。

Statistic.vue

代码语言:javascript
复制
<template>
 <p class='modal'>{{numberOfGames}}<p>
<template/>

<script>
export default {
    name: "GameStatistic",
    data() {
       return {
            numberOfGames: localStorage.getItem("NumberOfGames")
       } 
    },
    mounted() {
        //this.$store.commit('checkNumberOfGames')
    },
}
</script>

index.js

代码语言:javascript
复制
export default createStore({
  state: {
    currentGuessIndex: 0,
    isWinner: false
  },
  mutations: {
    checkNumberOfGames(state) {
      if (localStorage.getItem("NumberOfGames") === null) {
          localStorage.setItem("NumberOfGames", 1)
      } else if (state.currentGuessIndex >= 6 || state.isWinner) {
          let counter = localStorage.getItem("NumberOfGames");
          localStorage.setItem("NumberOfGames", parseInt(counter)+1)
      }
    }
  },
  actions: {
  },
  modules: {
  }
})

WordRow.vue

代码语言:javascript
复制
// some stuff
watch: {
   submitted: {
      async handler(submitted) {
           //some stuff
           this.$store.commit('checkNumberOfGames')
   }
}

我的问题是,Statistic.vue中的numberOfGames没有显示正确的数字,而且加载页面时会显示正确的值,否则会落后1。

EN

回答 2

Stack Overflow用户

发布于 2022-08-23 12:37:54

我建议使用Vue Use库。它在Vue.js 3中使用VueX/Pinia的本地存储模块非常好。

https://vueuse.org/core/useLocalStorage/

票数 0
EN

Stack Overflow用户

发布于 2022-08-23 14:03:20

localStorage只用于跨刷新的持久化状态,它本机不适用于Vue的反应性。相反,您可以将numberOfGames保存为vuex状态的一部分,并将数据变量设置为该状态。仍然可以使用localStorage号初始化存储变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73458515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档