中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

學(xué)做網(wǎng)站論壇vip賬號網(wǎng)站建設(shè)黃頁在線免費(fèi)

學(xué)做網(wǎng)站論壇vip賬號,網(wǎng)站建設(shè)黃頁在線免費(fèi),17我們一起做網(wǎng)站,建設(shè)銀行信用卡積分兌換商城網(wǎng)站前提:后端jar環(huán)境、Vue3環(huán)境、Redis環(huán)境 搭建頁面(html標(biāo)簽、css樣式) → 綁定數(shù)據(jù)與事件(表單校驗(yàn)) → 調(diào)用后臺(tái)接口(接口文檔、src/api/xx.js封裝、頁面函數(shù)中調(diào)用) Login.vue文件&#xff…

前提:后端jar環(huán)境、Vue3環(huán)境、Redis環(huán)境

搭建頁面(html標(biāo)簽、css樣式) →? 綁定數(shù)據(jù)與事件(表單校驗(yàn)) → 調(diào)用后臺(tái)接口(接口文檔、src/api/xx.js封裝、頁面函數(shù)中調(diào)用)

Login.vue文件:?

<script setup>
import { User, Lock } from "@element-plus/icons-vue";
import { ref } from "vue";
//控制注冊與登錄表單的顯示, 默認(rèn)false顯示登錄  true時(shí)顯示注冊
const isRegister = ref(false);//定義數(shù)據(jù)模型
const registerData = ref({username: "",password: "",rePassword: "",
});
//校驗(yàn)密碼的函數(shù)
const checkRePassword = (rule, value, callback) => {if (value === "") {callback(new Error("請?jiān)俅未_認(rèn)密碼"));} else if (value !== registerData.value.password) {callback(new Error("請確保兩次輸入的密碼一樣"));} else {callback();}
};
//定義表單校驗(yàn)規(guī)則
const rules = {username: [{ required: true, message: "請輸入用戶名", trigger: "blur" },{ min: 5, max: 16, message: "長度為5~16位非空字符", trigger: "blur" },],password: [{ required: true, message: "請輸入密碼", trigger: "blur" },{ min: 5, max: 16, message: "長度為5~16位非空字符", trigger: "blur" },],rePassword: [{ validator: checkRePassword, trigger: "blur" }],
};// 調(diào)用后臺(tái)接口,完成注冊
import {userRegisterService} from '@/api/user.js'
const register=async()=>{// registerData是一個(gè)響應(yīng)式對象,如果要獲取值,需要.valuelet result=await userRegisterService(registerData.value);if(result.code===0){alert(result.msg?result.msg:'注冊成功');}else{alert('注冊失敗')}
}
</script><template>
<!-- 登錄和注冊是同一個(gè)頁面 --><el-row class="login-page"><el-col :span="12" class="bg"></el-col><el-col :span="6" :offset="3" class="form">
<!-- 注冊表單 --><el-form ref="form" size="large" autocomplete="off" v-if="isRegister" :model="registerData" :rules="rules"><el-form-item><h1>注冊</h1></el-form-item><!-- 用戶名 --><el-form-item prop="username"><el-input :prefix-icon="User" placeholder="請輸入用戶名" v-model="registerData.username"></el-input></el-form-item><!-- 密碼 --><el-form-item prop="password"><el-input :prefix-icon="Lock" type="password" placeholder="請輸入密碼" v-model="registerData.password" ></el-input></el-form-item><!-- 確認(rèn)密碼 --><el-form-item prop="rePassword"><el-input :prefix-icon="Lock" type="password" placeholder="請輸入再次密碼" v-model="registerData.rePassword" ></el-input></el-form-item>
<!-- 注冊按鈕 --><el-form-item><el-button class="button" type="primary" auto-insert-space @click="register">注冊</el-button></el-form-item><el-form-item class="flex"><el-link type="info" :underline="false" @click="isRegister = false">← 返回</el-link></el-form-item></el-form><!-- 登錄表單 --><!-- 登錄按鈕 --></el-col></el-row>
</template><style lang="scss" scoped>
/* 樣式 */
.login-page {height: 100vh;background-color: #fff;.bg {background: url("@/assets/logo2.png") no-repeat 60% center / 240px auto,url("@/assets/login_bg.jpg") no-repeat center / cover;border-radius: 0 20px 20px 0;}.form {display: flex;flex-direction: column;justify-content: center;user-select: none;.title {margin: 0 auto;}.button {width: 100%;}.flex {width: 100%;display: flex;justify-content: space-between;}}
}
</style>

api文件夾下的user.js:

// 導(dǎo)入request.js請求工具
import request from '@/utils/request.js'
//提供調(diào)用注冊接口的函數(shù)
export const userRegisterService=(registerData)=>{// 借助于URLsearchParams完成傳遞const params=new URLSearchParams()for(let key in registerData){params.append(key,registerData[key]);}return request.post('/user/register',params);
}

解決跨域問題:解決瀏覽器的同源策略限制,向不同源發(fā)送Ajax請求會(huì)失敗

? ? ? ? 使用配置代理

①utils文件夾下的request.js文件

//定制請求的實(shí)例//導(dǎo)入axios  npm install axios
import axios from 'axios';
//定義一個(gè)變量,記錄公共的前綴  ,  baseURL
const baseURL = '/api';
const instance = axios.create({baseURL})//添加響應(yīng)攔截器
instance.interceptors.response.use(result=>{return result.data;},err=>{alert('服務(wù)異常');return Promise.reject(err);//異步的狀態(tài)轉(zhuǎn)化成失敗的狀態(tài)}
)export default instance;//向外暴露

②修改vite.config.js

import { fileURLToPath, URL } from 'node:url'import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'node:path'// https://vitejs.dev/config/
export default defineConfig({plugins: [vue(),],resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url))}},server:{proxy:{'/api':{//獲取路徑中包含/api的請求target:'http://localhost:9999',//后臺(tái)服務(wù)所在的源changeOrigin:true,//修改源rewrite:(path)=>path.replace(/^\/api/,'')//將/api替換為空字符串}}}
})

?

?

?

?

?

?

http://m.risenshineclean.com/news/58284.html

相關(guān)文章:

  • 中文手機(jī)網(wǎng)站設(shè)計(jì)案例網(wǎng)站建設(shè)需要多少錢?
  • 淘寶做的網(wǎng)站可靠嗎百度推廣需要多少錢
  • 怎么自己做影視網(wǎng)站專業(yè)黑帽seo
  • 學(xué)校網(wǎng)站構(gòu)建seo網(wǎng)站優(yōu)化方案案例
  • 國際新聞界期刊桔子seo網(wǎng)
  • 住建部歷史文化街區(qū)和歷史建筑信息平臺(tái)優(yōu)化網(wǎng)站頁面
  • 武漢商城網(wǎng)站制作公司新手怎樣推銷自己的產(chǎn)品
  • wordpress 破解賬號seo學(xué)校培訓(xùn)課程
  • 自己做網(wǎng)站的流程谷歌seo網(wǎng)站優(yōu)化
  • 國際網(wǎng)站推廣專員招聘做推廣app賺錢的項(xiàng)目
  • 視頻 收費(fèi) 網(wǎng)站怎么做全國網(wǎng)站排名
  • 沈陽網(wǎng)站建設(shè)技術(shù)公司百度客戶服務(wù)電話是多少
  • 怎么用vscode做網(wǎng)站網(wǎng)站排名優(yōu)化培訓(xùn)
  • 上海網(wǎng)站備案北京發(fā)生大事了
  • 怎么設(shè)計(jì)頁面只顯示一頁說說seo論壇
  • 病毒推廣網(wǎng)站網(wǎng)絡(luò)營銷怎么做
  • wordpress 全景插件軟件排名優(yōu)化
  • 手機(jī)網(wǎng)站模板更換方法sem網(wǎng)站推廣怎么做
  • 辦公用品網(wǎng)站建設(shè)網(wǎng)絡(luò)推廣企業(yè)
  • 有了php源碼怎么做網(wǎng)站公司網(wǎng)絡(luò)推廣排名定制
  • 網(wǎng)站的競價(jià)怎么做軟件培訓(xùn)機(jī)構(gòu)排名
  • 怎么用ngrok做網(wǎng)站百度品牌廣告收費(fèi)標(biāo)準(zhǔn)
  • 網(wǎng)站開發(fā)的就業(yè)前景如何沈陽網(wǎng)站制作公司
  • 做茶評的網(wǎng)站谷歌seo排名優(yōu)化服務(wù)
  • 哪些購物網(wǎng)站做的比較簡潔有品質(zhì)手機(jī)端網(wǎng)站優(yōu)化
  • 設(shè)計(jì)業(yè)務(wù)網(wǎng)站競價(jià)是什么意思
  • 網(wǎng)站建設(shè)推廣新聞成都疫情最新情況
  • 安徽服飾網(wǎng)站建設(shè)萬網(wǎng)域名官網(wǎng)
  • 淘寶網(wǎng)網(wǎng)站開發(fā)今日頭條新聞軍事
  • wordpress 怎么上傳文件到根目錄網(wǎng)站優(yōu)化培訓(xùn)班