前端使用vue实现简单登录注册功能

本文介绍了如何使用Vue.js来创建简单的登录注册功能。通过利用localStorage进行信息存储,登录时对比表单信息与存储的数据进行验证。

最近学习过程中 常碰到让用户登录注册这种 今天就用vue实现简单的登录注册功能:

注册时要用到localstorage来存储信息 登录时将表单信息和localstorage中的对比判断

代码如下:

  <!-- 登陆页面 -->
    <van-nav-bar title="密码登陆" style="background:#2f8fea;">
      <template #left>
        <van-icon name="arrow-left" color="#fff" @click="back"></van-icon>
      </template>
    </van-nav-bar>

    <van-form>
      <van-field
        v-model="username"
        name="账户"
        label="账户"
        placeholder="账户"
        :rules="[{ required: true, message: '请填写用户名' },{pattern:/^[1][3,4,5,6,7,8][0-9]{9}$/,message:'请输入正确的11位手机号'}]"
      />
      <van-field
        v-model="password"
        type="password"
        name="密码"
        label="密码"
        placeholder="密码"
        :rules="[{ required: true, message: '请填写密码' },{pattern:/^\w{6,}$/}]"
      />

      <div style="margin: 16px;">
        <van-button block type="info" @click="submit">登录</van-button>
      </div>
    </van-form>
    <router-link to="/register" class="zc">没有账户 立即注册?</router-link>

 <!-- 注册页面 -->
    <van-nav-bar title="欢迎注册" style="background:#2f8fea;>
      <template #left>
        <van-icon name="arrow-left" color="#fff"></van-icon>
      </template>
    </van-nav-bar>
    <van-form>
      <van-field
        v-model="username"
        name="邮箱"
        label="邮箱"
        placeholder="请输入邮箱"
        :rules="[{ required: true, message: '请填写正确的邮箱' },{pattern:/^(\w{5,})+@([a-zA-Z]{2,3})+((\.[a-zA-Z]{2,3}))$/}]"
      />
      <van-field
        v-model="password"
        type="password"
        name="密码"
        label="请输入密码"
        placeholder="请输入密码"
        :rules="[{ required: true, message: '请填写密码' },{pattern:/^\w{6,}$/}]"
      />
      <div style="margin: 16px;">
        <van-button block type="danger" @click="submit">注册</van-button>
      </div>
    </van-form>

JS代码:

//登录页面
 data() {
    return {
      username: "",
      password: ""
    };
  },
  methods: {
    back() {
      this.$router.push({
        path: "/user"
      });
    },
    submit() {
      if (this.username.trim() == "") {
        return;
      }
      if (!this.username.match(/^[1][3,4,5,6,7,8][0-9]{9}$/)) {
        return;
      }

      if (this.password.trim() == "") {
        return;
      }

      if (!this.password.match(/^\w{6,}$/)) {
        return;
      }

      let userInfo = localStorage.userInfo;
      if (userInfo) {
        userInfo = JSON.parse(userInfo);
        let rel = false;
        userInfo.map(item => {
          if (
            this.username == item.username &&
            this.password == item.password
          ) {
            rel = true;
            return;
          }
        });

        if (rel) {
          sessionStorage.username = this.username;
          this.$router.push({
            path: "/message"
          });
        } else {
          this.$notify({
            message: "账户或密码输入有误 请确认后再试!"
          });
        }
      }
    }
  }
  //注册页面
   submit() {
      if (this.username.trim() == "" && this.password.trim() == "") {
        return;
      }
      if (
        !this.username.match(
          /^(\w{1,})+@([a-zA-Z]{2,3})+((\.[a-zA-Z]{2,3}))$/
        ) &&
        !this.password.match(/^\w{6,}$/)
      ) {
        return;
      }
      let users = localStorage.users;
      if (users) {
        users = JSON.parse(users);
      } else {
        users = [];
      }
      users.push({
        username: this.username,
        password: this.password
      });
      localStorage.users = JSON.stringify(users);

      this.$notify({
        type: "success",
        message: "恭喜您 注册成功!"
      });
      setTimeout(() => {
        this.$router.push({
          path: "/login2"
        });
      }, 2000);
    }

效果图:
在这里插入图片描述

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值