今天为大家介绍一下在router里面如何修改vuex中的state!
(如果解决了您的问题,请帮忙给我点个赞吧,谢谢?。。。?/p>
简述功能:?
? ? ? ?我想实现的功能是? 加载首页组件 显示当前地理位置,其他组件,我就不显示了,所以我就选择了在路由中去判断,根据条件去修改vuex中的值这种办法?。ㄖ饕窍虢樯茉趓outer里面如何修改vuex中的state)
第一步 :在你的router目录下的index.js 中引入 vuex? (我是写成了一个单独的js)
直接复制 : import store from '../store/index'? ? (路径自己改好就行)?
第二步:? 配置路由,在你需要展示的组件中,加入如下代码 :
直接复制:
{path: '/home', component: home,
? ? ? meta:{
? ? ? ? location : true? ?// 这个就是条件
? ? ? }
? ? },
第三步: 判断即将要去到的组件中 是否需要展示当前地理位置? ?
直接复制:
router.beforeEach((to, from, next) => {
? let token = window.sessionStorage.getItem('token')
? if (to.meta.location) {? //判断在这? ?
? ? store.dispatch('vmlocation',true)
? }else{
? ? store.dispatch('vmlocation',false)
? }
? if (to.meta.requireAuth) { // 判断该路由是否需要登录权限
? ? if (token) { // 获取当前的token是否存在? ?
? ? ? next()
? ? }else {
? ? ? //console.log('该页面需要登陆')
? ? ? next({
? ? ? ? path: '/logoin'
? ? ? ? // query: {redirect: to.fullPath} // 将跳转的路由path作为参数,登录成功后跳转到该路由
? ? ? })
? ? ? //router.push("/mux")? ? ?
? ? }
? }else {
? ? next()
? }
})