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