nuxt asyncData 中 store参数在刷新页面后会丢失的问题 有人知道吗?
1条回答 默认 最新
- CaiLin907 2023-05-10 16:09关注
在 Nuxt.js 中,
asyncData
方法是在服务端渲染时执行的,而store
对象是在客户端渲染时创建的。因此,在服务端渲染时,store
对象是不存在的,需要通过context
参数传递给asyncData
方法。但是,在刷新页面时,Nuxt.js 会重新执行客户端渲染,此时
store
对象会重新创建,而之前在服务端渲染时创建的store
对象会被丢失。可以在
asyncData
方法中使用context.store
来获取store
对象,而不是直接使用store
参数。这样,在服务端渲染和客户端渲染时都可以正确地获取到store
对象。例如:
async asyncData({ store }) { // 使用 context.store 获取 store 对象 const data = await store.dispatch('fetchData') return { data } }
还可以通过在
nuxt.config.js
中设置ssr: true
来启用服务端渲染,这样可以避免在刷新页面时丢失store
对象。解决 无用评论 打赏 举报