当我们使用Nuxt和Vuex Store时,不同页面之间会共享值吗?

When we use Nuxt and Vuex Store, will the values be shared between different pages?

我们想在不同页面之间共享值。我们通过以下方式进行了尝试。

同一个页面State返回正确值,不同页面State没有设置。我们做错了什么吗?还是 Vuex Store 无法在页面之间共享值?

我们已经用这个问题的简化代码替换了它们。导致问题的代码更复杂。

/store/index.js

const NOT_SET = null

export const state = () => ({
  value: NOT_SET,
})

export const mutations = {
  setValue(state, value) {
    state.value = value
  },
}

/pages/index.vue

<script>
import { mapState, mapMutations } from 'vuex'

export default {
  computed: {
    ...mapState(['value']),
  },
  mounted() {
    this.setValue(100)
  },
  methods: {
    ...mapMutations(['setValue']),
  },
}
</script>

/pages/_XXX/index.vue

<script>
import { mapState } from 'vuex'

export default {
  computed: {
    ...mapState(['value']),
  },
}
</script>

您不能使用 a 标签,因为它们每次都会擦除整个 SPA。如果您在 Vue 上下文中,则需要使用 Vue 路由器,因此如果您想在整个过程中保留该应用程序,则 nuxt-link 是强制性的。

也会大大提高整个网站的性能

否则,Vuex 完全能够跨所有页面共享状态。事实上,它的目的是在整个 Vue 应用程序中共享它。