vue3——登录校验

页面

首先需要在表单配置model、ref、rules ,el-form-item中放prop

html 复制代码
		<el-form :model="form" label-width="0" ref="formRef" :rules="rules">
            <el-form-item label="" prop="username">
              <el-input v-model="form.username" :prefix-icon="User" />
            </el-form-item>
            <el-form-item label="" prop="password">
              <el-input
                v-model="form.password"
                :prefix-icon="Lock"
                show-password
              />
            </el-form-item>
            <el-form-item label="">
              <el-button
                class="loginBtn"
                type="primary"
                :loading="btnLoading"
                @click="loginClick"
              >
                登录
              </el-button>
            </el-form-item>
          </el-form>

script

javascript 复制代码
let form = reactive({
  username: 'admin',
  password: '111111',
})
const formRef = ref()
const btnLoading = ref(false)
const rules = {
  username: [
    { required: true, message: '请输入账号', trigger: 'blur' },
    { min: 5, message: '账号不能少于五位', trigger: 'blur' },
  ],
  password: [
    { required: true, message: '请输入密码', trigger: 'blur' },
    { min: 5, message: '密码不能少于五位', trigger: 'blur' },
  ],
}

const loginClick = () => {
  formRef.value.validate(async (valid: any, fields: any) => {
    if (valid) {
      btnLoading.value = true
      try {
        await userStore.userLogin(form) // 接口
        btnLoading.value = false
        ElNotification({
          title: `${tool.getTimeType()}好`,
          message: '登录成功',
        })
        await router.push('/')
      } catch (error) {
        btnLoading.value = false
        ElNotification({
          title: '登录失败', 
          message: (error as Error).message,
        })
      }
    } else {
      btnLoading.value = false
      console.log('error submit!', fields)
    }
  })
}

看着简单,少一点休想校验 (ˉ▽ˉ;)...

相关推荐
小羊没烦恼!40 分钟前
铁道部新客票系统设计(二)
开发语言·前端·数据库·python·oracle·c#·php
智能直播3 小时前
RK3518:1.5G 内存 + 8G 存储,如何跑起硬件编解码、Web、AI 识别、绿幕特效
前端·人工智能·5g
掘金酱4 小时前
【10.24 特别活动】AI 时代,程序员的新饭碗在哪里?
前端·人工智能·后端
excel5 小时前
多进程环境下使用 PM2 部署 Socket.IO:需要注意什么
前端
IT_陈寒5 小时前
Redis的原子性竟然失效了?记一次分布式锁翻车实录
前端·人工智能·后端
时间的情敌6 小时前
《回顾 2018 前端:Vue2 成熟期,Webpack4 发布,PWA 大火》
前端
Java后端的Ai之路7 小时前
前端技术Vue-09-webpack-vuejs-实战
前端·vue.js·webpack
LMT流氓兔7 小时前
第五单元——第4课:给工具参数加校验
java·前端·算法·ai·langchain
涛涛ing7 小时前
React Compiler正式“Rust化”:你项目里的Babel插件,正在被编译进打包器
前端
迷迭绿7 小时前
Cesium 轨迹回放播放器
前端·javascript·cesium