当前位置: 首页 > news >正文

【第18章】Vue实战篇之登录界面

文章目录

  • 前言
  • 一、数据绑定
    • 1. 数据绑定
    • 2. 数据清空
  • 二、表单校验
    • 1. 代码
    • 2. 展示
  • 三、登录
    • 1.登录按钮
    • 2.user.js
    • 3. login
  • 四、展示
  • 总结


前言

上一章完成用户注册,这一章主要做用户登录。


一、数据绑定

登录和注册使用相同的数据绑定

1. 数据绑定

<!-- 登录表单 -->
<el-form ref="loginFormRef" size="large" autocomplete="off" :model="registerData" v-else><el-form-item><h1>登录</h1></el-form-item><el-form-item><el-input :prefix-icon="User" placeholder="请输入用户名" v-model="registerData.username"></el-input></el-form-item><el-form-item><el-input name="password" :prefix-icon="Lock" type="password" placeholder="请输入密码" v-model="registerData.password"></el-input></el-form-item><el-form-item class="flex"><div class="flex"><el-checkbox>记住我</el-checkbox><el-link type="primary" :underline="false">忘记密码?</el-link></div></el-form-item><!-- 登录按钮 --><el-form-item><el-button class="button" type="primary" auto-insert-space>登录</el-button></el-form-item><el-form-item class="flex"><el-link type="info" :underline="false" @click="isRegister = true">注册 →</el-link></el-form-item>
</el-form>

2. 数据清空

当注册和登录切换时,清空数据

const clearRegisterData = () => {registerData.value = {username: '',password: '',rePassword: ''}
}<el-link type="info" :underline="false" @click="isRegister = false; clearRegisterData()">← 登录</el-link>
<el-link type="info" :underline="false" @click="isRegister = true; clearRegisterData()">注册 →</el-link>

二、表单校验

1. 代码

<!-- 登录表单 -->
<el-form ref="loginFormRef" size="large" autocomplete="off" :model="registerData" :rules="registerDataRules" v-else><el-form-item><h1>登录</h1></el-form-item><el-form-item prop="username"><el-input name="username" :prefix-icon="User" placeholder="请输入用户名" v-model="registerData.username"></el-input></el-form-item><el-form-item prop="password"><el-input name="password" :prefix-icon="Lock" type="password" placeholder="请输入密码"v-model="registerData.password"></el-input></el-form-item><el-form-item class="flex"><div class="flex"><el-checkbox>记住我</el-checkbox><el-link type="primary" :underline="false">忘记密码?</el-link></div></el-form-item><!-- 登录按钮 --><el-form-item><el-button class="button" type="primary" auto-insert-space>登录</el-button></el-form-item><el-form-item class="flex"><el-link type="info" :underline="false" @click="isRegister = true; clearRegisterData()">注册 →</el-link></el-form-item>
</el-form>

2. 展示

在这里插入图片描述

三、登录

1.登录按钮

<!-- 登录按钮 -->
<el-form-item><el-button class="button" type="primary" auto-insert-space @click="login">登录</el-button>
</el-form-item>

2.user.js

import request from '@/utils/request.js'export const registerService = (registerData)=>{var params = new URLSearchParams()for (let key in registerData) {params.append(key, registerData[key])}return request.post('/user/register', params)
}
export const loginService = (registerData)=>{var params = new URLSearchParams()for (let key in registerData) {params.append(key, registerData[key])}return request.post('/user/login', params)
}

3. login

import { registerService,loginService } from '@/api/user.js'const loginFormRef = ref(null)
const loginUser = async () => {let result = await loginService(registerData.value)let message = result.messageif (result.code == 0) {ElMessage.success(message ? message : '登录成功!')} else {ElMessage.error(message ? message : '登录失败!')}
}
const login = () => {if (!loginFormRef) returnloginFormRef.value.validate((valid) => {if (valid) {loginUser()}})
}

四、展示

在这里插入图片描述


总结

回到顶部

相关文章:

【第18章】Vue实战篇之登录界面

文章目录 前言一、数据绑定1. 数据绑定2. 数据清空 二、表单校验1. 代码2. 展示 三、登录1.登录按钮2.user.js3. login 四、展示总结 前言 上一章完成用户注册&#xff0c;这一章主要做用户登录。 一、数据绑定 登录和注册使用相同的数据绑定 1. 数据绑定 <!-- 登录表单 -…...

[C++]使用C++部署yolov10目标检测的tensorrt模型支持图片视频推理windows测试通过

【测试通过环境】 vs2019 cmake3.24.3 cuda11.7.1cudnn8.8.0 tensorrt8.6.1.6 opencv4.8.0 【部署步骤】 获取pt模型&#xff1a;https://github.com/THU-MIG/yolov10训练自己的模型或者直接使用yolov10官方预训练模型 下载源码&#xff1a;https://github.com/laugh12321/yol…...

分享uniapp + Springboot3+vue3小程序项目实战

分享uniapp Springboot3vue3小程序项目实战 经过10天敲代码&#xff0c;终于从零到项目测试完成&#xff0c;一个前后端分离的小程序实战项目学习完毕 时间从6月12日 到6月22日&#xff0c;具有程序开发基础&#xff0c;第一次写uniapp,Springboot以前用过&#xff0c;VUE3也…...

Ubuntu 24.04安装zabbix7.0.0图形中文乱码

当zabbix安装完成后&#xff0c;设置中文界面时&#xff0c;打开图形&#xff0c;中文内容会显示方框乱码&#xff0c;是因为服务器字体中没有相关的中文字体&#xff0c;需要更换。 1、找到中文字体&#xff0c;可以在网络上下载《得意黑》开源字体&#xff0c;也可以在windo…...

MybatisPlus 调用 原生SQL

方式一 DemoMapper.java Mapper public interface DemoMapper extends BaseMapper<TableConfig> {Update("${sql}")int createTable(Param("sql") String sql); }测试代码 SpringBootTest class DemoMapperTest {Resourceprivate DemoMapper demo…...

1.SG90

目录 一.实物图 二.原理图 三.简介 四.工作原理 一.实物图 二.原理图 三.简介 舵机&#xff08;英文叫Servo&#xff09;&#xff0c;是伺服电机的一种&#xff0c;伺服电机就是带有反馈环节的电机&#xff0c;这种电机可以进行精确的位置控制或者输出较高的扭矩。舵机…...

【yolov8语义分割】跑通:下载yolov8+预测图片+预测视频

1、下载yolov8到autodl上 git clone https://github.com/ultralytics/ultralytics 下载到Yolov8文件夹下面 另外&#xff1a;现在yolov8支持像包一样导入&#xff0c;pip install就可以 2、yolov8 语义分割文档 看官方文档&#xff1a;主页 -Ultralytics YOLO 文档 还能切…...

基于STM8系列单片机驱动74HC595驱动两个3位一体的数码管

1&#xff09;单片机/ARM硬件设计小知识&#xff0c;分享给将要学习或者正在学习单片机/ARM开发的同学。 2&#xff09;内容属于原创&#xff0c;若转载&#xff0c;请说明出处。 3&#xff09;提供相关问题有偿答疑和支持。 为了节省单片机MCU的IO口资源驱动6个数码管&…...

Jlink下载固件到RAM区

Jlink下载固件到RAM区 准备批处理搜索exe批处理读取bin数据解析调用jlink批处理准备jlink脚本 调用执行 环境&#xff1a;J-Flash V7.96g 平台&#xff1a;arm cortex-m3 准备批处理 搜索exe批处理 find_file.bat echo off:: 自动识别脚本名和路径 set "SCRIPT_DIR%~dp…...

Kotlin基础——Typeclass

高阶类型 如在Iterable新增泛型方法时 interface Iterable<T> {fun filter(p: (T) -> Boolean): Iterable<T>fun remove(p: (T) -> Boolean): Iterable<T> filter { x -> !p(x) } }对应的List、Set实现上述方法时仍需要返回具体的类型 interfac…...

DC-DC 高压降压、非隔离AC-DC、提供强大的动力,选择优质电源芯片-(昱灿)

畅享长续航&#xff0c;尽在我们的充电芯片&#xff01; 无论是手机、平板还是智能设备&#xff0c;长时间使用后电量不足总是令人头疼。然而&#xff0c;我们的充电芯片将为您带来全新的充电体验&#xff01;采用先进的技术&#xff0c;我们的充电芯片能够提供快速而稳定的充电…...

GPT-4o的视觉识别能力,将绕过所有登陆的图形验证码

知识星球&#x1f517;除了包含技术干货&#xff1a;《Java代码审计》《Web安全》《应急响应》《护网资料库》《网安面试指南》还包含了安全中常见的售前护网案例、售前方案、ppt等&#xff0c;同时也有面向学生的网络安全面试、护网面试等。 我们来看一下市面上常见的图形验证…...

【LinuxC语言】进程间的通信——管道

文章目录 前言不同进程间通信的方式管道匿名管道和命名管道半双工与全双工管道相关函数创建管道总结前言 在Linux操作系统中,进程是执行中的程序的实例。每个进程都有自己的地址空间,数据栈以及其他用于跟踪进程执行的辅助数据。操作系统管理这些进程,并通过调度算法来分享…...

CompletableFuture 基本用法

一、 CompletableFuture简介 CompletableFuture 是 Java 8 引入的一个功能强大的类&#xff0c;用于异步编程和并发处理。它提供了丰富的 API 来处理异步任务的结果&#xff0c;支持函数式编程风格&#xff0c;并允许通过链式调用组合多个异步操作。 二、CompletableFuture中…...

网页如何发布到服务器上

将网页发布到服务器上的过程涉及多个步骤&#xff0c;包括准备阶段、选择托管提供商、发布网站等。12 准备阶段&#xff1a; 确保在本地开发环境中对网站进行了充分的测试&#xff0c;包括功能测试、性能测试和安全测试。 检查Web.config文件&#xff0c;确保所有的配置设置…...

Jenkins简要说明

Jenkins 是一个开源的持续集成和持续部署&#xff08;CI/CD&#xff09;工具&#xff0c;广泛用于自动化软件开发过程中的构建、测试和部署等任务。它是基于Java开发的&#xff0c;因此可以在任何支持Java的平台上运行&#xff0c;并且能够与各种操作系统、开发工具和插件无缝集…...

C# 比较基础知识:最佳实践和技巧

以下是一些在 C# 中进行比较的技巧和窍门的概述。 1. 比较原始类型 对于原始类型&#xff08;int、double、char 等&#xff09;&#xff0c;可以使用标准比较运算符。 int a 5; int b 10; bool isEqual (a b); // false bool isGreater (a > b); // false bool is…...

Ansible 自动化运维实践

随着 IT 基础设施的复杂性不断增加&#xff0c;手动运维已无法满足现代企业对高效、可靠的 IT 运维需求。Ansible 作为一款开源的自动化运维工具&#xff0c;通过简洁易用的 YAML 语法和无代理&#xff08;agentless&#xff09;架构&#xff0c;极大简化了系统配置管理、应用部…...

红队攻防渗透技术实战流程:中间件安全:IISNGINXAPACHETOMCAT

红队攻防渗透实战 1. 中间件安全1.1 中间件-IIS-短文件&解析&蓝屏等1.2 中间件-Nginx-文件解析&命令执行等1.2.1 后缀解析 文件名解析1.2.2 cve_2021_23017 无EXP有POC1.2.3 cve_2017_7529 意义不大1.3 中间件-Apache-RCE&目录遍历&文件解析等1.3.1 cve_20…...

如何卸载宝塔面板?

宝塔官方有提供宝塔面板的卸载命令&#xff0c;使用这个卸载命令&#xff0c;我们就能将宝塔面板卸载掉。 这里有一点需要注意的&#xff0c;如果卸载宝塔面板的同时&#xff0c;也希望将 Nginx、MySQL、PHP 等组件卸载掉&#xff0c;那么我们应该先在宝塔面板里面卸载掉以上软…...

降AI方法选错了会有什么后果?这几个坑别踩

降AI方法选错了会有什么后果&#xff1f;这几个坑别踩 降AI率这件事&#xff0c;大部分同学觉得"无非就是降没降下来"&#xff0c;以为选错方法最多就是浪费点时间。 实际上&#xff0c;有几种后果比这更严重。 后果一&#xff1a;浪费宝贵时间&#xff0c;错过截止…...

掌握VESC Tool:从零到精通的电机控制调试指南

掌握VESC Tool&#xff1a;从零到精通的电机控制调试指南 【免费下载链接】vesc_tool The source code for VESC Tool. See vesc-project.com 项目地址: https://gitcode.com/gh_mirrors/ve/vesc_tool 想要轻松驾驭无刷电机&#xff0c;实现电动滑板、平衡车或机器人项目…...

为什么BaiduPCS-Web成为百度网盘下载的终极解决方案?

为什么BaiduPCS-Web成为百度网盘下载的终极解决方案&#xff1f; 【免费下载链接】baidupcs-web 项目地址: https://gitcode.com/gh_mirrors/ba/baidupcs-web 你是否曾经面对百度网盘几十KB/s的下载速度感到绝望&#xff1f;当重要的文件需要下载&#xff0c;而进度条却…...

告别MoveIt!用Pinocchio、OMPL和Ruckig手搓一个轻量级机械臂规划模块(附完整C++代码)

轻量级机械臂规划模块&#xff1a;Pinocchio、OMPL与Ruckig的黄金组合 在机器人开发领域&#xff0c;机械臂的运动规划一直是核心挑战之一。传统ROS生态中的MoveIt框架虽然功能全面&#xff0c;但其重型架构和高耦合性往往成为追求高性能和灵活性的开发者的桎梏。本文将带你探索…...

提升前端开发效率:用快马AI一键生成可复用模态框组件

最近在重构公司后台管理系统时&#xff0c;发现项目中到处散落着不同风格的模态框代码。每次新增功能都要重复写遮罩层逻辑、动画效果和关闭事件&#xff0c;不仅效率低下&#xff0c;还容易产生样式冲突。于是尝试用InsCode(快马)平台的AI生成功能&#xff0c;意外发现它能快速…...

小白也能玩转Qwen3-TTS:一键部署多语言语音生成,实测效果惊艳

小白也能玩转Qwen3-TTS&#xff1a;一键部署多语言语音生成&#xff0c;实测效果惊艳 1. 为什么选择Qwen3-TTS 作为一个语音生成领域的从业者&#xff0c;我测试过市面上大多数TTS&#xff08;文本转语音&#xff09;模型&#xff0c;Qwen3-TTS-12Hz-1.7B-VoiceDesign给我留下…...

利用快马平台快速生成基于jdk17的spring boot应用原型

最近在尝试用JDK17搭建一个Spring Boot项目原型时&#xff0c;发现从环境配置到基础代码编写要花不少时间。正好试用了InsCode(快马)平台&#xff0c;发现它能快速生成可运行的项目骨架&#xff0c;特别适合需要快速验证想法的场景。这里记录下具体操作和体验&#xff1a; 项目…...

微信视频号直播数据捕获技术:从原理到实践的全方位解析

微信视频号直播数据捕获技术&#xff1a;从原理到实践的全方位解析 【免费下载链接】wxlivespy 微信视频号直播间弹幕信息抓取工具 项目地址: https://gitcode.com/gh_mirrors/wx/wxlivespy 一、技术原理&#xff1a;构建实时数据捕获的核心引擎 1.1 三层数据处理架构&…...

seo推广团队如何进行信息流推广

SEO推广团队如何进行信息流推广 在当今数字化时代&#xff0c;信息流推广已成为各大品牌和企业提升知名度、吸引客户的重要手段。信息流推广通过社交媒体、新闻门户网站和其他内容平台&#xff0c;将高质量的信息推送给目标用户&#xff0c;达到品牌曝光和销售转化的目的。SEO…...

ai赋能c语言开发:让快马平台自动生成文件io与链表管理代码

AI赋能C语言开发&#xff1a;让快马平台自动生成文件IO与链表管理代码 最近在做一个C语言的通讯录管理系统项目&#xff0c;需要实现联系人信息的增删改查功能&#xff0c;并且要求数据能够持久化保存。作为一个有经验的开发者&#xff0c;我决定尝试用InsCode(快马)平台的AI辅…...