React项目中使用Antd组件实现记住密码的功能

上代码:

export const setCookie = (name, value, expiryDate) => {
  let currentDate = new Date();
  currentDate.setDate(currentDate.getDate() + expiryDate);
  document.cookie = name + '=' + value + '; expires=' + currentDate;
};

export const getCookie = name => {
  let arr = document.cookie.split('; ');
  for (let i = 0; i < arr.length; i++) {
    let arr2 = arr[i].split('=');
    if (arr2[0] === name) {
      return arr2[1];
    }
  }
  return '';
};

export const removeCookie = name => {
  setCookie(name, 1, -1);
};

<Checkbox
  checked={this.state.rememberPassword}
  onChange={this.onChange}
>
  记住密码
</Checkbox>
onChange = e => {
    const { username, password } = this.props.form.getFieldsValue();
    this.setState(
      {
        rememberPassword: e.target.checked,
      },
      () => {
        if (e.target.checked) {
          setCookie('username', username, 1);
          setCookie('password', password, 1);
        } else {
          removeCookie('username');
          removeCookie('password');
        }
      }
    );
  };

组件初始化:

checkRememberPassword = () => {
  if (getCookie('username') !== '' && getCookie('password') !== '') {
    this.props.form.setFieldsValue({
      username: getCookie('username'),
      password: getCookie('password'),
    });
    this.setState({
      rememberPassword: true,
    });
  }
};

小结:记住密码功能其实就是对cookie的操作,把账号和密码存储到cookie里面,设置一个过期时间,在过期时间之前都可以拿到存储的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值