VUE实现简单的记住密码功能

简介: VUE实现简单的记住密码功能

用户在进行登录时,常常会在登录页面看到记住密码功能。一般是利用sessionStorage进行储存,这样做也是为了用户方便。


image.png


HTML代码:


<div class="login">
  <el-form :model="loginForm" status-icon :rules="rules" ref="loginForm" label-width="100px" class="demo-loginForm">
      <h1 class="title">
      <i class="el-icon-s-promotion"></i>
       管理系统
      </h1>      
  <el-form-item label="账号" prop="userId">
    <el-input type="text" v-model="loginForm.userId" autocomplete="off"></el-input>
  </el-form-item>
  <el-form-item label="密码" prop="passWord">
    <el-input type="password" v-model="loginForm.passWord" autocomplete="off"></el-input>
  </el-form-item>
  <el-form-item prop="rememberPwd">
    <div style="float:left;">
      <el-checkbox  v-model="loginForm.remember" />
      记住密码
    </div>
  </el-form-item>
  <el-form-item class="box">
    <el-button type="primary" @click="submitForm('loginForm')">登录</el-button>
    <el-button @click="resetForm('loginForm')">重置</el-button>
  </el-form-item>
</el-form>   
  </div>

组件化开发,使用elementUI来开发页面,容易上手,效果也能达到。


JS代码:


return {
        loginForm: {
          remember:false
        },  
created() {
    let account = sessionStorage.getItem("userId")
    let password = sessionStorage.getItem("passWord")
    // 如果存在赋值给表单,并且将记住密码勾选
    if(account){
      this.loginForm.userId = account
      this.loginForm.passWord = password
      this.loginForm.remember = true
    }
  },
methods:{
        submitForm(formName) {
        this.$refs[formName].validate((valid) => {
          if (valid) {   
         let _this=this;
         this.axios.post('/api/checklogin',{    
             userId:_this.loginForm.userId,
             passWord:_this.loginForm.passWord         
         }).then(response=>{
           if(response.data.length){
            if(this.loginForm.remember==true) {
                    sessionStorage.setItem("userId", this.loginForm.userId);
                    sessionStorage.setItem("passWord", this.loginForm.passWord);
                  }
          _this.$store.commit('SAVE_USERINFO',response.data)//存储
                 this.$message({
                  message: '恭喜你,登录成功',
                  type: 'success'
        });
               //页面跳转
                  this.$router.push("/Home");
           }
           else{
                 this.$message.error('请检查用户名或密码');
           }
         })
          } else {
            return false;
          }
        });
      }
}

HTML5的WebStorage提供了两种API:localStorage(本地存储)和sessionStorage(会话存储),不同浏览器无法共享localStorage或sessionStorage中的信息。相同浏览器的不同页面间可以共享相同的 localStorage(页面属于相同域名和端口),但是不同页面或标签页间无法共享sessionStorage的信息。这里需要注意的是,页面及标签页仅指顶级窗口,如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的。我这里是用sessionStorage进行功能测试,具体怎么用根据功能要求来。


CSS代码:


.login{
background-color: aqua;
  position: absolute;
            top: 50%;
            left: 50%;
            -webkit-transform: translate(-50%, -50%);
            -moz-transform: translate(-50%, -50%);
            -ms-transform: translate(-50%, -50%);
            -o-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
}
.el-form{
  width: 400px;
  border: 1px solid #ccc;
  border-radius: 4px;
  padding: 50px 45px ;
}
.el-form,.title{
  font-size: 20px;
  font-weight: bold;
   text-align: center;
   padding-bottom: 20px;
}
.el-form,.box{
  padding-right:55px;
}

具体效果:


image.png


当你重新打开网页登录时,就会发现已经记住密码了。


相关文章
|
3月前
|
JavaScript
Vue中如何实现兄弟组件之间的通信
在Vue中,兄弟组件可通过父组件中转、事件总线、Vuex/Pinia或provide/inject实现通信。小型项目推荐父组件中转或事件总线,大型项目建议使用Pinia等状态管理工具,确保数据流清晰可控,避免内存泄漏。
330 2
|
2月前
|
缓存 JavaScript
vue中的keep-alive问题(2)
vue中的keep-alive问题(2)
312 137
|
6月前
|
人工智能 JavaScript 算法
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
821 0
|
5月前
|
人工智能 JSON JavaScript
VTJ.PRO 首发 MasterGo 设计智能识别引擎,秒级生成 Vue 代码
VTJ.PRO发布「AI MasterGo设计稿识别引擎」,成为全球首个支持解析MasterGo原生JSON文件并自动生成Vue组件的AI工具。通过双引擎架构,实现设计到代码全流程自动化,效率提升300%,助力企业降本增效,引领“设计即生产”新时代。
444 1
|
5月前
|
JavaScript 安全
在 Vue 中,如何在回调函数中正确使用 this?
在 Vue 中,如何在回调函数中正确使用 this?
278 0
|
存储 JavaScript 网络架构
Vue3新增功能特性
Vue3相比Vue2更新技术点
|
8月前
|
JavaScript
vue实现任务周期cron表达式选择组件
vue实现任务周期cron表达式选择组件
1054 4
|
6月前
|
JavaScript UED
用组件懒加载优化Vue应用性能
用组件懒加载优化Vue应用性能
|
7月前
|
JavaScript 数据可视化 前端开发
基于 Vue 与 D3 的可拖拽拓扑图技术方案及应用案例解析
本文介绍了基于Vue和D3实现可拖拽拓扑图的技术方案与应用实例。通过Vue构建用户界面和交互逻辑,结合D3强大的数据可视化能力,实现了力导向布局、节点拖拽、交互事件等功能。文章详细讲解了数据模型设计、拖拽功能实现、组件封装及高级扩展(如节点类型定制、连接样式优化等),并提供了性能优化方案以应对大数据量场景。最终,展示了基础网络拓扑、实时更新拓扑等应用实例,为开发者提供了一套完整的实现思路和实践经验。
900 77
|
8月前
|
缓存 JavaScript 前端开发
Vue 基础语法介绍
Vue 基础语法介绍