欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue3+axios+Mock.js實(shí)現(xiàn)登錄功能的示例代碼

 更新時(shí)間:2023年05月06日 14:36:32   作者:ym-13140912  
本文主要介紹了Vue3+axios+Mock.js實(shí)現(xiàn)登錄功能的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

最近學(xué)習(xí)了Vue3,這篇文章主要分享一下基于Vue3 + TypeScript的項(xiàng)目,利用Mock.js模擬后端數(shù)據(jù),axios實(shí)現(xiàn)請(qǐng)求來(lái)完成一個(gè)登錄功能。

一、Vue3 + Element Plus + Mock.js + axios實(shí)現(xiàn)登錄功能

1.登錄頁(yè)面配置路由、編寫表單內(nèi)容

在router/index.ts中配置路由:

編寫登錄表單,el-form中綁定的數(shù)據(jù)要和下面定義的內(nèi)容保持一致。

效果如下:

2.編寫表單校驗(yàn)規(guī)則

看下效果:

3.登錄觸發(fā)表單預(yù)驗(yàn)證

這里利用Element Plus的form中的validate方法對(duì)整個(gè)表單進(jìn)校驗(yàn)。
這個(gè)表單節(jié)點(diǎn)叫做ruleFormRef,由于setup中是沒有this的,我們不能像Vue2中,通過(guò)this.$refs.xxx來(lái)獲取節(jié)點(diǎn)。我們?nèi)etup中利用ref再重新定義一個(gè)相同名稱的變量就可以,然后,它們就會(huì)自動(dòng)關(guān)聯(lián)起來(lái)。

點(diǎn)擊登錄就觸發(fā)校驗(yàn):

點(diǎn)擊登錄按鈕驗(yàn)證一下:

4.Mock.js模擬登錄請(qǐng)求

關(guān)于Mock.js的使用,可以看一下之前記錄的博客Mock.js學(xué)習(xí)。在Mock.js中模擬一個(gè)post請(qǐng)求,第一個(gè)參數(shù)是攔截的請(qǐng)求路徑,第二個(gè)參數(shù)是攔截的請(qǐng)求方式,第三個(gè)參數(shù)是攔截之后的處理邏輯,回調(diào)函數(shù)中params就是請(qǐng)求體攜帶的參數(shù)。

然后在mock登錄請(qǐng)求中限制一下用戶名和密碼,兩者輸入正確才能獲取到token。token值利用Mock隨機(jī)函數(shù)中來(lái)生成。

5.Vue3引入使用axios

安裝axios,輸入如下命令即可:

npm install axios --save

在Vue3中按照了之前Vue2的寫法進(jìn)行引入掛載全局,會(huì)出現(xiàn)報(bào)錯(cuò)。

Vue3的寫法如下:

直接在登錄頁(yè)面上引入axios,導(dǎo)入axios就可以直接使用啦~

然后調(diào)用一下Mock.js模擬的post登錄請(qǐng)求:

驗(yàn)證一下:
輸入正確的賬號(hào)和密碼,就可以獲取到請(qǐng)求返回的數(shù)據(jù),并且拿到token。

輸入錯(cuò)誤的賬號(hào)密碼,就不會(huì)返回token值了。

注意:mock只是模擬數(shù)據(jù),不會(huì)在network中顯示,只有真實(shí)的請(qǐng)求才會(huì)在network中顯示。

登錄成功,跳轉(zhuǎn)到首頁(yè)即可。

router.push("/home");

二、面試題

1.前端登錄流程

① 在登錄頁(yè)點(diǎn)擊”登錄“,前端會(huì)帶著用戶名和密碼去調(diào)用后端的登錄接口請(qǐng)求登錄;
② 后端收到請(qǐng)求后,會(huì)驗(yàn)證用戶名和密碼,如果驗(yàn)證失敗,會(huì)返回相關(guān)的錯(cuò)誤信息,前端提示相應(yīng)錯(cuò)誤信息;如果驗(yàn)證成功,就會(huì)生成當(dāng)前用戶所對(duì)應(yīng)的一個(gè)token值,并返回前端token;
③ 前端拿到token之后,將token存儲(chǔ)起來(lái)(可以存儲(chǔ)在localStorage、sessionStorage、cookie、vuex中),并跳轉(zhuǎn)頁(yè)面即登錄成功;
④ 前端每一次向后端請(qǐng)求資源的時(shí)候都要攜帶后端簽發(fā)的token。如果前端在發(fā)起下一次請(qǐng)求時(shí)攜帶了token,那么服務(wù)器就會(huì)根據(jù)提交的token值去驗(yàn)證你是哪個(gè)用戶,從而根據(jù)你的操作去返回不同的結(jié)果;
⑤ 最后,在向后端發(fā)送其他請(qǐng)求時(shí),我們一般需要在請(qǐng)求頭中帶上這個(gè)token值,在項(xiàng)目中我們通常把它封裝在一個(gè)請(qǐng)求攔截器中,后端判斷請(qǐng)求頭中有無(wú)該token,有則驗(yàn)證該token,驗(yàn)證成功就會(huì)正常地返回?cái)?shù)據(jù),驗(yàn)證失敗,比如過(guò)期,就會(huì)返回相應(yīng)的錯(cuò)誤碼,前端拿到相關(guān)錯(cuò)誤信息清除token,并且再回退到登錄頁(yè)。

2.token是什么?

token的意思是令牌,是用戶第一次登錄時(shí),服務(wù)器生成的一段加密字符串,然后返回給客戶端。
客戶端每次向服務(wù)器請(qǐng)求資源的時(shí)候,只需要帶上token去請(qǐng)求數(shù)據(jù)就行,不用再帶著用戶名和密碼去請(qǐng)求,服務(wù)器直接解密token,就可以知道用戶的相關(guān)信息。由于基本所有請(qǐng)求都需要攜帶toke,我們可以在請(qǐng)求攔截器中統(tǒng)一封裝,讓每個(gè)請(qǐng)求都能帶上token。

到此這篇關(guān)于Vue3+axios+Mock.js實(shí)現(xiàn)登錄功能的示例代碼的文章就介紹到這了,更多相關(guān)Vue3 axios Mock.js登錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue更改數(shù)組中的值實(shí)例代碼詳解

    vue更改數(shù)組中的值實(shí)例代碼詳解

    這篇文章主要介紹了vue更改數(shù)組中的值,本文通過(guò)兩個(gè)例子,給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 手把手教你創(chuàng)建vue3項(xiàng)目的最佳方式

    手把手教你創(chuàng)建vue3項(xiàng)目的最佳方式

    如今的Vue3已經(jīng)勢(shì)不可擋,當(dāng)然搭建一個(gè)全新的Vue3項(xiàng)目也有了全新的方式,下面這篇文章主要給大家介紹了關(guān)于如何手把手教你創(chuàng)建vue3項(xiàng)目的最佳方式,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • vue實(shí)現(xiàn)禁止瀏覽器記住密碼功能的示例代碼

    vue實(shí)現(xiàn)禁止瀏覽器記住密碼功能的示例代碼

    這篇文章主要介紹了vue實(shí)現(xiàn)禁止瀏覽器記住密碼功能的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Vue的狀態(tài)管理vuex使用方法詳解

    Vue的狀態(tài)管理vuex使用方法詳解

    由于Vue多個(gè)狀態(tài)分散的跨越在許多組件和交互間各個(gè)角落,大型應(yīng)用復(fù)雜度也經(jīng)常逐漸增長(zhǎng)。為了解決這個(gè)問題,Vue提供了vuex。本文將詳細(xì)介紹Vue狀態(tài)管理vuex,需要的朋友可以參考下
    2020-02-02
  • 解決vant title-active-color與title-inactive-color不生效問題

    解決vant title-active-color與title-inactive-color不生效問題

    這篇文章主要介紹了解決vant title-active-color與title-inactive-color不生效問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • vue結(jié)合el-dialog封裝自己的confirm二次確認(rèn)彈窗方式

    vue結(jié)合el-dialog封裝自己的confirm二次確認(rèn)彈窗方式

    這篇文章主要介紹了vue結(jié)合el-dialog封裝自己的confirm二次確認(rèn)彈窗方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Vue的生命周期操作示例

    Vue的生命周期操作示例

    這篇文章主要介紹了Vue的生命周期操作,結(jié)合實(shí)例形式分析了vue生命周期中各個(gè)函數(shù)的運(yùn)行步驟,需要的朋友可以參考下
    2019-09-09
  • vue實(shí)現(xiàn)權(quán)限控制路由(vue-router 動(dòng)態(tài)添加路由)

    vue實(shí)現(xiàn)權(quán)限控制路由(vue-router 動(dòng)態(tài)添加路由)

    今天小編就為大家分享一篇vue實(shí)現(xiàn)權(quán)限控制路由(vue-router 動(dòng)態(tài)添加路由),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • 自定義vue全局組件use使用、vuex的使用詳解

    自定義vue全局組件use使用、vuex的使用詳解

    本篇文章主要介紹了自定義vue全局組件use使用、vuex的使用詳解,本文主要來(lái)講解一下怎么樣定義一個(gè)全局組件,并解釋vue.use()的原理
    2017-06-06
  • ant?design?vue的form表單取值方法

    ant?design?vue的form表單取值方法

    這篇文章主要介紹了ant?design?vue的form表單取值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06

最新評(píng)論