IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Vue+vant实现移动端记住密码功能 -> 正文阅读

[JavaScript知识库]Vue+vant实现移动端记住密码功能

1、因项目需要,移动端需要进行记住密码,在此,将实现思路记录如下:这里有一个细节,就是移动端和PC端机制不同,因此所使用的存储机制也不同。这里使用的存储机制是localStorage。

<van-form>
          <div class="vanRow" style="">
            <van-row class="vanInput" >
              <van-row>
                <div class="fontSize">
                  <van-field
                    style="color: white;font-size: 16px"
                    v-model="loginForm.username"
                    name="username"
                    label=""
                    left-icon="manager-o"
                    placeholder="请输入用户名或手机号"
                    :error="false"
                    :rules="[{ required: true, message: '请填写用户名或手机号' }]" clearable />
                  <van-field
                    style="color: white;font-size: 16px"
                    v-model="loginForm.password"
                    :type="passType"
                    name="password"
                    v-show="showPsw"
                    label=""
                    left-icon="goods-collect-o"
                    placeholder="请输入密码"
                    :error="false"
                    :rules="[{ required: true, message: '请填写密码' }]"
                    @click-right-icon="showPassword"
                  >
                    <template #right-icon>
                      <van-icon :name="passIcon" color="#E8F0FE"></van-icon>
                    </template>

                  </van-field>
            
                  <van-checkbox 
                      class="vancheck"
                      style="height:40px;margin: 4px 15px;font-size: 15px;"
                      v-model="loginForm.rememberMe"
                      name = 'rememberMe' shape="square">
                      记住密码
                  </van-checkbox>
                </div>
              </van-row>
            </van-row>
          </div>
          <van-row class="login_box">
            <van-col :span="24" >
              <div class="login_box_font">
                <van-button @click="login"    type="info" class="btn-login" style="mso-border-shadow: yes;font-size: 20px;width: 60%" color="#3572FF">
                  登 录
                </van-button>
              </div>
            </van-col>
          </van-row>
        </van-form>
return {
        loginForm: {
                username: "",
                password: "",
                rememberMe: false,
                code: "",
                uuid: ""
          },
      }
    },
created() {
    if(!!localStorage.getItem("rememberMe") &&localStorage.getItem("rememberMe") =='true'){
       this.getrememberPassword();
    }
   },

在methods中写入记住密码方法:

getrememberPassword() {
            this.loginForm = {
                username:!!localStorage.getItem("username")?localStorage.getItem("username"):'',
                password:!!localStorage.getItem("password")?localStorage.getItem("password"):'',
                rememberMe:!!localStorage.getItem("rememberMe")?localStorage.getItem("rememberMe"):false
            };
        },
      //登录
        login(value) {
        let _this = this;
        let param ={
          username: _this.loginForm.username,
          password: _this.loginForm.password
        };
        requestLogin(param).then(res => {
          if(res.code == 200){
            Toast({
                message: '登录成功',
            })
            localStorage.setItem('token', res.token);
            if (this.loginForm.rememberMe) {
                localStorage.setItem("username", this.loginForm.username, {
                    expires: 30
                });
                localStorage.setItem(
                    "password",
                    this.loginForm.password,
                    {
                        expires: 30
                    }
                );
                localStorage.setItem("rememberMe", this.loginForm.rememberMe, {
                    expires: 30
                });
            } else {
                localStorage.removeItem("username");
                localStorage.removeItem("password");
                localStorage.removeItem("rememberMe");
            }
                _this.$router.push({path: '/index'});
            }else{
              Toast({
                message: '用户名或密码错误,登录失败',
              })
            }
        });
      },
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 21:41:13  更:2022-03-13 21:41:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:52:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码