目录在store仓库中使用路由在js文件中使用Vue的router和store在store仓库中使用路由 在仓库中,this的指向指的是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的路由配置文件 或者 store文件
import store from '../store';
import router from '../router';
//直接使用即可
router.push({'path': '/'})
store.state.XXX;
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
--结束END--
本文标题: vue如何在store仓库中使用路由
本文链接: https://www.lsjlt.com/news/144478.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-01-12
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0