用 Vue 实现记住登录信息功能

前言

最近做练习的时候遇到了记住登录用户信息的需求,我查了一些资料、看过几个人的博客,但是我看到的文章不是有错误就是格式及其糟糕,为此我会将我实现的原理用尽可能通俗易懂的方式告诉大家。

使用的依赖

  • ant-design-vue
  • js-base64

实现原理

在这里插入图片描述
如图所示,我们需要根据用户是否点击记住信息来决定是否保存用户信息;

当用户决定要保存登录信息的时候,我们将使用cookie来保存信息,当然在保存密码前我们需要用js-base64对其进行加密;

要注意的是在获取密码前要先对cookie中加密的密码进行解密再保存在组件的数据中,最后通过数据渲染视图;

代码

注意: 关于template部分的代码可选择跳过,源码请查询官方文档( 表单/登录框 )
https://www.antdv.com/components/form-cn/#components-form-demo-login-form

重点是看script中定义的方法组件生命周期函数
建议观看顺序:setCookie–》getCookie–》initForm–》handleSubmit–》created

<template>
    <a-form
            id="components-form-demo-normal-login"
            :form="form"
            class="login-form"
            @submit="handleSubmit">
        <a-form-item>
            <a-input
                    v-decorator="['userName',{
                      rules: [
                          {
                              required: true,
                              message: '请输入用户名!'
                          },
                          {
                              min: 5,
                              message: '用户名最小长度为5位'
                          },
                          {
                              max: 12,
                              message:'用户名长度不可超过12位'
                          }],
                        initialValue: username
                    }]"
                    placeholder="username">
                <a-icon slot="prefix" type="user" style="color: rgba(0,0,0,.25)" />
            </a-input>
        </a-form-item>
        <a-form-item>
            <a-input
                    v-decorator="['password',{
                        rules: [
                            {
                                required: true,
                                message: '请输入密码!'
                            },
                            {
                                min: 8,
                                message: '密码最低长度为8位'
                            },
                            {
                                max: 16,
                                message: '密码长度不可超过16位'
     
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值