gpt4 book ai didi

Nuxt.js vuex 存储未持久化

转载 作者:行者123 更新时间:2023-12-04 03:30:44 30 4
gpt4 key购买 nike

我的 Nuxt.js 设置有一些奇怪的问题。
Store 中的一些状态不是持久的,每次我加载另一个 View 时,它们都会回到默认值。
页面/test.vue

<template>
<section class="section">
<b-container>
<b-row>
<b-col cols=12>
<b-button @click="setTest" variant="dark">test</b-button> | {{this.$store.state.test}} |
</b-col>
</b-row>
</b-container>
</section>
</template>

<script>
export default {
name: 'test',
methods: {
setTest() {
this.$store.commit("setTest")
},
}
}
</script>
商店/index.js
export const state = () => ({
test: "test"
})

export const mutations = {
setTest: (state) => state.test = 'Hello'
}
Testscenario 是点击“test”按钮,该按钮使用mutation-commit“setTest”调用方法,将状态设置为“Hello”。目前它工作正常,但如果我更改 View 或重新加载页面,状态将设置为默认“测试”。
我究竟做错了什么?

最佳答案

好吧,所以这种行为是完全合乎逻辑的。 Vuex 不应该是持久的。
对于前端的任何持久性,您需要:

  • cookies
  • 本地存储
  • IndexedDB
  • 从调用后端获取数据

  • 这里的一些包可能有用: https://github.com/vuejs/awesome-vue#persistence

    如果您使用 F5 重新加载页面,您的所有 JS 都将被删除并再次加载。因此,没有 状态将被保留,因为它将是一个全新的页面。使用前端框架时,您不能指望它在页面刷新后就可以工作。
    当您关注 href 时也是如此,这是一个真正的真正的导航。您需要做的是使用 <nuxt-link></nuxt-link>组件,类似 to="/profile"让 VueJS 移动到这个 URL。
    NuxtLink是一个 Nuxt.js 组件,本质上是一个位于 <router-link></router-link> 之上的组件, 即 Vue router .
    TLDR:你不能使用 window.location.href 之类的东西,也不是 <a href="..." .如果您仅使用 VueJS,您可以通过 Nuxt ( nuxt-link ) 或 Vue 的路由器 ( router-link ) 使用给定的组件。
    阅读 Vue 路由器的文档可能是了解更多内容的良好开端!

    关于Nuxt.js vuex 存储未持久化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66868348/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com