vue2+element-ui登录注册

目录

1.登录数据绑定

2.登录校验

3.登录重置项

4.登录预验证(调用vaildate)

 5.登录组件弹窗提示(message)

6.登录成功后进行跳转

7.路由导航守卫控制访问权限

8.退出登录


1.登录数据绑定

<el-form :model="loginForm">
   <el-form-item>
      <el-input v-model="loginForm.username></el-input>
   </el-form-item>
   <el-form-item>
      <el-input v-model="loginForm.password type="password"></el-input>
   </el-form-item>
</el-form>

1.利用:model数据绑定 将loginForm数据对象绑定到el-form,
  利用v-model双向数据绑定把input框和数据对象具体的属性进行绑定
2.:model 和v-model
v-model用于表单控件以外的标签是不起作用的
:model是v-bind:model的缩写,除引用类型外 都是单向数据传递,父组件传递到了子组件。
      引用类型(function ,array, object ):子组件改变引用类型的数据,父组件也会改变。
3.利用type="password"将文本框中的密码进行隐藏处理

2.登录校验

1)el-form绑定属性rules绑定对应的校验规则对象

<el-form :rules="loginFormRules"></el-form>

2)定义校验规则的属性

loginFormRules:{
   username:[
     {required:true,message:'请输入登录名称',trigger:'blur'},
     {min:3,max:10,message:'长度在3-10个字符',trigger:'blur'}
],
   password:[
     {required:true,message:'请输入登录密码',trigger:'blur'},
     {min:8,max:15,message:'长度在8-15个字符',trigger:'blur'}
]
}

3)对表单项el-form-item通过prop指定不同的校验规则

<el-form-item prop="username"></el-form-item>

3.登录重置项

1)为el-form表单添加ref引用

<el-form ref="loginFormRef"></el-form>
//比如此处举例ref值为loginFormRef,其为组件的实例对象

2)编写重置方法(调用resetFileds)

resetFields方法对整个表单进行重置,将所有字段值重置为初始值并移除校验效果

methods(){

resetLoginForm(){

this.refs.loginFormRef.resetFields();

}}

3)为重置按钮绑定单击事件

<el-button @click=resetLoginForm>重置</el-button>

4.登录预验证(调用vaildate)

1)为el-form表单添加ref引用

2)使用valdate编写login方法

//编写login方法
login(){
this.refs.loginFormRef.validate(async (valid)=>{
console.log(valid)//表单验证结果布尔值true false
if(!valid) return;
                                     //请求地址  请求参数
const {data:res} = await this.$http.post('login',this.loginForm)
if(res.meta.status !== 200) return this.$message.error('登录失败')
//console.log('登陆成功')
this.$message.success('登陆成功')
})}

3)为登录按钮绑定单击事件 

<el-button @click=login>登录</el-button>

第一步:导包

import axios from 'axios'

配置请求根路径

aixos.default.baseURL = 'http://127.0.0.1:8080/api/'

第二步:把aixos包挂载到vue的原型对象上

vue.prototype.$http = aixos

 5.登录组件弹窗提示(message)

plugins->element.js文件下

引入

import {message} from'element-ui'

全局挂载

Vue.prototype.$message = Message

在方法中使用message取代console.log

//编写login方法
login(){
this.refs.loginFormRef.validate(async (valid)=>{
console.log(valid)//表单验证结果布尔值true false
if(!valid) return;
                                     //请求地址  请求参数
const {data:res} = await this.$http.post('login',this.loginForm)
//if(res.meta.status !== 200) return console.log('登录失败')
if(res.meta.status !== 200) return this.$message.error('登录失败')
//console.log('登陆成功')
this.$message.success('登陆成功')
})}

6.登录成功后进行跳转

1、将登录成功后的token保存到客户端的【sessionStorage】

     项目中出现了登录以外的其他api接口,必须登录成功之后才可以访问

     token只能在当前网站打开期间生效,所以token保存在sessionStorage中

window.sessionStorage.setItem("token",res.data.token)

2)通过编程式导航跳转到后台主页,路由地址是/home

this.$router.push('/home')

7.路由导航守卫控制访问权限

若用户没有登录,但是通过url访问特定页面时,需要重新导航到登录页面

为路由对象,添加beforeEach 导航守卫

to 将要访问路径

from 从哪个路径跳转而来

next()放行  

next('/login')强制跳转
router.beforeEach((to,from,next)=>{}

const router = new router({
routes:[
{path:'/',redirect:'/login'},
{path:'/login',component:Login}
]
})
//挂载路由导航守卫
router.beforeEach((to,from,next)=>{

  //如果用户访问的登录页,直接放行

 if(to.path ==='/login') return next()

  //从sessionStorage中获取到 保存的token值

const tokenStr = window.sessionStorage.getItem('token')

  //没有token,强制跳转到登录页

if(!tokenStr) return next('/login')
//否则 可以直接放行
next()

//对外暴露
export default router
})

8.退出登录

基于token的方式实现退出:销毁本地的token

<el-button @click="logout">退出</el-button>
methods:{
  logout(){
windoe.sessionStorage.clear();
this.$router.push("/login");
}}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3 是一种流行的JavaScript 框架,用于构建用户界面。它具有许多强大的功能,可帮助我们开发出高效、可重用的代码。Element Plus 是一个非常受欢迎的基于Vue 3的UI组件库,它提供了丰富的UI组件,可以帮助我们快速构建漂亮且功能丰富的网页应用程序。 在Vue 3和Element Plus的结合中,代码自动生成是一个非常重要的功能。它可以减少开发人员手动编写重复代码的时间和努力。 对于代码自动生成,一种常见的方法是使用Vue CLI。我们可以使用Vue CLI创建一个基本的Vue 3项目,并选择Element Plus作为UI组件库。然后,我们可以使用Vue CLI提供的命令行工具来自动生成一些常用的代码模板。例如,我们可以使用命令来生成一个基本的表格页面,其中包含了Element Plus的表格组件和一些常见的数据操作功能,如增删改查等。这样,我们就不需要手动编写这些重复的代码,而是可以通过命令行工具自动生成。 另外,有一些第三方工具和插件可以帮助我们实现更高级的代码自动生成功能。例如,可以使用vue-element-admin这个开源项目,它提供了一个功能强大的后台管理系统模板,集成了Vue 3和Element Plus,同时还提供了许多常用的业务组件和页面模板。我们可以基于vue-element-admin进行二次开发,根据自己的业务需求来生成特定的代码模板。 总而言之,Vue 3和Element Plus的结合为我们提供了丰富的代码自动生成功能。无论是使用Vue CLI还是借助第三方工具和插件,我们都可以通过代码自动生成来提高开发效率,减少重复劳动。这将使我们能够更快地构建出高质量的Vue 3和Element Plus应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值