Vue项目创建首页发送axios请求

news2024/12/25 16:01:42

这是个全新的Vue项目,引入了ElementUI

 将App.vue里的内容干掉,剩如下

然后下面的三个文件也可以删掉了

 

在views文件下新建Login.vue组件

 到router目录下的index.js

 那么现在的流程大概是这样子的

 启动

 写登陆页面

<template>
  <div>
    <el-form :ref="form" :model="loginForm" class="loginContainer">
      <h3 class="loginTitle">系统登录</h3>
      <!-- auto-complete="false"自动补全 -->
      <el-form-item label="">   
        <el-input type="text" auto-complete="false" v-model="loginForm.username" placeholder="请输入用户名"></el-input>
      </el-form-item>
      <el-form-item label="">
        <el-input type="text" auto-complete="false" v-model="loginForm.password" placeholder="请输入密码"></el-input>
      </el-form-item>
      <el-form-item label="">
        <el-input type="text" auto-complete="false" v-model="loginForm.code" placeholder="点击图片更换验证码" style="width:250px;margin-right: 5px;"></el-input>
        <img :src="captchaUrl"/>
       </el-form-item>
       <el-checkbox v-model="checked" class="loginRemeber">记住我</el-checkbox>
       <el-button type="primary" style="width:100%">登录</el-button>
    </el-form>
  </div>
</template>

<script>
export default {
    name:"Login",
    data(){
        return{
            captchaUrl:'',//验证码图片链接
            loginForm:{
                username:'admin',
                password:'123456',
                code:'1234'
            },
            checked:true
        }
    }

}
</script>

<style>
    .loginContainer{
        border-radius: 15px;
        background-clip: padding-box;
        margin:180px auto;
        width:350px;
        padding: 15px 35px 15px 35px;
        background: #a8dad5;
        border:1px solid #eaeaea;
        box-shadow: 0 0 25px #cac6c6;
    }
    .loginTitle{
        margin: 0px auto 40px auto;
        text-align: center;
    }
    .loginRemeber{
        text-align: left;
        margin:0px 0px 15px 0px;
    }
</style>

给登录按钮添加点击事件

添加方法

 

 添加表单校验  暂时先吧:ref="form"去掉

 

校验的username,password,code需要和上面的对应上 需要加prop属性

测试,校验规则是存在的,但是出现的问题是点击表单还是生效的

在点击登录时候添加表单校验

 

会自动根据我们自己定义的校验规则来校验,还是将用户名长度改成5位好了 

 

 

用ElementUI的showMessage

 

效果如下

 

接下来需要发送axios请求

安装axios

安装完成,可以在package.json文件看到

 组件里引入

 这里我随便建个后端,先进行演示,会出现跨域现象,这里跨域先不讲

 ​​​​

 看下返回的信息里有什么

<template>
  <div>
    <el-form :rules="rules" ref="form" :model="loginForm" class="loginContainer">
      <h3 class="loginTitle">系统登录</h3>
      <!-- auto-complete="false"自动补全 -->
      <el-form-item prop="username">   
        <el-input type="text" auto-complete="false" v-model="loginForm.username" placeholder="请输入用户名"></el-input>
      </el-form-item>
      <el-form-item prop="password">
        <el-input type="text" auto-complete="false" v-model="loginForm.password" placeholder="请输入密码"></el-input>
      </el-form-item>
      <el-form-item prop="code">
        <el-input type="text" auto-complete="false" v-model="loginForm.code" placeholder="点击图片更换验证码" style="width:250px;margin-right: 5px;"></el-input>
        <img :src="captchaUrl"/>
       </el-form-item>
       <el-checkbox v-model="checked" class="loginRemeber">记住我</el-checkbox>
       <el-button type="primary" style="width:100%" @click="submitLogin">登录</el-button>
    </el-form>
  </div>
</template>


<script>
import axios from 'axios'
export default {
    name:"Login",
    data(){
        return{
            captchaUrl:'',//验证码图片链接
            loginForm:{
                username:'admin',
                password:'123456',
                code:'1234'
            },
            checked:true,
            rules:{
                username:[
                    {required:true,message:'请输入用户名',trigger:'blur'},
                    {min:5,max:12,message:'用户名长度6到12位',trigger:'blur'}
                ],
                password:[
                    {required:true,message:'请输入密码',trigger:'blur'},
                    {min:6,max:12,message:'密码长度6到12位',trigger:'blur'}
                ],
                code:[
                    {required:true,message:'请输入验证码',trigger:'blur'},
                    {min:4,max:4,message:'验证码长度4位',trigger:'blur'}
                ],
            }
        }
    },
    methods:{
        submitLogin(){
            this.$refs.form.validate((valid)=>{
                if(valid){
                    axios.post('http://localhost:8081/demo',{username:"xxx",password:"123456",code:"1234"}).then((res)=>{
                        console.log(res)
                        
                    })
                }else{
                    this.$message.error('请输入正确格式')
                    return false
                }    
            })
        }
    }

}
</script>

<style>
    .loginContainer{
        border-radius: 15px;
        background-clip: padding-box;
        margin:180px auto;
        width:350px;
        padding: 15px 35px 15px 35px;
        background: #a8dad5;
        border:1px solid #eaeaea;
        box-shadow: 0 0 25px #cac6c6;
    }
    .loginTitle{
        margin: 0px auto 40px auto;
        text-align: center;
    }
    .loginRemeber{
        text-align: left;
        margin:0px 0px 15px 0px;
    }
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/356098.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

blackduck issue fix

文章目录场景依赖包风险扫描插件——synopsys codesight安装其他工具snyk公司提供/允许的工具指定依赖版本场景 你在一个前端nodejs项目中使用到了好多个依赖包&#xff0c;其中某几个依赖包的某些版本是有风险的。 在项目上线前&#xff0c;你最好修复这些安全风险。这时&…

SVN 获取多版本间的更新内容

文章目录背景介绍操作步骤 - 获取某段时间内的代码更新内容背景介绍 公司有个项目期初明确要做微信小程序&#xff0c;没有做其他端的意向&#xff0c;并且当时团队人数有限&#xff0c;没有项目实践过 uniapp&#xff0c;项目时间周期紧&#xff0c;就没有用 uniapp 去实现 然…

Linux架设魔兽争霸3战网Battle.net私服

文章目录 用到的工具pvpgnpvpgn-support-1.2Warcraft 3 Loader for PvPGNBNetEditor.exe搭建服务端魔兽争霸3登录战网私服添加战网服务器地址使用Warcraft 3 Loader启动魔兽争霸3工具下载用到的工具 pvpgn PvPGN是一款免费开源的跨平台服务器软件,支持Battle.net和Westwood …

SpringSecurity源码分析(一) SpringBoot集成SpringSecurity即Spring安全框架的加载过程

Spring Security是一个强大的并且高度可定制化的访问控制框架。 它基于spring应用。 Spring Security是聚焦于为java应用提供授权和验证的框架。像所有的spring项目一样,Spring Security真正的强大在于可以非常简单的拓展功能来实现自定义的需求。 在分析SpringBoot集成的Spri…

张晨光-JAVA零基础保姆式技术教程之-事务

事务 课程目标 1、什么是事务 2、jdbc如何控制事务 3、设置事务的回滚点 4、事务的特性ACID 5、数据库事务的隔高级别事务理解 什么是事务&#xff1a; 指逻辑上一组操作&#xff0c;要么同时成功&#xff0c;要么同时失败。 举例&#xff1a; 转账 a 给b 转账 100 a原来有…

React Native Cannot run program “node“问题

概述 前几天mac重装系统了&#xff0c;用Android studio重新构建React native项目时&#xff0c;报Cannot run program "node"错误。 电脑系统为macOS 12.6.3 (Monterey)&#xff0c;M1 Pro芯片。设备信息如下图所示&#xff1a; 完整错误信息如下图所示&#xff…

链表OJ(七)删除有序链表中重复的元素-I -II

目录 删除有序链表中重复的元素-I 删除有序链表中重复的元素-II 删除有序链表中重复的元素-I 描述 删除给出链表中的重复元素&#xff08;链表中元素从小到大有序&#xff09;&#xff0c;使链表中的所有元素都只出现一次 例如&#xff1a; 给出的链表为1→1→21→1→2,返回1…

码农饭碗不保——ChatGPT正在取代Coder

码农饭碗不保——ChatGPT正在取代Coder 最近被OpenAI的ChatGPT刷屏了。我猜你已经读了很多关于ChatGPT的文章&#xff0c;不需要再介绍了。假如碰巧您还不太了解ChatGPT是什么&#xff0c;可以先看一下这篇文章&#xff0c;然后再回来继续。 与ChatGPT对话很有趣&#xff0c;…

【尊享版】如何从零到一掌控习惯?

超友们&#xff0c;早上好&#xff5e; 今天为你带来的分享是《如何从零到一掌控习惯&#xff1f;》&#xff0c;主要分为八个部分&#xff1a; 一、【为什么要培养习惯&#xff1f;】 二、【养成新习惯为什么很难&#xff1f;】 三、【习惯养成的原理是什么&#xff1f;】 …

D3.js绘图流程

简介 D3.js是由javaScript语言编写绘图库&#xff0c;其原理是&#xff1a;通过调用一系列内置函数&#xff0c;生成SVG&#xff0c;并在网页渲染。 本文以频率分布直方图案例为例&#xff0c;介绍使用D3.js的流程 流程 第一步 引用D3.js库 建立一个html文件&#xff0c;在…

【Flutter】入门Dart语言:初步了解内建类型

文章目录一、概述1.为什么叫内建类型&#xff1f;2.Dart的内建类型有哪些&#xff1f;二、内建类型详解1.num2.int3.double4.String5.bool6.List7.Map8.Function三、总结一、概述 "The greatest glory in living lies not in never falling, but in rising every time we…

分享111个HTML体育竞技模板,总有一款适合您

分享111个HTML体育竞技模板&#xff0c;总有一款适合您 111个HTML体育竞技模板下载链接&#xff1a;https://pan.baidu.com/s/1JmjlNVApPLVWnSEN5VlILQ?pwd5kzl 提取码&#xff1a;5kzl Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 响应式户外攀岩运动宣传…

【亲测有效】错误代码0x904,远程桌面连接异常终端问题

【亲测有效】错误代码0x904&#xff0c;远程桌面连接异常终端问题一、问题情况二、解决办法1.打开防火墙&#xff0c;如图&#xff0c;点击“允许应用或功能通过Windows”2.点击“允许其他应用”3.点击“浏览”4.在如下目录找到“mstsc.exe”添加5.点击“添加”6.勾选“专用”和…

[软件工程导论(第六版)]第5章 总体设计(课后习题详解)

文章目录1. 为每种类型的模块耦合举一个具体例子。2. 为每种类型的模块内聚举一个具体例子。3. 用面向数据流的方法设计下列系统的软件结构。4. 美国某大学共有200名教师&#xff0c;校方与教师工会刚刚签订一项协议。按照协议&#xff0c;所有年工资超过$26000&#xff08;含$…

电商搜索和推荐场景下的MLOps实践

省时查报告-专业、及时、全面的行研报告库省时查方案-专业、及时、全面的营销策划方案库【免费下载】2023年1月份热门报告合集ChatGPT的发展历程、原理、技术架构及未来方向《ChatGPT&#xff1a;真格基金分享.pdf》2023年AIGC发展趋势报告&#xff1a;人工智能的下一时代2023年…

图的基本概念和性质

目录一、图的引入1.引言2.不同类型的图3.无序对和无序积4.什么是图二、图的表示1.图的表示2.邻接矩阵3.邻接点与邻接边4.一些简单的特殊图三、图的分类1.按边有无方向分类2.按有无平行边分类3.按有无权值分类4.综合分类方法四、子图和补图1.各类子图2.完全图3.补图4.补图的邻接…

WSL(ubuntu2204)xfce4安装中文环境和fcitx5框架及中文输入法

安装中文语言包 sudo apt install language-pack-zh-hans 配置中文显示 首先运行如下命令配置 locale $ sudo vi /etc/locale.gen 找到 *zh_CN.UTF-8 UTF-8* 并取消注释&#xff0c;然后保存并退出。 locale.gen... # zh_CN.GBK GBK zh_CN.UTF-8 UTF-8 # zh_HK BIG5-HKS…

【C语言刷题】倒置字符串

解题思路与过程&#x1f4fd;️解题思路&#x1f4fd;️解题过程&#x1f527;1.输入&#x1f527;2.设计逆序函数&#x1f527;3.逆序整个字符串&#x1f527;4.逆序每个单词&#x1f4fd;️源码&#x1f4f7;先来看题&#x1f447;&#x1f4fd;️解题思路 &#x1f534; 首先…

【验证码的识别】—— 图形验证码的识别

前言 &#xff08;结尾有彩蛋欧&#xff09; 目前&#xff0c;许多网站采取各种各样的措施来反爬虫&#xff0c;其中一个措施便是使用验证码。随着技术的发展&#xff0c;验证码的花样越来越多。验证码最初是几个数字组合的简单的图形验证码&#xff0c;后来加入了英文字母和混…

RK356x U-Boot研究所(命令篇)3.6 fdt命令的用法

平台U-Boot 版本Linux SDK 版本RK356x2017.09v1.2.3文章目录 一、fdt命令的配置二、fdt命令的定义三、fdt命令的用法3.1 fdt list3.2 fdt rm3.3 fdt set一、fdt命令的配置 .config配置文件需要有以下配置: rk3568_defconfig默认已使能。 二、fdt命令的定义 usb命令定义在cm…