<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        vuex + axios 做登錄驗證 并且保存登錄狀態(tài)的實例

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:07:37
        文檔

        vuex + axios 做登錄驗證 并且保存登錄狀態(tài)的實例

        vuex + axios 做登錄驗證 并且保存登錄狀態(tài)的實例:還是那句話,網(wǎng)上找個完整的博客真的難,實現(xiàn)效果全靠摸索啊 第一步:安裝axios 、vuex npm i -s axios npm i -s vuex 執(zhí)行這兩句 ,vue等環(huán)境搭建就不廢話了 第二步:配置main.js文件 上圖不上碼,菊花萬人捅,附上代碼 // The Vue buil
        推薦度:
        導(dǎo)讀vuex + axios 做登錄驗證 并且保存登錄狀態(tài)的實例:還是那句話,網(wǎng)上找個完整的博客真的難,實現(xiàn)效果全靠摸索啊 第一步:安裝axios 、vuex npm i -s axios npm i -s vuex 執(zhí)行這兩句 ,vue等環(huán)境搭建就不廢話了 第二步:配置main.js文件 上圖不上碼,菊花萬人捅,附上代碼 // The Vue buil

        還是那句話,網(wǎng)上找個完整的博客真的難,實現(xiàn)效果全靠摸索啊

        第一步:安裝axios 、vuex npm i -s axios npm i -s vuex 執(zhí)行這兩句 ,vue等環(huán)境搭建就不廢話了

        第二步:配置main.js文件

        上圖不上碼,菊花萬人捅,附上代碼

        // The Vue build version to load with the `import` command
        // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
        import Vue from 'vue'
        import App from './App'
        import router from './router'
        import iView from 'iview';
        import 'iview/dist/styles/iview.css';
        import locale from 'iview/dist/locale/en-US';
        import VueParticles from 'vue-particles';
        import axios from 'axios' ;
        import Vuex from 'vuex' //引入狀態(tài)管理
         
        Vue.use(VueParticles) ;
        Vue.use(iView, { locale });
        Vue.config.productionTip = false ;
        Vue.prototype.$http = axios ;
        Vue.use(Vuex) ;
         
         
        const ADD_COUNT = 'ADD_COUNT'; // 用常量代替事件類型,使得代碼更清晰
        const REMOVE_COUNT = 'REMOVE_COUNT';
        //注冊狀態(tài)管理全局參數(shù)
        var store = new Vuex.Store({
         state:{
         token:'',
         userID:'',
         },
         mutations: {
         //寫法與getters相類似
         //組件想要對于vuex 中的數(shù)據(jù)進(jìn)行的處理
         //組件中采用this.$store.commit('方法名') 的方式調(diào)用,實現(xiàn)充分解耦
         //內(nèi)部操作必須在此刻完成(同步)
         [ADD_COUNT] (state, token) { // 第一個參數(shù)為 state 用于變更狀態(tài) 登錄
         sessionStorage.setItem("token", token);
         state.token = token;
         },
         [REMOVE_COUNT] (state, token) { // 退出登錄
         
         sessionStorage.removeItem("token", token);
         
         state.token = token;
         },
         }
        });
         
         
        router.beforeEach((to, from, next) => {
         iView.LoadingBar.start();//loadong 效果
         
         store.state.token = sessionStorage.getItem('token');//獲取本地存儲的token
         
         if (to.meta.requireAuth) { // 判斷該路由是否需要登錄權(quán)限
         if (store.state.token !== "") { // 通過vuex state獲取當(dāng)前的token是否存
         next();
         }
         else {
         next({
         path: '/login',
         query: {redirect: to.fullPath} // 將跳轉(zhuǎn)的路由path作為參數(shù),登錄成功后跳轉(zhuǎn)到該路由
         })
         }
         }
         else {
         next();
         }
        })
         
        router.afterEach(route => {
         iView.LoadingBar.finish();
        });
         
         
        /* eslint-disable no-new */
        new Vue({
         el: '#app',
         router,
         store, //注冊組件
         components: { App },
         template: '<App/>'
        }) ;
         
        

        第三步:進(jìn)行登錄 操作,調(diào)用main.js 中定義好的修改token的方法[ADD_COUNT]

        附上請求部分代碼

        this.$http({
         method: 'get',
         url: '/api/login',
        }).then(function(res){
         var json = res.data
         console.log(json.data);
         this.$Message.success('Success!');
         
         this.$store.commit('ADD_COUNT', json.data.token);
         
         let clock = window.setInterval(() => {
         this.totalTime-- ;
         if (this.totalTime < 0) {
         window.clearInterval(clock) ;
         this.$Loading.finish();
         this.$router.push('/') ;
         }
         },1000)
        }.bind(this)).catch(function(err){
         this.$Message.error('登錄失敗,錯誤:'+ err);
         this.$Loading.error();
        }.bind(this))
        

        差點忘記了一點,在router中要配置需要驗證是否登錄的請求

        附上router/index.js 代碼

        import Vue from 'vue'
        import Router from 'vue-router'
        import Login from '@/components/Login/Login'
        import P404 from '@/components/404/404'
        import Main from '@/components/Main'
         
        Vue.use(Router)
         
        export default new Router({
         mode: 'history',
         routes: [
         {
         path: '/login',//登錄頁
         name: 'Login',
         component: Login
         },
         {
         path: '/',//首頁
         name: 'Main',
         component: Main,
         meta: {
         requireAuth: true, // 添加該字段,表示進(jìn)入這個路由是需要登錄的
         },
         },
         { path: '*', component: P404 } //這里是保證錯誤地址會跳轉(zhuǎn)到404界面進(jìn)行提示
         ]
        })
        

        這些方法的編寫順序可能沒有體現(xiàn)出來,不過最終效果就是這個了,如果有疑問歡迎留言。

        以上這篇vuex + axios 做登錄驗證 并且保存登錄狀態(tài)的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        vuex + axios 做登錄驗證 并且保存登錄狀態(tài)的實例

        vuex + axios 做登錄驗證 并且保存登錄狀態(tài)的實例:還是那句話,網(wǎng)上找個完整的博客真的難,實現(xiàn)效果全靠摸索啊 第一步:安裝axios 、vuex npm i -s axios npm i -s vuex 執(zhí)行這兩句 ,vue等環(huán)境搭建就不廢話了 第二步:配置main.js文件 上圖不上碼,菊花萬人捅,附上代碼 // The Vue buil
        推薦度:
        標(biāo)簽: 做登錄 axios vuex
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: h视频在线观看免费| 亚洲天堂中文字幕在线观看| 自拍日韩亚洲一区在线| 精品无码无人网站免费视频| 在线观看亚洲天天一三视| 特色特黄a毛片高清免费观看| 日本久久久免费高清| 亚洲一区二区无码偷拍| 国产精品视频永久免费播放| 丁香婷婷亚洲六月综合色| 在线免费观看一级毛片| 亚洲国产成人AV在线播放| 在线观看免费亚洲| 最新亚洲人成无码网www电影| 国产色婷婷精品免费视频| 国产亚洲综合精品一区二区三区| 国产免费啪嗒啪嗒视频看看| 疯狂做受xxxx高潮视频免费| 亚洲精品成人网久久久久久| 中文字幕在线成人免费看| 婷婷亚洲综合五月天小说| 亚洲免费福利视频| 亚洲国产欧美国产综合一区 | 亚洲电影免费在线观看| 97在线视频免费| 自拍日韩亚洲一区在线| 免费播放特黄特色毛片| 成人爽a毛片免费| 亚洲免费在线视频观看| 国产免费人成视频在线观看| 美女巨胸喷奶水视频www免费| 亚洲av不卡一区二区三区| 中文字幕影片免费在线观看| 日韩色视频一区二区三区亚洲| 亚洲一区二区三区国产精品| 久久精品无码专区免费青青| 亚洲免费福利在线视频| 国产亚洲精品资在线| 亚洲一区二区三区免费观看| 国产精品亚洲一区二区在线观看 | 亚洲色欲色欲www在线播放 |