国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答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 做登錄驗(yàn)證 并且保存登錄狀態(tài)的實(shí)例

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

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

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

還是那句話,網(wǎng)上找個完整的博客真的難,實(shí)現(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)用,實(shí)現(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))

差點(diǎn)忘記了一點(diǎn),在router中要配置需要驗(yàn)證是否登錄的請求

附上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 做登錄驗(yàn)證 并且保存登錄狀態(tài)的實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

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

文檔

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

vuex + axios 做登錄驗(yàn)證 并且保存登錄狀態(tài)的實(shí)例:還是那句話,網(wǎng)上找個完整的博客真的難,實(shí)現(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
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 98成人网 | 国产精品一页 | 91久久国产口精品久久久久 | 欧美色第一页 | 久久久久久久一精品 | 国产精品综合色区在线观看 | 91精品国产综合久久久久久 | 欧美色另类 | 爽妇网s | 国产网站免费 | 亚洲一区二区三区在线免费观看 | 欧美日韩国产综合在线 | 91欧美激情一区二区三区成人 | 欧美人一级淫片a免费播放 欧美精品专区免费观看 | 日韩欧美色图 | 国产一级做a爰片在线看 | 国产在线高清不卡免费播放 | 国内精品视频在线观看 | 国产免费三a在线 | 国产亚洲精品成人婷婷久久小说 | 久久91精品国产91久久跳舞 | 日韩中文字幕第一页 | 在线亚洲精品国产成人二区 | 亚洲欧美日韩成人一区在线 | 国内精品久久久久 | 精品91精品91精品国产片 | 国产69精品久久久久777 | 特黄特黄aaaa级毛片免费看 | 欧美在线日韩在线 | 激情欧美日韩一区二区 | 欧美日韩色图 | 九九精品视频一区二区三区 | 91大神在线观看精品一区 | 91精品久久久久 | 久久精品一 | 国产乱了真实在线观看 | 日韩精品成人在线 | 国产精品久久久久一区二区 | 久久久久久久国产精品毛片 | 成人国产一区二区三区精品 | 国产成人综合久久精品下载 |