国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue項目登錄頁面實現(xiàn)記住用戶名和密碼

這篇具有很好參考價值的文章主要介紹了vue項目登錄頁面實現(xiàn)記住用戶名和密碼。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

vue項目登錄頁面實現(xiàn)記住用戶名和密碼

記錄一下實現(xiàn)的邏輯,應(yīng)該分兩步來理解這個邏輯

  • 首次登錄,頁面沒有用戶的登錄信息,實現(xiàn)邏輯如下:

    1. 用戶輸入用戶名和密碼登錄,用戶信息為名為form的響應(yīng)式對象,v-model分別對應(yīng)兩個輸入框
    2. 用戶點擊登錄實現(xiàn)登錄功能
    3. 判斷是否勾選了記住密碼,v-model一個CheckBox,勾選為true,不勾選為false,默認(rèn)false
      • 若勾選記住密碼,則在瀏覽器的localstorage中寫入一個名為loginInfo的對象,值為字符串后的form
      • 若沒有勾選,同樣在localstorage中寫入一個名為loginInfo的對象,值為空

    vue項目登錄頁面實現(xiàn)記住用戶名和密碼,web開發(fā),vue.js,前端,javascript

  • 下次再登錄,就會根據(jù)上一次的勾選狀態(tài)來判斷是否填充form輸入框,邏輯如下

    掛載頁面時,判斷l(xiāng)ocalstorage中是否有需要的對象

    • 如果有,就把rememberMe的值設(shè)為true,并向頁面的輸入框填充用戶名和米面
    • 如果沒有,就把rememberMe的值設(shè)為false

    因為邏輯比較簡單,就不再畫圖了

放一下相關(guān)的代碼文章來源地址http://www.zghlxwxcb.cn/news/detail-612103.html

<template>
    <div class="login">
        <el-form ref="formRef" :model="form" :rules="rules" class="login-form">
            <h3 class="title">登錄</h3>
            <el-form-item prop="username">
                <el-input v-model="form.username" placeholder="輸入賬號">
                    <template #prefix>
                        <el-icon class="el-input__icon">
                            <User />
                        </el-icon>
                    </template>
                </el-input>
            </el-form-item>

            <el-form-item prop="password">
                <el-input v-model="form.password" placeholder="輸入密碼" type="password" show-password
                    @keyup.enter.native="doLogin">
                    <template #prefix>
                        <el-icon>
                            <Lock />
                        </el-icon>
                    </template>
                </el-input>
            </el-form-item>

            <div class="tooltip">
                <el-checkbox v-model="rememberMe" label="記住我" size="large" />
                <div class="register" @click="toRegister">注冊賬號</div>
                <!-- <a href="#">忘記密碼</a> -->
            </div>

            <el-form-item>
                <el-button style="width: 100%" @click="doLogin" class="input">登錄</el-button>
            </el-form-item>

            <div class="sep">
                <div style="margin-top: -11px">
                    <label>聯(lián)系我們</label>
                </div>
            </div>
        </el-form>
    </div>
</template>

<script setup>
import { reactive, ref, onMounted } from 'vue'
import { useUserStore } from '@/stores/user';
import { useRouter } from 'vue-router'
import { ElMessage } from 'element-plus';
const userStore = useUserStore()
const router = useRouter()
import http from '@/utils/http'
// import axios from 'axios'

const rememberMe = ref(false)
const formRef = ref(null)
const form = ref({
    username: '',
    password: ''
})

const rules = {
    username: [
        { required: true, message: "用戶名不能為空", trigger: "blur" },
        { min: 2, max: 30, message: "長度在 2 到 30 個字符", trigger: "blur" }
    ],
    password: [
        { required: true, message: "密碼不能為空", trigger: "blur" },
        { min: 3, max: 30, message: "長度在 6 到 30 個字符", trigger: "blur" }
    ],
}

const doLogin = () => {
    const { username, password } = form.value
    const data = { username, password }
    // console.log(data)
    formRef.value.validate(async valid => {
        if (valid) {
            try {
                await userStore.getUserInfo(data)
                // console.log('sdfdssff', userStore.userInfo)
                if (userStore.userInfo.Authorization) {
                    if(rememberMe.value){
                        localStorage.setItem('loginInfo', JSON.stringify(form.value))
                    } else {
                        localStorage.setItem('loginInfo', JSON.stringify({}))
                    }
                    router.push('/')
                }
            } catch (error) {
                ElMessage.error('用戶名或密碼錯誤')
            }
        }
        else { ElMessage.error('校驗沒通過') }
    })
}

const toRegister = () => {
    router.push('/register')
}

// 頁面加載時監(jiān)聽是否有記住密碼
onMounted(() => {
    // console.log(Object.keys(localStorage.getItem('loginInfoTs')))
    if(localStorage.getItem('loginInfo') != null && Object.keys(localStorage.getItem('loginInfo')).length > 2){
        rememberMe.value = true
        const loginInfo = JSON.parse(localStorage.getItem('loginInfo'))
        form.value.username = loginInfo.username
        form.value.password = loginInfo.password
    } else {
        rememberMe.value = false
    }
})
</script>

核心代碼是doLogin方法和onMounted中的內(nèi)容



到了這里,關(guān)于vue項目登錄頁面實現(xiàn)記住用戶名和密碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 寫一篇前端Vue怎么獲取登錄的用戶名的博客

    寫一篇前端Vue怎么獲取登錄的用戶名的博客

    前些天發(fā)現(xiàn)了一個巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點擊跳轉(zhuǎn)到網(wǎng)站,這篇文章男女通用,看懂了就去分享給你的碼吧。 在前端開發(fā)中,獲取登錄用戶的用戶名是一項常見的需求。Vue 是一種流行的前端框架,提供了多種方法來獲取登

    2024年02月11日
    瀏覽(19)
  • Git 用戶名郵箱的全局配置和單倉庫配置(不同項目使用不同賬號登錄)

    因工作和個人的倉庫地址、用戶名和郵箱都不一樣,很多時候一個git賬號無法滿足工作和個人學(xué)習(xí)并行的需求。 全局用戶名和郵箱是本地 git 客戶端的變量,可配置,不隨 git 庫而改變。gitee 和 github 是按郵箱來統(tǒng)計貢獻(xiàn)者(Contributors)的。 我們的目的是在特定項目里設(shè)置特定

    2024年02月14日
    瀏覽(23)
  • 編寫一個JSP登錄頁面,可輸入用戶名和密碼,提交請求到另一個JSP頁面,該JSP頁面獲取請求的相關(guān)數(shù)據(jù)并顯示出來。請求的相關(guān)數(shù)據(jù)包括用戶輸入的請求數(shù)據(jù)和請求本身的一些信息。

    編寫一個JSP登錄頁面,可輸入用戶名和密碼,提交請求到另一個JSP頁面,該JSP頁面獲取請求的相關(guān)數(shù)據(jù)并顯示出來。請求的相關(guān)數(shù)據(jù)包括用戶輸入的請求數(shù)據(jù)和請求本身的一些信息。

    實戰(zhàn)要求 : 編寫一個JSP登錄頁面,可輸入用戶名和密碼,提交請求到另一個JSP頁面,該JSP頁面獲取請求的相關(guān)數(shù)據(jù)并顯示出來。請求的相關(guān)數(shù)據(jù)包括用戶輸入的請求數(shù)據(jù)和請求本身的一些信息。 (例如請求使用的協(xié)議getProtocol()、請求的URI request.getServletPath()、請求方法requ

    2024年02月06日
    瀏覽(22)
  • vagrant 用戶名密碼登錄

    vagrant 用戶名密碼登錄

    正常登錄后? ? ? ? ? sudo -i 切換到root權(quán)限 ? ? ? ?vim?/etc/ssh/vim sshd_config ? ? ? ?將PasswordAuthentication no設(shè)置 ? ? ? ? 為yes 重啟sshd.service服務(wù) ? ? ? ? systemctl restart sshd.service

    2024年01月16日
    瀏覽(30)
  • 如何安全的修改win11用戶名(微軟賬號登錄,用戶名會變成純數(shù)字,好丑)

    如何安全的修改win11用戶名(微軟賬號登錄,用戶名會變成純數(shù)字,好丑)

    過河拆橋法 , (下面有圖示) 1 設(shè)置win11使用本地賬戶, 2 新建另一個管理員賬戶GGG, 3 登錄GGG, 4 刪除目標(biāo)用戶名AAA, 5 重新新建AAA,并設(shè)置為管理員, 6 登錄AAA, 7 刪除GGG, 8 ok ? ? ? ? ? ? ? ? ? ? ? ?ok ? 1、按 Win 鍵,或點擊任務(wù)欄上的開始圖標(biāo),然后在已固定的應(yīng)

    2024年02月11日
    瀏覽(93)
  • ClickHouse 為用戶名密碼登錄命令

    ?ClickHouse 為用戶名密碼登錄命令如下: ./clickhouse-client --host 127.0.0.1 --port 9001 -user default --password 123

    2024年02月11日
    瀏覽(23)
  • 6、ES單機(jī)設(shè)置用戶名密碼、集群設(shè)置用戶名密碼、es-head登錄、如何去掉密碼

    6、ES單機(jī)設(shè)置用戶名密碼、集群設(shè)置用戶名密碼、es-head登錄、如何去掉密碼

    在配置文件中添加如下參數(shù)cat config/elasticsearch.yml: 關(guān)閉es服務(wù)如果服務(wù)啟動(kill進(jìn)程id) 啟動es服務(wù) 待服務(wù)啟動完成,且能正常訪問后,執(zhí)行 集群此時是啟動狀態(tài) elasticsearch-head查看 通過瀏覽器查看 http://192.168.180.45:9200/_cat/nodes?v 進(jìn)入主節(jié)點的bin目錄下執(zhí)行 再次在bin目錄輸

    2024年04月26日
    瀏覽(43)
  • jenkins忘記用戶名以及登錄密碼的解決方法

    jenkins忘記用戶名以及登錄密碼的解決方法

    1. 進(jìn)入到安裝jenkins路徑,找到j(luò)enkins安裝的配置文件 config.xml? 比如我的jenkins安裝路徑如下圖: 2. 打開config.xml文件夾,搜索到useSecurity 將useSecurity的屬性改為false 如下圖所示: ?然后重啟jenkins server,然后就可以進(jìn)入到j(luò)enkins主主主頁面了。 3.?進(jìn)入系統(tǒng)管理的管理用戶就可以

    2024年02月04日
    瀏覽(18)
  • 微信小程序個人訂單,微信頭像用戶名信息獲取頁面

    微信小程序個人訂單,微信頭像用戶名信息獲取頁面

    這里先做一個簡單的展示,這個頁面是我參加比賽做的小程序,分享給大家,不是很好看哈哈哈哈 話不多說,先上代碼。首先是前端頁面 .wxml ? 接下來是美化一下頁面.wxss 最后就是js頁面啦,這里涉及到微信頭像昵稱的獲取,還有一些button的實現(xiàn),我這里其他頁面沒有附著,

    2024年02月11日
    瀏覽(22)
  • Oracle19c默認(rèn)用戶名system密碼不正確不能登錄問題解決

    Oracle19c默認(rèn)用戶名system密碼不正確不能登錄問題解決

    oracle亂碼問題一般是 由于oracle字符集設(shè)置和操作系統(tǒng)字符集設(shè)置不一致 造成的。 查看oracle字符集方式如下: 1.進(jìn)入sqlplus 命令: 2.以系統(tǒng)管理員身份連接數(shù)據(jù)庫 命令: 3.輸入查詢語句命令: 查詢結(jié)果: (1)普通用戶: SCOTT (密碼:tiger) (2)普通管理員:SYSTEM(密碼:

    2024年02月13日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包