基于vue-注册登录页面

本文应用Vue3+Element-Plus+Ts构建登录注册页面

一、Vue-cli项目搭建

引用其他博主这里就不过多赘述,详情:Vue(二):Vue3安装_zhouym_的博客-CSDN博客_安装vue3

二、在components下新建InputGroup.vue,LoginForm.vue,RegisterForm.vue。views同样新建404.vue,forgotPassword.vue,LoginRegister.vue。

 三、router里面的路由都是根据views下的vue文件来创建(本文都是一级路由)

路由守卫:router.beforEach(to,next,from)=>{},用于保护路由的跳转,比如得到后端的确认验证后即可跳转至对应跳转页面路由。反之,则固定在本设定路由之下。

import { createRouter, createWebHashHistory, RouteRecordRaw, } from 'vue-router'
import HomeView from '../views/HomeView.vue'

const routes: Array<RouteRecordRaw> = [
  {
    path: '/',
    name: 'home',
    component: HomeView
  },
  {
    path: '/:catchAll(.*)',  //找到所有没有的路由 正则表达
    name: '/404',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import( '../views/404.vue')
  },
  {
    path: '/loginregister',
    name: 'loginregister',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import( '../views/LoginRegister.vue')
  },
  {
    path: '/forgotPassword',
    name: 'forgotPassword',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import( '../views/forgotPassword.vue')
  },
]

const router = createRouter({
  history: createWebHashHistory(),
  routes
})
//路由守卫
// router.beforeEach((to,from,next)=>{
//   const isLogin=localStorage.ele_login?true:false;
//   if (to.path=='/login'){
//     next();
//   }else {
//     //是否在登陆状态下
//     isLogin?next(): next('/login')
//   }

// })

export default router

四、对组件下的页面进行设计

InputGroup.vue

<template>
    <div class="text_group">
        <!--组件结构-->

        <!--组件容器-->
        <div class="input_group" :class="{'is-invalid':error}">
            
            <!-- 输入框 -->
            <input :type="type" 
            :value="value" 
            :placeholder="placeholder" 
            :name="name" 
            @input="$emit('input',$event.target.value)">
        
        <!-- 输入框后面的按钮 -->
        <button v-if="btnTitle" :disabled="disabled" @click="$emit('btnClick')">{
  {btnTitle}}</button>
        </div>
        <!-- 错误提醒 -->
            <div v-if="error" class="invalid-feedback">{
  {error}}</div>
        

    </div>
    
</template>

<script>
export default {
    name:"inputgroup",
    props:{  //属性,组件中自定义设置的组件
        type:{
            type:String,
            default:"text"
        },
        value:String,
        palceholder:String,
        name:String,
        btnTitle:String, //按钮里面的文字
        disabled:Boolean, //是否让当前按钮可用
        error:String
    }
}
</script>



<style  scoped> /* 限制scoped范围 */


.input_group{
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 10px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}
.input_group input{
    height: 100%;
    width: 60%;
    outline: none;
}
.input_group button{
    border:none;
    outline:none;
    background: #fff;
}
.input_group button[disabled]{
    color:red;
}
.is-invalid{
    border:1px solid red;
}
.invalid-feedback{
    color: red;
    padding-top: 5px;
}
    
</style>

LoginForm.vue

<template>
     <el-form 
    ref="loginForm"
    :model="loginUser" 
    :rules="rules"
    label
  • 2
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 基于vue-admin-template的注册页面的代码如下:<template> <div> <form class="login-form"> <h2>注册</h2> <el-input v-model="form.username" placeholder="用户名"></el-input> <el-input v-model="form.password" type="password" placeholder="密码"></el-input> <el-input v-model="form.confirmPwd" type="password" placeholder="确认密码"></el-input> <el-button type="primary" @click="handleRegister">注册</el-button> </form> </div> </template> <script> export default { data() { return { form: { username: '', password: '', confirmPwd: '' } } }, methods: { handleRegister() { // 校验密码是否输入一致 if (this.form.password !== this.form.confirmPwd) { this.$message.error('两次输入的密码不一致!'); return; } // 提交注册请求 this.$http.post('/register', this.form).then(res => { if (res.data.errcode === 0) { this.$message.success('注册成功,请登录!'); // 跳转到登录页面 this.$router.push('/login'); } }); } } } </script> ### 回答2: 基于vue-admin-template的注册页面可以采用以下步骤: 1. 首先,创建一个名为Register.vue的新组件,并在该组件中导入所需的库和样式。确保已经安装了Vue.js和vue-router,并使用单文件组件的方式编写注册页面。 2. 在模板中,创建一个表单元素用于注册用户。可以使用Element UI库中提供的表单组件,如el-form和el-form-item,以及el-input用于输入用户信息。可以根据项目的需求,添加所需的表单字段,如用户名、密码、电子邮件等。 3. 在注册页面中,定义一些表单校验规则以确保用户输入的有效性。可以使用Element UI的表单验证规则,如required、email等。在el-form-item的属性中添加rules属性,并设置相应的验证规则。 4. 在data中定义一些响应式数据,如用户名、密码、电子邮件等。通过v-model指令将表单元素绑定到这些数据上。 5. 创建一个按钮,用于提交表单。使用el-button组件,并绑定一个点击事件,例如handleSubmit方法。在handleSubmit方法中,可以进行表单验证,确保所有的输入都有效。如果验证通过,可以向服务器发送注册请求,并根据响应结果进行相应的处理。 6. 在样式部分,可以利用Vue.js和Element UI提供的class来美化注册页面的外观。根据项目的需求,可以自定义一些样式来满足UI设计的要求。 7. 最后,在路由配置中,将Register.vue组件添加到适当的位置,以便在需要时跳转到注册页面。 以上是基于vue-admin-template的注册页面的简要步骤,可以根据具体需求进行适当的修改和补充。 ### 回答3: 基于vue-admin-template的注册页面可以通过以下步骤实现: 1. 导入所需的组件和库。在注册页面的.vue文件中,首先需要导入VueVue Router和Element UI等库,并引入所需的组件。 2. 设计注册表单。使用Element UI的表单组件,可以设计出包括用户名、密码和确认密码等字段的注册表单。 3. 表单验证。使用Element UI的表单验证规则,对用户名和密码进行格式验证,确保输入的数据符合要求。 4. 注册逻辑。在点击注册按钮时,需要编写注册函数。该函数会将用户名、密码等信息发送给后端服务,进行注册操作。 5. 前端数据校验。在前端进行再次校验,确保用户名不重复等限制条件。 6. 弹出提示框。根据后端返回的结果,在注册成功或失败时,弹出相应的提示框,告知用户注册结果。 7. 跳转到登录页面。在注册成功后,可以通过编程式路由跳转到登录页面,方便用户进行登录操作。 8. 编写样式。通过CSS样式对注册页面进行美化,使其更符合实际项目的需求。 以上是基于vue-admin-template的注册页面的基本步骤和逻辑。根据实际项目的需求,你还可以根据自己的设计和功能要求进行更多的定制和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值