欢迎来到代码驿站!

vue

当前位置:首页 > 网页前端 > vue

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

时间:2023-01-02 09:21:35|栏目:vue|点击:

在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; 

上一篇:vue项目在打包时,如何去掉所有的console.log输出

栏    目:vue

下一篇:Vue 配置代理详情

本文标题:vue如何在store仓库中使用路由

本文地址:http://www.codeinn.net/misctech/222759.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有