Vue学习(五)登陆页面之重置和发起登陆请求及弹窗提示

2023-11-20

Vue学习(五)登陆页面之重置和发起登陆请求及弹窗提示

表单重置

直接调用element ui给我们写好的函数就可以了。
在这里插入图片描述
获取当前表单的实例对象,通过这个实例对象,调用给出的重置函数。
首先确认当前表单有实例对象

 <el-form ref="loginref"

接下来在重置按钮绑定一个事件

<el-button type="info" @click="reset">重置</el-button>

接下来在行为区找到method节点,编写这个事件函数,通过this找到refs然后指向本实例对象,调用重置函数。

reset () {   
   this.$refs.loginref.resetFields()    
}
`

运行
重置前
在这里插入图片描述
重置后,恢复默认
在这里插入图片描述

根据预验证结果决定是否发出登陆请求

编写代码

首先当预验证结果不为True时,直接返回。

if(!valid) return;

验证为True时,发出请求,需要引用包,所以在入口文件main.js中

import axios from 'axios'

引入后把这个包挂载到Vue的原型对象上,这样的话,每一个Vue的组件都可以通过this直接访问到http,从而发起AJAX请求。

Vue.prototype.$http = axios

接下来尽量为axios配置请求的根路径,地址为后端接口所在文件夹

axios.defaults.baseURL = 'http://127.0.0.1:8888/api/private/v1/'

完整的引入axios代码

// 引入包
import axios from 'axios'
// 配置请求的根路径
axios.defaults.baseURL = 'http://127.0.0.1:8888/api/private/v1/'
Vue.prototype.$http = axios

接下来返回登陆函数继续编写预验证成功时的行为。通过this访问原型的http,发起post请求,请求地址为login(查看自己后台可知),请求时携带的参数可以直接用之前的loginform。

this.$http.post('login',this.loginform);

现在的login代码

login () {   
   this.$refs.loginref.validate((valid) => {        
     // console.log(valid)        
     if (!valid) return;        
     this.$http.post('login',this.loginform);      
 })

接下来我们准备运行了,但如果要访问api接口,得保证api服务器处于运行状态。

启动api服务器

首先启动mysql
在这里插入图片描述
然后找到后端文件夹,运行app.js。代开powershell窗口输入命令启动服务器
在这里插入图片描述
接下来再写接收的代码

login () {    
  this.$refs.loginref.validate((valid) => {       
   // console.log(valid)        
   if (!valid) return        
   const result = this.$http.post('login', this.loginform)        
   console.log(result)      
   })    
}

运行结果,输入账号密码后,会返回一个promise对象。
在这里插入图片描述我们需要简化一下promise对象,可以用async,await简化。(await只能用在async修饰的方法中)

login () {    
  this.$refs.loginref.validate(async valid => {       
   // console.log(valid)        
   if (!valid) return        
   const result = await this.$http.post('login', this.loginform)        
   console.log(result)      
   })    
}

再次运行,会获取一个简化后具体对象数据
在这里插入图片描述
该对象共有6个属性,都是axios帮我们封装好的,**其中data是服务器返回的真实数据,我们只需要关注这个属性。**所以我们可以从这个对象上直接将data解构赋值出来。

const { data: res } = await this.$http.post('login', this.loginform)        
console.log(res)

再次运行
在这里插入图片描述
可以看到,用户不存在,状态码为400,说明登陆失败。当状态码为200时,登陆是成功的。所以可以根据状态码来给用户返回相应信息。

if (res.meta.status !== 200) return console.log('用户名或密码错误')        
console.log('登陆成功')

运行
在这里插入图片描述

弹窗提示

上面的提示我们都是使用的console,用户无法看到。所以我们可以用element ui中提供的组件来进行弹窗提示。
在这里插入图片描述
首先要在plugins下的elements.js中引入需要的组件元素Message。

import { Button, Form, FormItem, Input, Message } from 'element-ui'

它的配置方式与之前的不太一样,需要进行全局挂载。将弹窗组件挂载到Vue的原型对象上,这样每一个组件都可以通过this访问到$message,从而进行弹窗提示。

Vue.prototype.$message = Message

然后根据官网给的样例,来修改我们的代码。

if (res.meta.status !== 200) return this.$message.error('账号或密码错误')        
this.$message.success('登陆成功')

保存后运行
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue学习(五)登陆页面之重置和发起登陆请求及弹窗提示 的相关文章

  • 看懂2020年智能浪潮,我们从百度和谷歌的AI足迹出发

    2020年已经过去 无论我们过得顺遂平安 还是过得无比艰难 我们应该都会记住这一年 回顾2020年 在这个不同寻常的疫情之年 科技成为人类抗击疫情的关键 而人工智能技术投入抗疫战争之中 可以说是人类有史以来的第一次 而与此同时 AI技术已经
  • [Note ]B站翼王10TB和100TB FreeNas硬件笔记以及配置

    BV18W411f7u9 DIY一台高性能的MINI ITX文件服务器 还要能使用万兆网络 BV1qE411672a 年轻人的第一台自己组装的100TB 容量的文件服务器 准备自己在家里搭Nas 家里人的手机存储也经常不够 自己也对硬件特别
  • SCSI、ISCSI、iSER、NVMe、NVMe-oF、NVMe-oF over RDMA

    在存储系统中 上层协议可以泛指 指令 也就是比如 读出从某某开始的多少长度的扇区 指令包含三大关键信息 1 操作码 Opreation Code 或称为OP code 比如write read等等 2 起始地址 从哪里开始读 如果是文件的话

随机推荐

  • 利用Redis实现分布式全局唯一ID

    Component public class RedisIdWorker 开始时间戳 private static final long BEGIN TIMESTAMP 1640995200L 序列号的位数 private static f
  • windows或者任何系统通过二进制安装最新的Protocol Buffer Compiler

    此处使用二进制法安装 适用于任何操作系统 安装预编译的二进制文件 任何操作系统 要从预编译的二进制文件安装最新版本的协议编译器 请按照以下说明操作 1 从 github com google protobuf releases 手动下载与您
  • 组合型模式

    概述 对于这个图片肯定会非常熟悉 上图我们可以看做是一个文件系统 对于这样的结构我们称之为树形结构 在树形结构中可以通过调用某个方法来遍历整个树 当我们找到某个叶子节点后 就可以对叶子节点进行相关的操作 可以将这颗树理解成一个大的容器 容器
  • Python 房价预测 kaggle 线性回归 SVM 神经网络 随机森林 集成模型

    摘要 现如今房产成为大多数家庭总资产中占比最大的一部分 也成为国人投资的重要渠道 研究和预测房产价格对我国人民和宏观经济发展都有重要价值 本文对包含房产各项基本信息及价格的数据进行处理 利用包括线性回归 核岭回归 支持向量回归 神经网络 决
  • C、C++ 中\n、\t、\r的具体用法功能

    简单介绍 n 表示换行操作 光标会移动到下一行 next line t 表示水平制表空行操作 相当于Tab键 不会换行 r 相当于回车 相当于光标回到本行首位置 不会换行 用法实例演示 我们以一个9x9乘法表C 具体代码为例 演示一个三个的
  • 使用七牛云进行文件上传

    目录 一 七牛云入门测试 1 注册七牛云账号 完成后选择对象存储 2 在里面创建空间 一个空间相当于一个文件夹 就是将对象上传到的地方 3 查看个人秘钥 注册完成账号后 会有一个秘钥 上传文件的时候进行授权和认证 4 文件上传测试 二 封装
  • 汇编程序设计与计算机体系结构软件工程师教程笔记:汇编语法基础知识

    汇编程序设计与计算机体系结构 软件工程师教程 这本书是由Brain R Hall和Kevin J Slonka著 由爱飞翔译 中文版是2019年出版的 个人感觉这本书真不错 书中介绍了三种汇编器GAS NASM MASM异同 全部示例代码都
  • 2021.10.04 task9 react-hardhat

    2021 10 04 主要根据dapp learning的教程在学习 在学习task 9 hardhat react 的部分 区块链项目大部分用的都是 react 所以了解 react的基本机制也很重要 今天着重学习了react react
  • 测试报告和结果分析 —— allure整合pytest生成测试报告

    一 生成HTML测试报告的三种方式 1 unittest和HTMLTestRunner整合 2 allure和pytest整合 3 Jenkins中安装allure插件 Jenkins安装插件出错 不能正常使用 二 allure整合pyte
  • 知识图谱:语义网络、语义网、链接数据、知识图谱

    0 发展历程 1 语义网络 Semantic Networks 语义网络是由Quillian于上世纪60年代提出的知识表达模式 其用相互连接的节点和边来表示知识 节点表示对象 概念 边表示节点之间的关系 语义网络的优点 1 容易理解和展示
  • ubuntu系统中jupyterhub安装R内核集成rstudio

    需求 最后公司需要将原来用的Jupyter单用户版本改成Jupyterhub多用户版本 方便公司统一管理用户 并且因为平时工作会用到python和R的IDE 正好Jupyterhub可以满足需求 网上搜了很多 基本是三种方式 一种是通过k8
  • 公司后台管理系统搭建(Vue3+Vite+Element Plus+TypeScript+Pinia)

    前言 此次项目搭建选用 Vue3 Vite 并使用 pnpm 管理依赖包 本文将从下载到项目创建记录项目全过程 一 项目搭建 1 使用 npm 下载 pnpm 使用 pnpm 依赖包将被存放在一个统一的位置 因此可以节省大量的硬盘空间以及提
  • 自定义ViewGroup实现流式布局

    目录 1 View的绘制流程 2 自定义ViewGroup构造函数的作用 3 onMeasure 方法 3 1 View的度量方式 3 2 onMeasure方法参数的介绍 3 3 自定义ViewGroup onMeasure 方法的实现
  • HiveSQL原理和优化详解

    Hive SQL 编译成MapReduce过程 编译 SQL 的任务是在上节中介绍的 COMPILER 编译器组件 中完成的 Hive将SQL转化为MapReduce任务 整个编译过程分为六个阶段 词法 语法解析 Antlr 定义 SQL
  • javascript相关

    1 扁平数据结构转Tree 打平的数据内容如下 let arr id 1 name 部门1 pid 0 id 2 name 部门2 pid 1 id 3 name 部门3 pid 1 id 4 name 部门4 pid 3 id 5 nam
  • vscode编辑器插件总结

    之前一直用webstorm webstorm确实太重了 后来无意中发现了vscode 高颜值吸引了我哈哈哈 就一直用着 很喜欢VScode的插件功能 想要什么插件就搜索 比如搜索angular 只要点击一下某款插件 插件的介绍和用法都会在右
  • feign的Fallback机制

    对接口使用 FeignClient后声明feign客户端后 可以使用属性fallback指定异常处理类 这个类必须实现 FeignClient作用的接口 且被注入到容器中 FeignClient name service provider1
  • 浪潮

    这是一篇旧闻 是我2011年8月6日发在豆瓣上的 前几天重玩豆瓣 看到了 很多怀念 我感到了生命的浪潮 读西哲史有感 o 不会吧 浑浑噩噩的大学生活居然过去一半了啊 当年读 此间的少年 满以为大学就是乔峰 慕容复PK 令狐冲 杨康宿舍里面切
  • 测试分为什么,白盒,黑盒,单元,集成测试?

    一 为什么测试的概念这么多 一个软件项目就好比一部复杂的汽车 有很多零件 当每个零件生产完成后 就要测试零件是否存在质量问题 零件组成复杂的汽车后 我们还要测试汽车 比如著名的中保研 测试刹车 测试气囊 测试防撞 顾客从4s店购买汽车 要带
  • Vue学习(五)登陆页面之重置和发起登陆请求及弹窗提示

    Vue学习 五 登陆页面之重置和发起登陆请求及弹窗提示 表单重置 根据预验证结果决定是否发出登陆请求 编写代码 启动api服务器 弹窗提示 表单重置 直接调用element ui给我们写好的函数就可以了 获取当前表单的实例对象 通过这个实例