返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue项目实现登陆注册效果
  • 495
分享到

vue项目实现登陆注册效果

2024-04-02 19:04:59 495人浏览 独家记忆
摘要

本文实例为大家分享了Vue项目实现登陆注册效果的具体代码,供大家参考,具体内容如下 主要内容 本章目标:vue+element-ui完成注册以及登陆 1.效果展示 2.视图页面:

本文实例为大家分享了Vue项目实现登陆注册效果的具体代码,供大家参考,具体内容如下

主要内容

本章目标:vue+element-ui完成注册以及登陆

1.效果展示

2.视图页面:views

注册页面效果实现:


<template>
  <div class="login-section">
    <!-- :rules="rules" -->
    <el-fORM label-position="top" label-width="100px" class="demo-ruleForm" :rules="rules" :model="rulesForm" status-icon ref='ruleForm'>
      <el-form-item label="用户名" prop="name">
        <el-input type="text" v-model="rulesForm.name"></el-input>
      </el-form-item>
      <el-form-item label="密码" prop="passWord">
        <el-input type="password" v-model="rulesForm.password"></el-input>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button>
        <el-button>重置</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>
<script>
import {login} from '@/service/api';
export default {
  data() {
    return {
      rulesForm:{
        name:'',
        password:''
      },
      rules:{
        name:[
            {required:true,message:'名字没写',trigger:'blur'},
            {min:1,max:5,message:'长度在3到5位'}
        ],
         password:[
            {required:true,message:'名字没写',trigger:'blur'},
            {min:3,max:5,message:'长度在3到5位'}
        ]
      }
    };
  },
  methods: {
    submitForm(formName){
      this.$refs[formName].validate((valid)=>{
        if(valid){//如果校检通过向后端发送用户名 密码
            login({
              name:this.rulesForm.name,
              password:this.rulesForm.password
            }).then((data)=>{
                console.log(data)
                if(data.code===0){
                  localStorage.setItem('token',data.data.token)
                  window.location.href='/'
                }
                if(data.code===1){
                  this.$message.error(data.mes)
                }
            })
        }else{
          console.log('error submit!!');
          return false;
        }
      })
    }
  }
}
</script>
<style lang="stylus">
.login-section
  padding 0px 20px
</style>

login.vue


<template>
  <div class="login-section">
    <el-form label-position="top" label-width="100px" class="demo-ruleForm" :rules="rules" :model="rulesForm" status-icon ref='ruleForm'>
      <el-form-item label="用户名" prop="name">
        <el-input type="text" v-model="rulesForm.name"></el-input>
      </el-form-item>
      <el-form-item label="密码" prop="password">
        <el-input type="password" v-model="rulesForm.password"></el-input>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button>
        <el-button>重置</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>
<script>
import {login} from '@/service/api';
export default {
  data() {
    return {
      rulesForm:{
        name:'',
        password:''
      },
      rules:{
        name:[
            {required:true,message:'名字没写',trigger:'blur'},
            {min:1,max:5,message:'长度在3到5位'}
        ],
         password:[
            {required:true,message:'名字没写',trigger:'blur'},
            {min:3,max:5,message:'长度在3到5位'}
        ]
      }
    };
  },
  methods: {
    submitForm(formName){
      this.$refs[formName].validate((valid)=>{
        if(valid){//如果校检通过向后端发送用户名 密码
            login({
              name:this.rulesForm.name,
              password:this.rulesForm.password
            }).then((data)=>{
                console.log(data)
                if(data.code===0){
                  localStorage.setItem('token',data.data.token)
                  window.location.href='/'
                }
                if(data.code===1){
                  this.$message.error(data.mes)
                }
            })
        }else{
          console.log('error submit!!');
          return false;
        }
      })
    }
  }
}
</script>
<style lang="stylus">
.login-section
  padding 0px 20px
</style>

路由:index.js


import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
import Store from '@/store'
import {userInfo} from '@/service/api.js'
import Home from '@/views/home/Home.vue'
import Login from '@/views/user-login/index.vue'
const router = new Router({
    mode:"history",
    routes:[
        {
            path:'/',
            name:"Home",
            title:"首页",
            component:Home
        },
        {
            path:'/login',
            name:"login",
            title:"登录页",
            component:Login,
            meta:{
                login:true
            }
        }
    ]
});
router.beforeEach( async (to,from,next) => {
    const token = localStorage.getItem('token');
    const isLogin = !!token;
    //进入路由的时候,需要向后端发送token,验证是否合法
    const data = await userInfo();
    Store.commit('chageUserInfo',data.data)
   if(to.matched.some(item => item.meta.login)){//需要登录
        if(isLogin){//已经登录的,直接通过
            if(data.error === 400){//后端告诉你,登录不成功
                next({name:'login'});
                localStorage.removeItem('token');
                return;
            }
            if(to.name === 'login'){
                next({name:'home'});
            }else{
                next();
            }
            return;
        }
        if(!isLogin && to.name === 'login'){//未登录,但是要去登录页
            next();
        }
        if(!isLogin && to.name !== 'login'){//未登录,去的也不是登录页
            next({name:'login'});
        }
   }else{
       next();
   }
})
export default router;

总结

今天的内容就先到这里,因为还有一些没完善所以不是很好,后面再继续改进!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: vue项目实现登陆注册效果

本文链接: https://lsjlt.com/news/136693.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue项目实现登陆注册效果
    本文实例为大家分享了vue项目实现登陆注册效果的具体代码,供大家参考,具体内容如下 主要内容 本章目标:vue+element-ui完成注册以及登陆 1.效果展示 2.视图页面:...
    99+
    2024-04-02
  • VUE实现注册与登录效果
    本文实例为大家分享了VUE实现注册与登录效果的具体代码,供大家参考,具体内容如下 1.效果展示 2.注册效果实现 <template> <div clas...
    99+
    2024-04-02
  • 用vue实现注册页效果 vue实现短信验证码登录
    本文实例为大家分享了vue实现注册页效果 的具体代码,供大家参考,具体内容如下 一、实现效果图    二、实现代码 1、实现头部 <template> <d...
    99+
    2024-04-02
  • vue项目实现分页效果
    vue项目中实现分页效果,供大家参考,具体内容如下 1.这里我们使用element-ui来实现,先使用npm安装 npm i element-ui -S 2.在main.js中...
    99+
    2024-04-02
  • Node.js实现登陆注册功能
    本文实例为大家分享了Node.js实现登陆注册的具体代码,供大家参考,具体内容如下 1.服务器端 在项目里创建一个json文件用来存储数据,通过express创建服务器对象,fs模块...
    99+
    2024-04-02
  • 怎么用vue实现注册页效果
    本篇内容介绍了“怎么用vue实现注册页效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、实现效果图  二、实现代码1...
    99+
    2023-06-25
  • Flask登录注册项目的简单实现
    本文主要介绍了Flask登录注册项目的简单实现,分享给大家,具体如下: 目录结构 配置文件设计 /templates/config.py #数据库连接配置 import p...
    99+
    2024-04-02
  • js实现登陆与注册功能
    本文实例为大家分享了js实现登陆与注册功能的具体代码,供大家参考,具体内容如下 1、首先在phpstudy文件中寻找到一个文件名叫 “www” 的文件  在里面创建html...
    99+
    2024-04-02
  • springboot+VUE实现登录注册
    本文实例为大家分享了springboot+VUE实现登录注册的具体代码,供大家参考,具体内容如下 一、springBoot 创建springBoot项目 分为三个包,分别为contr...
    99+
    2024-04-02
  • 怎么使用vue cli实现项目登陆页面
    这篇文章主要介绍“怎么使用vue cli实现项目登陆页面”,在日常操作中,相信很多人在怎么使用vue cli实现项目登陆页面问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用vue&n...
    99+
    2023-07-04
  • Android安卓实战项目---登陆注册页面(源码在文末)
    Android安卓实战项目---登陆注册页面(源码在文末🐕🐕🐕) 一.项目运行介绍 效果图: 二.具体实现 LoginActivity.java LoginActivity.ja...
    99+
    2023-10-26
    android android studio java
  • SpringBoot实现简单的登录注册的项目实战
    目录第一步:建立简单的项目第二步:建一个简单的数据表第三步:配置文件如下:第一步:建立简单的项目 第二步:建一个简单的数据表 第三步:配置文件如下: pom.xml文件配置:...
    99+
    2024-04-02
  • vue怎么实现注册登录
    今天小编给大家分享一下vue怎么实现注册登录的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。关于npm安装速度慢或不成功使用淘...
    99+
    2023-07-04
  • 使用Flask怎么实现一个登录注册项目
    使用Flask怎么实现一个登录注册项目?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。目录结构配置文件设计/templates/config.py#数据库连接配置...
    99+
    2023-06-15
  • C#实现注册码注册机制效果详解
    目录实践过程效果代码实践过程 效果 代码 public partial class frmMain : Form { public frmMain() { ...
    99+
    2023-01-03
    C#软件注册码 C#注册码 C#注册
  • springboot+VUE如何实现登录注册
    这篇文章主要介绍springboot+VUE如何实现登录注册,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、springBoot创建springBoot项目分为三个包,分别为controller,service, ...
    99+
    2023-06-15
  • Vue+MySQL实现登录注册案例
    Vue+MySQL实现登录注册案例 1.新建vue项目并连接数据库 具体步骤见vue连接mysql数据库 2.新建登录页面、注册页面和首页 在src/views文件夹下,新建 login.vue(登录...
    99+
    2023-09-03
    mysql vue.js 前端
  • php如何实现简单注册登陆系统
    今天小编给大家分享一下php如何实现简单注册登陆系统的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、注册系统1、需求分析在...
    99+
    2023-07-05
  • Flask + MySQL如何实现用户注册,登录和登出的项目实践
    目录一、实战场景二、主要知识点三、菜鸟实战四、运行结果一、实战场景 Flask 框架实现用户的注册,登录和登出。 二、主要知识点 flask_login 插件使用SQLAlchemy...
    99+
    2024-04-02
  • SpringBoot实现网站的登陆注册逻辑记录
    目录技术列表:用户登录逻辑:用户注册逻辑:参考文献:总结该文章主要是为了整理之前学习项目中的知识点,并进行一定程度的理解。 技术列表: SpringBoot MyS...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作