Vue3管理系统-路由设置+表单校验

一、配置路由规则

1.在views 下创建文件夹分类,搭好架子

2.配置路由规则

在router下Index.js 

import { createRouter, createWebHistory } from 'vue-router'

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    //一级路由
    //这里可以采取路由懒加载的方式() => import('@/views/login/loginPage.vue')
    { path: '/login', component: () => import('@/views/login/loginPage.vue') }, //登录页
    {
      path: '/', //重定向到二级路由//初始化界面
      component: () => import('@/views/layout/Layout.vue'),
      redirect: '/article/manage',
      children: [
        //二级路由

        {
          path: '/article/manage',
          component: () => import('@/views/article/ArticleManage.vue')
        }, //文章管理
        {
          path: '/article/channel',
          component: () => import('@/views/article/ArticleChannel.vue')
        }, //频道管理
        {
          path: '/user/profile',
          component: () => import('@/views/user/user.vue')
        }, //个人中心
        {
          path: '/user/avatar',
          component: () => import('@/views/user/UserAvatar.vue')
        }, //更换头像
        {
          path: '/user/password',
          component: () => import('@/views/user/UserPassword.vue')
        } //重置密码
      ]
    }
  ]
})

export default router

二、element-plus表单校验

  <el-form
    ref="ruleFormRef"
    style="max-width: 600px"
    :model="ruleForm"//用来生成对象,收集整个from的数据
    :rules="rules"//配置校验规则
    label-width="auto"
    class="demo-ruleForm"
    :size="formSize"
    status-icon
  >
    <el-form-item label="Activity name" prop="name">//配置当前生效的是name规则
      <el-input v-model="ruleForm.name" />//和from的子属性双向绑定

1、4个步骤:重要!!!

1.查看接口文档,确定参数

2.编写from对象储存参数和rules中的规则,与rules中的规则一一对应

import { ref } from 'vue'
const isRegister = ref(true)
//用于提交的from数据对象
const formModel = ref({
  username: '',
  password: '',
  password1: ''
  // code: '',
})
//用于验证的rules对象,校验规则
const rules = ref({
  username: [
    { required: true, message: '请输入用户名', trigger: 'blur' },
    { min: 5, max: 10, message: '用户名必须是5-10位的字符', trigger: 'blur' }
  ],
  password: [
    { required: true, message: '请输入密码', trigger: 'blur' },
    {
      pattern: /^\S{6,15}$/,
      message: '密码必须是6-15位的非空字符',
      trigger: 'blur'
    }
  ]
})

这里还有一个在下面,自定义校验:validator:

  repassword: [
    { required: true, message: '请再次输入密码', trigger: 'blur' },
    {
      pattern: /^\S{6,15}$/,
      message: '密码必须是6-15的非空字符',
      trigger: 'blur'
    },
    {
      validator: (rule, value, callback) => {
        if (value !== formModel.value.password) {
          callback(new Error('两次输入密码不一致!'))
        } else {
          callback()
        }
      },
      trigger: 'blur'
    }
  ]

3.给:model 属性绑定 form 数据对象注意:这个是最开始的确定对应表单和规则

   <el-form :model="formModel" :rules="rules" ref="form" size="large" autocomplete="off" v-if="isRegister">
        <el-form-item>
          <h1>注册</h1>
        </el-form-item>

4.绑定 form 数据对象的子属性(双向数据绑定)+prop 绑定校验规则

<el-input
  v-model="formModel.username"//对应的是name表单
  :prefix-icon="User"
  placeholder="请输入用户名"
></el-input>
... 
(其他两个也要绑定)

这两步一般一起进行

<el-form-item prop="username">//对应规则
  <el-input
    v-model="formModel.username"
    :prefix-icon="User"
    placeholder="请输入用户名"
  ></el-input>
</el-form-item>
... 
(其他两个也要绑定prop)

2.点击注册进行预校验

给注册绑定register函数

const form = ref()

const register = async () => {
  await form.value.validate()
  console.log('开始注册请求')
}


》》》》
<el-form ref="form">


<el-button
  @click="register"
  class="button"
  type="primary"
  auto-insert-space
>
  注册
</el-button>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue入门到关门之Vue项目工程化

一、创建Vue项目 1、安装node环境 官网下载&#xff0c;无脑下一步&#xff0c;注意别放c盘就行 Node.js — Run JavaScript Everywhere (nodejs.org) 需要两个命令 npm---->pipnode—>python 装完检查一下&#xff0c;hello world检测&#xff0c;退出crtlc 2、搭建vu…

ARM功耗管理背景及挑战

安全之安全(security)博客目录导读

uniapp 对接 Apple 登录

由于苹果要求App使用第三方登录必须要求接入Apple登录 不然审核不过 所以&#xff1a; 一、勾选苹果登录 二、 设置AppId Sign In Apple 设置完成重新生成描述文件 &#xff01;&#xff01;&#xff01;&#xff01;证书没关系 示例代码&#xff1a; async appleLogin…

JAVA面试专题-MySQL

锁 全局锁 对这个数据库实例加锁&#xff0c;加锁后整个实例处于只读状态&#xff0c;DDL和DML阻塞&#xff0c;DQL可以 表级锁 每次操作锁住整张表 表锁 表共享读锁&#xff08;read lock&#xff09;&#xff1a;不阻塞其他客户端的读&#xff0c;但会阻塞写 表独占写…

kubectl_入门_Pod调整

Pod调度 在默认情况下&#xff0c;一个pod在哪个node节点上运行&#xff0c;是由scheduler组件采用相应的算法计算出来的&#xff0c;这个过程是不受人工控制的。 但是在实际过程中&#xff0c;这并不满足需求&#xff0c;因为很多情况下&#xff0c;我们想控制某些pod到达某…

第9篇:创建Nios II工程之读取Switch的值<二>

Q&#xff1a;上一期我们完成了Quartus硬件工程部分&#xff0c;本期我们创建Nios II软件工程这部分。 A&#xff1a;创建完BSP和Nios II Application之后&#xff0c;在source文件main.c中添加代码&#xff1a;system.h头文件中新增了Switch PIO IP的硬件信息&#xff0c;包括…

【学习笔记三十】EWM和PP集成的后台配置和前台演示

一、EWM和PP集成概述 在S4HANA版本中&#xff0c;PP模块强化了生产线的概念&#xff0c;并与EWM集成&#xff0c;使用生产供应区&#xff08;PSA&#xff09;的功能。PSA的基本配置包括在ERP系统中创建PSA、定义工作中心、将PSA分配给工作中心、在EWM中创建PSA、匹配ERP和EWM中…

实验14 MVC

二、实验项目内容&#xff08;实验题目&#xff09; 编写代码&#xff0c;掌握MVC的用法。【参考课本 例1 】 三、源代码以及执行结果截图&#xff1a; example7_1.jsp&#xff1a; <% page contentType"text/html" %> <% page pageEncoding "ut…

宝兰德以全栈智能运维能力为企业数字化转型保驾护航

2020年发布“十四五”规划中提出“加快数字化发展&#xff0c;建设数字中国”&#xff0c;发展数字经济成为国家战略。在数字技术创新应用和国家政策持续利好的大趋势下&#xff0c;面对全行业产业结构调整、资源环境挑战等带来的机遇和难点&#xff0c;我国千行百业的数字化转…

工业互联网通讯协议—欧姆龙(Fins tcp)

一、场景 近期公司要对欧姆龙CP系列设备的数据采集&#xff0c;于是就研究了下欧姆龙的Fins Tcp协议。 二、Fins Tcp 组成字节说明固定头446494E53 FINS对应的ASCII码的十六进制长度4后面剩余指令的长度命令4 握手固定为&#xff1a;00000000 读写固定为&#xff1a;0000000…

CentOS/Anolis的Linux系统如何通过VNC登录远程桌面?

综述 需要在server端启动vncserver&#xff0c;推荐tigervnc的server 然后再本地点来启动client进行访问&#xff0c;访问方式是IPport&#xff08;本质是传递数据包到某个ip的某个port&#xff09; 然后需要防火墙开启端口 服务器上&#xff1a;安装和启动服务 安装服务 y…

Python 可以对数据进行哪些可视化?

Python 可视化 一、条形图&#xff08;或柱状图&#xff09; 1.代码如下&#xff1a; import matplotlib.pyplot as plt import pandas as pddf pd.DataFrame({County:[America,Canada,Australia,Germany,French,China],GDP:[80,30,70,80,60,75] })plt.bar(df[County],df[G…

聊聊 ASP.NET Core 中间件(一):一个简单的中间件例子

前言&#xff1a;什么是中间件 服务器在收到 HTTP 请求后会对用户的请求进行一系列的处理&#xff0c;比如检查请求的身份验证信息、处理请求报文头、检查是否存在对应的服务器端响应缓存、找到和请求对应的控制器类中的操作方法等&#xff0c;当控制器类中的操作方法执行完成…

国家开放大学2024年春《Matlab语言及其应用》实验一熟悉Matlab 操作环境参考答案

实验报告 姓名&#xff1a; 学号&#xff1a; 实验一名称&#xff1a;熟悉 Matlab 操作环境 实验目标&#xff1a;通过简单变量和矩阵的录入、计算和查看相关信息&#xff0c;了解 Matlab 操作界面 及各子窗口使用方法。熟悉一系列便于使用的 Matlab 函数和文件的工具。 实…

Oracle索引组织表与大对象平滑迁移至OceanBase的实施方案

作者简介&#xff1a;严军(花名吉远)&#xff0c;十年以上专注于数据库存储领域&#xff0c;精通Oracle、Mysql、OceanBase&#xff0c;对大数据、分布式、高并发、高性能、高可用有丰富的经验。主导过蚂蚁集团核心系统数据库升级&#xff0c;数据库LDC单元化多活项目&#xff…

Qt简单离线音乐播放器

有上传本地音乐文件&#xff0c;播放&#xff0c;暂停&#xff0c;拖拉进度条等功能的播放器。 mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include <QMediaPlayer> #include <QFileDialog> #include <QTime&g…

c4d动画代渲染怎么报价?动画代渲染平台(含云渲染农场)

在C4D动画代渲染的报价问题时&#xff0c;需要考虑多个因素&#xff0c;如动画复杂度、渲染时长、所需技术以及市场行情等。动画代渲染平台作为专门提供专业渲染服务的机构&#xff0c;其报价通常会根据客户的具体需求和项目特点来定制。下面一起来看看相关内容吧。 一、c4d动画…

【docker】Spring Boot3.x 打包 Docker容器

Docker化Spring Boot应用 创建文件夹 demo mkdir democd demo创建Dockerfile # 两个 openjdk 二选一 #FROM openjdk:17-jre-alpineFROM eclipse-temurin:17MAINTAINER chengxuyuanshitang <chengxuyuanshitangXX.com>RUN mkdir -p /workspace/java/demoCOPY demo.ja…

nginx+Tomcat动静分离

本⽂的动静分离主要是通过nginxtomcat来实现&#xff0c;其中nginx处理图⽚、html等静态的⽂ 件&#xff0c;tomcat处理jsp、do等动态⽂件. 实验环境 192.168.200.133 nginx反向代理 192.168.200.129 static 192.168.200.130 dynamic 步骤 修改三台主机名 [rootadmin ~]#…

专注 APT 攻击与防御—sql server 常用操作远程桌面语句

SqlServer 常用操作远程桌面语句 1、是否开启远程桌面 1&#xff1a;表示关闭0&#xff1a;表示开启 EXEC master..xp_regread HKEY_LOCAL_MACHINE,SYSTEM\CurrentControlSet\Control\Terminal Server,fDenyTSConnections 2、读取远程桌面端口 EXEC master..xp_regread HKE…