vue 前端拦截器

该导什么包?在下也不清楚。我只是代码的搬运工;
拦截器相当于在你的门口放一只狗。

初始化狗子函数 是store下的index.js文件

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    user: {
      username: window.localStorage.getItem('user' || '[]') == null ? '' : JSON.parse(window.localStorage.getItem('user' || '[]')).username
    }
  },
  mutations: {
    login (state, user) {
      state.user = user
      window.localStorage.setItem('user', JSON.stringify(user))
    }
  }
})

在main.js文件里面,要开启路由的前置判断函数,并在new Vue中引用
就是在你的大门前面放只狗,你总不能放门后面吧。


router.beforeEach((to, from, next) =>
    {
        if (to.meta.requireAuth) {
            console.log("进入")
            if (store.state.user.username!= "") {
                    console.log(store.state.user)    
						next()
                })
            } else {
                console.log("弹出")
                next({
                    path: 'login',
                    query: {redirect: to.fullPath}
                })
            }
        } else {
            next()
        }
    }
)
new Vue({
    el: '#app',
    render: h => h(App),
    router,
    // 注意这里
    store,
    components: { App },
    template: '<App/>'
})

最后你要站在门口,告诉狗子,什么人该咬,什么人不咬。
这个是写在router里面的

  meta: {
      requireAuth: true // 是否需要拦截
    }

 {
    path: '/home',
    name: 'Home',
    component: Home,
    meta: {
      requireAuth: true // 是否需要拦截
    }
  },
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值