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)
    }
  })
}

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

相关推荐
liuxiaocheng2 分钟前
聊聊 Vercel AI SDK 的流式协议:前后端到底是怎么"边想边说"的
前端·后端
胡萝卜术3 分钟前
在浏览器中跑 DeepSeek-R1:WebGPU 推理全流程深度解析
前端·javascript·面试
windliang33 分钟前
Claude Code 源码分析(十):MCP 外部工具如何进入下一轮 Agent 调用
前端·算法·面试
Yan_chen66635 分钟前
CTFHub XSS反射型实战攻略
前端·网络安全·漏洞·xss·ctfhub web前置技能
web像素之境1 小时前
前端工程化梳理
前端
小林ixn1 小时前
全栈项目实战:前端独立开发,不再傻等后端接口
前端·javascript·react.js
李剑一1 小时前
Anthropic将在AI生成文本中嵌入水印!难道是用我之前写的这个技术?
前端·aigc·ai编程
Asize1 小时前
前端接口工程:axios + mock,前端不再傻等后端
前端·javascript
结网的兔子1 小时前
【前端开发】UniApp 项目地图选型与Web-APP跨端迁移方案
前端·uni-app
Canace1 小时前
给 Claude 一个链接,它真的读了原文吗
前端·人工智能·ai编程