最近学习过程中 常碰到让用户登录注册这种 今天就用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);
}
效果图:

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

被折叠的 条评论
为什么被折叠?



