Vue項目創(chuàng)建首頁發(fā)送axios請求的方法實例
這是個全新的Vue項目,引入了ElementUI
將App.vue里的內(nèi)容干掉,剩如下
然后下面的三個文件也可以刪掉了
在views文件下新建Login.vue組件
到router目錄下的index.js
那么現(xiàn)在的流程大概是這樣子的
啟動
寫登陸頁面
<template> <div> <el-form :ref="form" :model="loginForm" class="loginContainer"> <h3 class="loginTitle">系統(tǒng)登錄</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需要和上面的對應(yīng)上 需要加prop屬性
測試,校驗規(guī)則是存在的,但是出現(xiàn)的問題是點擊表單還是生效的
在點擊登錄時候添加表單校驗
會自動根據(jù)我們自己定義的校驗規(guī)則來校驗,還是將用戶名長度改成5位好了
用ElementUI的showMessage
效果如下
接下來需要發(fā)送axios請求
安裝axios
安裝完成,可以在package.json文件看到
組件里引入
這里我隨便建個后端,先進(jìn)行演示,會出現(xiàn)跨域現(xiàn)象,這里跨域先不講
看下返回的信息里有什么
<template> <div> <el-form :rules="rules" ref="form" :model="loginForm" class="loginContainer"> <h3 class="loginTitle">系統(tǒng)登錄</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>
總結(jié)
到此這篇關(guān)于Vue項目創(chuàng)建首頁發(fā)送axios請求的文章就介紹到這了,更多相關(guān)Vue創(chuàng)建首頁發(fā)送axios請求內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue3如何使用postcss-px-to-viewport適配屏幕
這篇文章主要介紹了vue3如何使用postcss-px-to-viewport適配屏幕問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03vue 實現(xiàn)v-for循環(huán)回來的數(shù)據(jù)動態(tài)綁定id
今天小編就為大家分享一篇vue 實現(xiàn)v-for循環(huán)回來的數(shù)據(jù)動態(tài)綁定id,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11element-plus的自動導(dǎo)入和按需導(dǎo)入方式詳解
之前使用 ElementPlus 做項目的時候,由于不會使用按需引入耽誤了不少時間,這篇文章主要給大家介紹了關(guān)于element-plus自動導(dǎo)入和按需導(dǎo)入的相關(guān)資料,需要的朋友可以參考下2022-08-08表格Table實現(xiàn)前端全選所有功能方案示例(包含非當(dāng)前頁)
這篇文章主要為大家介紹了表格Table實現(xiàn)前端全選所有功能,包括非當(dāng)前頁的方案示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-02-02