您现在的位置是:主页 > news > 东莞做微网站建设/郑州最好的建站公司

东莞做微网站建设/郑州最好的建站公司

admin2025/6/5 21:33:11news

简介东莞做微网站建设,郑州最好的建站公司,西安做网站的云阔,如何做班级网站https://blog.csdn.net/maidu_xbd/article/details/87943243已经搭建好了vue开发环境,在本博客中,来介绍些结合element-ui实现登录注册界面。界面效果展示如下图: 实现的功能包括: 首先安装:通过npm方式进行安装&…

东莞做微网站建设,郑州最好的建站公司,西安做网站的云阔,如何做班级网站https://blog.csdn.net/maidu_xbd/article/details/87943243已经搭建好了vue开发环境,在本博客中,来介绍些结合element-ui实现登录注册界面。界面效果展示如下图: 实现的功能包括: 首先安装:通过npm方式进行安装&…

https://blog.csdn.net/maidu_xbd/article/details/87943243已经搭建好了vue开发环境,在本博客中,来介绍些结合element-ui实现登录注册界面。界面效果展示如下图:

实现的功能包括:

首先安装:通过npm方式进行安装(更好地和 webpack 打包工具配合使用),其他使用方式可以看官网(http://element-cn.eleme.io/#/zh-CN/component/installation)。

npm i element-ui -S

安装axios:【npm install axios --save-dev】

项目目录如下图:

路由配置:【router】->【index.js】:实现路由的配置

import Vue from 'vue'
import Router from 'vue-router'
import Personal from '@/components/Personal'
import Login from '@/components/Login'
import Register from '@/components/Register'Vue.use(Router)export default new Router({routes: [{path: '/personal',name: 'Personal',component: Personal},{path: '/',name: 'Login',component: Login},{path: '/register',name: 'Register',component: Register}],mode: "history"
})

以上三个路由path分别对应于登录成功后的跳转页面首页【/personal】,登录页面【/】,注册页面【/register】。

项目核心文件【main.js】:实例化vue对象,引入需要使用的工具,如axios,element-ui等

import Vue from 'vue'
import App from './App'
import router from './router'
import axios from 'axios'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';Vue.use(ElementUI)
//全局配置
Vue.prototype.$axios = axios
Vue.config.productionTip = false/* eslint-disable no-new */
new Vue({el: '#app',router,components: { App },template: '<App/>'
})

登录界面【Login.vue】:进行了简单的非空校验;通过axios进行http请求,实现向后台提交登录数据,根据后台反馈的status判断信息的正确与否,正确则跳转到首页【/personal】

<template><div class="login" clearfix><div class="login-wrap"><el-row type="flex" justify="center"><el-form ref="loginForm" :model="user" :rules="rules" status-icon label-width="80px"><h3>登录</h3><hr><el-form-item prop="username" label="用户名"><el-input v-model="user.username" placeholder="请输入用户名" prefix-icon></el-input></el-form-item><el-form-item id="password" prop="password" label="密码"><el-input v-model="user.password" show-password placeholder="请输入密码"></el-input></el-form-item><router-link to="/">找回密码</router-link><router-link to="/register">注册账号</router-link><el-form-item><el-button type="primary" icon="el-icon-upload" @click="doLogin()">登 录</el-button></el-form-item></el-form></el-row></div></div>
</template><script>
import axios from "axios";
export default {name: "login",data() {return {user: {username: "",password: ""}  };},created() {},methods: {doLogin() {if (!this.user.username) {this.$message.error("请输入用户名!");return;} else if (!this.user.password) {this.$message.error("请输入密码!");return;} else {//校验用户名和密码是否正确;// this.$router.push({ path: "/personal" });axios.post("/login/", {name: this.user.username,password: this.user.password}).then(res => {// console.log("输出response.data.status", res.data.status);if (res.data.status === 200) {this.$router.push({ path: "/personal" });} else {alert("您输入的用户名或密码错误!");}});}}}
};
</script><!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
.login {width: 100%;height: 740px;background: url("../assets/images/bg1.png") no-repeat;background-size: cover;overflow: hidden;
}
.login-wrap {background: url("../assets/images/login_bg.png") no-repeat;background-size: cover;width: 400px;height: 300px;margin: 215px auto;overflow: hidden;padding-top: 10px;line-height: 40px;
}
#password {margin-bottom: 5px;
}
h3 {color: #0babeab8;font-size: 24px;
}
hr {background-color: #444;margin: 20px auto;
}
a {text-decoration: none;color: #aaa;font-size: 15px;
}
a:hover {color: coral;
}
.el-button {width: 80%;margin-left: -50px;
}
</style>

注册界面【Register.vue】:注册界面与登录界面大部分类似,直接copy登录界面进行修改即可。实现输入邮箱规则校验,注册成功后跳转到登录界面

<template><div class="login clearfix"><div class="login-wrap"><el-row type="flex" justify="center"><el-form ref="loginForm" :model="user" status-icon label-width="80px"><h3>注册</h3><hr><el-form-item prop="username" label="用户名"><el-input v-model="user.username" placeholder="请输入用户名"></el-input></el-form-item><el-form-item prop="email" label="邮箱"><el-input v-model="user.email" placeholder="请输入邮箱"></el-input></el-form-item><el-form-item prop="password" label="设置密码"><el-input v-model="user.password" show-password placeholder="请输入密码"></el-input></el-form-item><el-form-item><el-button type="primary" icon @click="doRegister()">注册账号</el-button></el-form-item></el-form></el-row></div></div>
</template><script>
import axios from "axios";
export default {name: "login",data() {return {user: {username: "",email: "",password: ""},};},created() {// console.log($);// console.log("1111");},methods: {doRegister() {if (!this.user.username) {this.$message.error("请输入用户名!");return;} else if (!this.user.email) {this.$message.error("请输入邮箱!");return;} else if (this.user.email != null) {var reg = /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;if (!reg.test(this.user.email)) {this.$message.error("请输入有效的邮箱!");} else if (!this.user.password) {this.$message.error("请输入密码!");return;} else {// this.$router.push({ path: "/" }); //无需向后台提交数据,方便前台调试axios.post("/register/", {name: this.user.username,email: this.user.email,password: this.user.password}).then(res => {// console.log("输出response.data", res.data);// console.log("输出response.data.status", res.data.status);if (res.data.status === 200) {this.$router.push({ path: "/" });} else {alert("您输入的用户名已存在!");}});}}}}
};
</script><!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
.login {width: 100%;height: 740px;background: url("../assets/images/bg1.png") no-repeat;background-size: cover;overflow: hidden;
}
.login-wrap {background: url("../assets/images/login_bg.png") no-repeat;background-size: cover;width: 400px;height: 300px;margin: 215px auto;overflow: hidden;padding-top: 10px;line-height: 20px;
}h3 {color: #0babeab8;font-size: 24px;
}
hr {background-color: #444;margin: 20px auto;
}.el-button {width: 80%;margin-left: -50px;
}
</style>

挺简单的,就不分析代码了。