vue如何在store仓库中使用路由

vue如何在store仓库中使用路由

目录

在store仓库中使用路由

在js文件中使用vue的router和store

在store仓库中使用路由

在仓库中,this的指向指的是store,但是在一般的工程,我们有可能会需要在仓库中走路由等逻辑,这个时候就需要先找到全局vue,因为路由是vue的一个子模块

main.js

window.Vue = vue const vue = new Vue({   el: '#app',   store,   router,   render: h => h(App) }) window.Vue = vue export default vue

store/index.js

const _router = window.Vue.$router actions: {     getResourcesAsync ({commit}, path) {       const _router = window.Vue.$router       Vue.prototype.axios.post('/services/vp/motorcateUser/companyRoleResources/myResources', {})         .then((res) => {           if (res.code === 200) {             let resource = res.result             var urList = steamroller(resource)             var externalBtns = []             var ownBtns = []             sessionStorage.setItem('externalBtns', JSON.stringify(externalBtns))             sessionStorage.setItem('ownBtns', JSON.stringify(ownBtns))             commit('SET_RESOURCE', JSON.stringify(resource || {}))             if (path) {               if (urList.filter(item => item.granted && item.menuCode === path).length) {                 const currentRoute = urList.filter(item => item.granted && item.menuCode === window.Vue.$route.name)                 if (currentRoute.length) {                   _router.go(0)                 } else {                   _router.replace({name: 'concat'})                 }               } else {                 _router.replace({name: 'concat'})               }             }           } else {             Vue.prototype.$message({               message: res.message,               type: 'info'             })             sessionStorage.removeItem('czb-sign-token')             sessionStorage.removeItem('czb-sign-info')           }         }).catch(() => {           sessionStorage.removeItem('czb-sign-token')           sessionStorage.removeItem('czb-sign-info')         })     }   } 在js文件中使用vue的router和store

在js文件中引入vue的路由配置文件 或者 store文件

import store from '../store'; import router from '../router'; //直接使用即可 router.push({'path': '/'}) store.state.XXX; 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持易知道(ezd.cc)。

推荐阅读