vue localStorage 实现记住密码

html

<div class="flex-container">
    <form @submit.prevent="submit" novalidate="true">
      <div id="welcome">欢迎使用聚播微信客服系统</div>
      <div class="username">
        <i class="fa fa-user-circle-o " aria-hidden="true">用户名
          <input type="text" name="" id="username" placeholder="用户名" maxlength="20" v-model="username" autofocus required><br />
        </i>
      </div>
      <div class="password" style="height:40px;">
        <i class="fa fa-key" aria-hidden="true"> 密&nbsp;&nbsp;&nbsp;码
          <input type="password" name="" id="password" placeholder="密码" maxlength="20" v-model="password" required><br />
        </i>
        <div style="height:20px;">
          <div v-if="errors.length" v-text="errors" id="errorMsg"></div>
        </div>
      </div>
      <div class="remember">
        <input type="checkbox" name="" id="rememberPassword" v-model="checked">
        <label for="rememberPassword" id="label1" @mouseover="addClass('label1')" @mouseout="deleteClass('label1')">记住密码</label>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <span id="forgetPassword" @mouseover="addClass('forgetPassword')" @mouseout="deleteClass('forgetPassword')">忘记密码</span>
      </div>
      <input class="submit" id="submitInput" type="submit" value="登陆" @mouseover="addClass('submitInput')" @mouseout="deleteClass('submitInput')">
    </form>
  </div>

data

data () {
    return {
      username: '',
      password: '',
      checked: false
    }
  },

用户名密码正确之后,才储存用户名密码

// 省略登陆代码
this.$store.dispatch('LoginByUsername', loginForm).then(() => {
          console.log('回到longin.vue')
          // 记住密码
          if (typeof (Storage) !== 'undefined') {
            console.log('支持web存储')
            if (document.getElementById('rememberPassword').checked) {
              // alert('checkbox is checked')
              console.log('记住密码')
              let userinfo = { username: _this.username, password: _this.password, checked: true }
              localStorage.setItem('userinfo', JSON.stringify(userinfo))
              console.log(localStorage.getItem('userinfo'))
            } else {
              localStorage.removeItem('userinfo')
              localStorage.removeItem('rememberPassword')
              console.log('移除localStorage')
            }
          } else {
            console.log(' 抱歉! 不支持 web 存储。')
          }
          this.$router.push({ path: '/' }) // 登录成功之后重定向到首页
        }).catch(error => {
          _this.errors = _this.$store.getters.logs[0]
          return Promise.reject(error)
        })

created

created () {
    let userinfo = localStorage.getItem('userinfo')
    if (userinfo) {
      userinfo = JSON.parse(localStorage.getItem('userinfo'))
      console.log(userinfo)
      this.username = userinfo.username
      this.password = userinfo.password
      this.checked = true
    }
  },
Vue 3中,使用Element Plus实现记住密码功能可以通过以下步骤完成: 1. 首先,你需要在登录表单中添加一个复选框,用于用户选择是否记住密码。 ```html <el-form-item label="记住密码"> <el-checkbox v-model="rememberPassword"></el-checkbox> </el-form-item> ``` 2. 在Vue的data选项中添加一个记住密码的变量,并初始化为false。 ```javascript data() { return { rememberPassword: false, // 其他data属性... } }, ``` 3. 在登录表单提交,将用户是否选择记住密码的状态保存到本地存储(localStorage)中。 ```javascript methods: { login() { // 其他登录逻辑... // 判断用户是否选择了记住密码 if (this.rememberPassword) { localStorage.setItem('username', this.username); localStorage.setItem('password', this.password); } else { localStorage.removeItem('username'); localStorage.removeItem('password'); } } } ``` 4. 在组件的`mounted`钩子函数中,检查本地存储中是否有保存的用户名和密码,并将其绑定到表单上。 ```javascript mounted() { const savedUsername = localStorage.getItem('username'); const savedPassword = localStorage.getItem('password'); if (savedUsername && savedPassword) { this.username = savedUsername; this.password = savedPassword; this.rememberPassword = true; } } ``` 这样,当用户选择记住密码并成功登录后,下次打开页面用户名和密码会自动填充,并且你可以在登录表单中的复选框中显示选中状态。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值