当我们使用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 应用程序中共享它。
我们想在不同页面之间共享值。我们通过以下方式进行了尝试。
同一个页面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 应用程序中共享它。