用vue寫項目main.js 中的一些設置

import Vue from 'vue';
import $ from 'webpack-zepto';
import VueRouter from 'vue-router';
import filters from './filters';
import routes from './routers';
import Alert from './libs/alert';
import store from './vuex/user';
import FastClick from 'fastclick';
Vue.use(VueRouter);
Vue.use(Alert);

  routes ,Vue, VueRouter,store  都是跟vue vuex 和vuerouter 有關的 $是爲了進行相似jquery的操做引進的庫  FastClick解決移動端點擊300ms延遲的問題  直接FastClick.attach(document.body)   alert是當有error時電腦彈出的信息的設置 javascript

const router = new VueRouter({
    mode: 'history',
    routes
})
router.beforeEach((to, from, next) => {
  if (to.matched.some((record) => {
    return record.meta.requiresAuth
  }) {
      if (store.state.userInfo.userId) {
        next()
      } else {
        next({
         path: '/login',
         query: {redirect: to.fullpath}
        })
       }
    }else {
     next()
    }
})

  router的初始化 mode爲history 當路徑改變時不會從新加載    router.beforeEach((to, from, next) {})實現的邏輯是 當record.meta.requiresAuth爲true時 若是已經登錄 直接next() vue

若是沒登錄 去登錄頁面  爲false時直接登錄java

// 若是sessionStorage 儲存了user 則經過vuex 賦值給userInfo
if (window.sessionStorage.user) {
    store.dispatch('setUserInfo', JSON.parse(window.sessionStorage.user));
}

  利用sessionStorage存儲登錄信息 經過store執行setUserInfo action 分發用戶信息  jquery

相關文章
相關標籤/搜索