Classic mode for store/ is deprecated and will be removed in Nuxt 3.

Classic mode for store/ is deprecated and will be removed in Nuxt 3.解决方案

    • 问题的原因
    • 解决方案
  • index.js
  • 其他的moduled的js

问题的原因

Classic mode for store/ is deprecated and will be removed in Nuxt 3.
经典的Vuex模式的写法在NUXT2.4后的版本是不推荐的,在NUXT 3版本以后这种写法讲直接移除

解决方案

官方文档也写的很详尽。
官方文档

在官方的推荐下的写法很简单,效率很高

首先和原来版本一致,在项目中有store目录nuxt会自动将vuex挂载到vue实例中
也就是我们不需要在vue.use(vuex)啦

上新写法

首先是每一个模块中的state导出为函数! 其余的操作和变量都导出为常量或者对象就行

上代码

index.js

export const actions = {
  async nuxtServerInit({commit}, {req, app}) {
    const {status,data:{province,city}} = await app.$axios.get('/geo/getPosition')
    commit('geo/setPosition', status===200? {city,province} : {city:'',province:''} )
  }
}

其他的moduled的js

export const state = () => ({
  position: {}
})
export const mutations = {
  setPosition(state,val) {
    state.position = val
  }
}
export const actions = {
  setPosition({commit}, position) {
    commit('setPosition',position)
  }
}

你可能感兴趣的:(Classic mode for store/ is deprecated and will be removed in Nuxt 3.)