vue router中的beforeeach如何操作vuex中的数据
时间: 2024-05-05 07:21:00 浏览: 159
使用vue-route 的 beforeEach 实现导航守卫(路由跳转前验证登录)功能
在`vue-router`的`beforeEach`中获取`vuex`中的数据,可以使用`store`对象来获取和修改`vuex`中的数据。具体方法如下:
1. 在`main.js`中导入`store`对象。
```javascript
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
Vue.config.productionTip = false
new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
```
2. 在`router.js`中使用`store`对象来获取和修改`vuex`中的数据。
```javascript
import Vue from 'vue'
import Router from 'vue-router'
import Home from './views/Home.vue'
import store from './store'
Vue.use(Router)
const router = new Router({
mode: 'history',
routes: [
{
path: '/',
name: 'home',
component: Home
}
]
})
router.beforeEach((to, from, next) => {
// 获取vuex中的数据
const isAuthenticated = store.getters.isAuthenticated
if (to.name !== 'home' && !isAuthenticated) {
// 如果未认证,则跳转到首页
next('/')
} else {
next()
}
})
export default router
```
在`beforeEach`中,可以使用`store.getters`来获取`vuex`中的`getter`,使用`store.dispatch`来触发`vuex`中的`action`,使用`store.commit`来触发`vuex`中的`mutation`。根据具体业务需求,选择相应的方法来获取和修改`vuex`中的数据即可。
阅读全文