vue.js - 关于vuex 和 vuex-router-sync的问题

查看:132
本文介绍了vue.js - 关于vuex 和 vuex-router-sync的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

应用场景:

我们想把router和vuex联系起来,使用的是vuex-router-sync。先看一下我们怎么实现,代码如下
main.js
    import Router from 'vue-router'
    import Vuex from 'Vuex'
    import store from './vuex/store'
    import routerMap from './routerMap'
    import { sync } from 'vuex-router-sync'
    
    Vue.use(Router)
    Vue.use(Vuex)
    const router = new Router({
      hashbang: true,
      history: true,
      saveScrollPosition: true,
      transitionOnLoad: false
    })
    routerMap(router)
    sync(store, router)
    const appInstance = Vue.extend({store})
    router.start(appInstance, '#app')
    router.go('/main')
    
    实际store以及挂载上去了的
    


但是console会报错,报错如图

console的详细错误函数是

store截图:

import Vue from 'Vue'
import Vuex from 'Vuex'

Vue.use(Vuex)

const state = {
  count: 23
}

const mutations = {
  INCREMENT (state) {
    state.count++
  },
  DECREMENT (state) {
    state.count--
  }
}

export default new Vuex.Store({
  state,
  mutations
})

路由表截图:

    export default function (router) {
  router.map({
    '/': {
      name: 'main',
      component: require('./components/main/main-panel.vue')
    },
    '/main': {
      name: 'main',
      component: require('./components/main/main-panel.vue'),
      subRoutes: {
        '/': {
          name: 'inbox',
          component: require('./components/main/inbox/inbox.vue'),
          subRoutes: {
            '/': {
              name: 'all',
              component: require('./components/main/inbox/all-update.vue')
            },
            '/onlyCollect': {
              name: 'onlyCollect',
              component: (resolve) => resolve(require('./components/main/inbox/only-collect.vue'))
            }
          }
        },
        '/inbox': {
          name: 'inbox',
          component: require('./components/main/inbox/inbox.vue'),
          subRoutes: {
            '/': {
              name: 'all',
              component: require('./components/main/inbox/all-update.vue')
            },
            '/onlyCollect': {
              name: 'onlyCollect',
              component: (resolve) => resolve(require('./components/main/inbox/only-collect.vue'))
            }
          }
        },
        '/collect': {
          name: 'collect',
          component: (resolve) => resolve(require('./components/main/collect/collect.vue'))
        }
      }
    },
    '/top': {
      name: 'top',
      component: (resolve) => resolve(require('./components/top.vue'))
    },
    '/login': {
      name: 'login',
      component: (resolve) => resolve(require('./components/login/login.vue'))
    },
    '/reset': {
      name: 'reset',
      component: (resolve) => resolve(require('./components/login/reset-psw.vue'))
    }
  })
}

有知道的朋友麻烦指导一下,谢谢啦。

解决方案

關於報錯那行,應該是引用 vuex 的版本錯誤

Note: requires vuex>=0.6.2.

版本必須是 0.6.2 或是大於 0.6.2

这篇关于vue.js - 关于vuex 和 vuex-router-sync的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆