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

Vue登錄功能實(shí)現(xiàn)

 更新時(shí)間:2021年09月22日 09:17:00   作者:鈞桐  
本文主要介紹了 Vue 登錄功能實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

寫在前面

vue文件最后要空一行,不然會(huì)報(bào)錯(cuò),真的奇葩…

登錄概述

登錄業(yè)務(wù)流程

1.在登錄頁面輸入用戶名和密碼

2.調(diào)用后臺(tái)接口進(jìn)行驗(yàn)證

3.通過驗(yàn)證之后,根據(jù)后臺(tái)得響應(yīng)狀態(tài)跳轉(zhuǎn)到項(xiàng)目主頁

登錄業(yè)務(wù)的相關(guān)技術(shù)點(diǎn)

http是無狀態(tài)的通過cookie在客戶端記錄狀態(tài)通過session在服務(wù)器端記錄狀態(tài)通過token方式維持狀態(tài)

這里要清楚哦!

登錄—token原理分析

1.登錄頁面輸入用戶名和密碼進(jìn)行登錄

2.服務(wù)器驗(yàn)證通過之后生成該用戶的token并返回

3.客戶端存儲(chǔ)該token

4.后續(xù)所有的請(qǐng)求都攜帶該token發(fā)送請(qǐng)求

5.服務(wù)器端驗(yàn)證token是否通過

登錄功能實(shí)現(xiàn)

登錄頁面的布局

通過Element-UI組件實(shí)現(xiàn)布局

  • el-form
  • el-form-item
  • el-input
  • el-button
  • 字體圖標(biāo)

在vscode打開終端ctrl+~

git status 查看當(dāng)前git狀態(tài)
git checkout -b login 創(chuàng)建一個(gè)新的分支叫l(wèi)ogin
git branch 切換分支

在這里插入圖片描述

在vue ui中啟動(dòng)!

在這里插入圖片描述

終端指令npm run serve也可以運(yùn)行!

在components文件下創(chuàng)建一個(gè)vue文件

import Vue from 'vue'
import VueRouter from 'vue-router'
import login from './components/login.vue'
Vue.use(VueRouter)

const routes = [
      {path:'/login',component:login}
]

const router = new VueRouter({
  routes
})

export default router

配置路由(并添加路由重定向)

const router = new VueRouter({
  routes: [
    {
      path: '/',
      redirect: '/login'
    },
    {
      path: '/login',
      component: login
    }
  ]
})

一定要注意空格,不然會(huì)報(bào)錯(cuò),可惡??!

頁面編寫

先給一個(gè)全局樣式表

/* 全局樣式表 */
html,
body,
#app{
    height: 100%;
    margin: 0;
    padding: 0;
}

并在main.js中導(dǎo)入

import './assets/css/global.css'

完成登錄框居中

注意:translate 進(jìn)行移動(dòng),完成真正的居中

.login_box{
    width: 450px;
    height: 300px;
    background-color: #fff;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
}

在這里插入圖片描述

添加一個(gè)登錄圖標(biāo)

   .avatar_box{
        height: 130px;
        width: 130px;
        border: 1px solid #eee;
        border-radius: 50%;
        padding: 10px;
        box-shadow: 0px 0px 10px #ddd;
        position: absolute;
        left: 50%;
        transform: translate(-50%,-50%);
        background-color: #fff;
        img{
            width: 100%;
            height: 100%;
            border-radius: 50%;
            background-color: #eee;
        }
    }

在這里插入圖片描述

登錄表單的布局

通過Element-UI組件實(shí)現(xiàn)布局

  • el-form
  • el-form-item
  • el-input
  • el-button
  • 字體圖標(biāo)

elements組件庫網(wǎng)頁
在網(wǎng)站里面可以找到一些可以使用的基礎(chǔ)模板代碼

導(dǎo)入組件

import Vue from 'vue'
import { Button, Form, FormItem, Input } from 'element-ui'//分開import會(huì)報(bào)錯(cuò)

Vue.use(Button)
Vue.use(Form)
Vue.use(FormItem)
Vue.use(Input)

中間form和button都是直接到上面的組件庫里面去找的

中間一些代碼不貼了,比較枯燥呀

特別地,我們的小圖標(biāo)是從阿里的icon庫里面下載的

具體用法見以前寫得一篇博客
阿里巴巴icon圖標(biāo)盡在掌握(前端如何引入icon庫,美麗圖標(biāo)隨你處置T.T)

在這里插入圖片描述

登錄表單的數(shù)據(jù)綁定

1.:model=“l(fā)oginForm” 綁定一個(gè)表單

2.在form-item中用v-model雙向綁定數(shù)據(jù)對(duì)象

3.在export default中data() return表單數(shù)據(jù)

登錄表單的驗(yàn)證規(guī)則

1.:rules="ruleForm"綁定一個(gè)規(guī)則

2.在form-item中用prop屬性設(shè)置為需要校驗(yàn)的字段名

      // 這是表單的驗(yàn)證規(guī)則對(duì)象
      loginFormRules: {
        // 驗(yàn)證用戶名是否合法
        username: [
          { required: true, message: '請(qǐng)輸入登錄名稱', trigger: 'blur' },
          { min: 3, max: 10, message: '長度在 3 到 10 個(gè)字符', trigger: 'blur' }
        ],
        // 驗(yàn)證密碼是否合法
        password: [
          { required: true, message: '請(qǐng)輸入登錄密碼', trigger: 'blur' },
          { min: 6, max: 15, message: '長度在 6 到 15 個(gè)字符', trigger: 'blur' }
        ]

      }

在這里插入圖片描述

登錄表單的重置

1.在el-form中添加ref引用名稱,以便獲取表單

2.在方法中添加方法,用this.$refs.loginFormRef.resetFields()來重置表單,注意表單的值會(huì)變?yōu)閐ata里面設(shè)置的初值

登錄預(yù)驗(yàn)證

1.同樣的this.$refs.loginFormRef.validate()

2.配置axios

import axios from 'axios'
// 配置請(qǐng)求的根路徑
axios.defaults.baseURL = 'https://127.0.0.1:8888/api/private/v1/'
Vue.prototype.$http = axios

3.如下獲取查詢的結(jié)果
使用async 和await要獲取返回結(jié)果

      this.$refs.loginFormRef.validate(async valid => {
        if (!valid) return
        const { data: res } = await this.$http.post('login', this.loginForm)
        console.log(res)
        if (res.meta.status !== 200) return console.log('登錄失敗')
        console.log('登錄成功')
      })

登錄組件配置彈窗提示

 1.在element.js中引入message并掛載到vue上

Vue.prototype.$message = Message // 掛載到了Vue上

2.直接調(diào)用this.$message.error(‘登錄失?。?)

在這里插入圖片描述 

登錄成功后的行為

1.將登錄之后的token,保存到客戶端的sessionStorage中

1.項(xiàng)目中除了登錄之外的其他API接口,必須在登錄之后才能訪問

2.token只應(yīng)在當(dāng)前網(wǎng)站打開期間生效,所以將token保存在sessionStorage中

將這個(gè)token存儲(chǔ)到了會(huì)話存儲(chǔ)中

在這里插入圖片描述 

2.通過編程式導(dǎo)航跳轉(zhuǎn)到后臺(tái)主頁,路由地址是/home

        window.sessionStorage.setItem('token', 'res.data.token')//保存token 這里是亂保存的固定值
        this.$router.push('/home') //跳轉(zhuǎn)路由,進(jìn)入下一個(gè)頁面

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

相關(guān)文章

最新評(píng)論