ElementUI之表单验证、数据绑定、路由跳转

2023-05-16

1.新建表单组件el-form.vue

<template>
    <div class="form">
        <el-form ref="form" :model="UserForm" :rules="this.$store.state.userinfo.CheckRules" label-position="left" label-width="180px">
            <el-form-item label="真实姓名" prop="truename">
                <el-input v-model="UserForm.truename"></el-input>
            </el-form-item>
            <el-form-item label="年龄" prop="age">
                <el-input v-model="UserForm.age"></el-input>
            </el-form-item>
            <el-form-item label="出生年月">
                <el-date-picker type="date" placeholder="选择日期"
                                v-model="UserForm.birthday">

                </el-date-picker>
            </el-form-item>
            <el-form-item>
                <el-button type="primary" @click="submitInfo">提交</el-button>
            </el-form-item>
        </el-form>
    </div>

</template>

<style>
    .form{margin-top: 20px;}
</style>

<script>
    export default {
        created(){
            this.UserForm = this.$store.state.userinfo.UserForm;
        },

        beforeDestory(){
            this.$store.state.userinfo.UserForm=this.UserForm;
        },

        data() {
            return {
                UserForm: {
                    truename: '',
                    age: '',
                    birthday: ''
                }
            };
        },

        methods:{
            submitInfo(){
                // 表单验证方法
                this.$refs.form.validate(function (result) {
                    if(result){
                        // 验证通过,调用module里的setUserInfo方法
                        this.$store.dispatch("setUserInfo");
                    }else{
                        alert("表达验证不合法")
                    }
                }.bind(this));
            }
        },
    }
</script>

2.新建一个Module,EleUserInfo.js

import Vue from "vue";
import {routerConfig} from "./../../jssrc/config";

export default{
    state:{
        UserForm:{truename:"", age:"", birthday:""},
        CheckRules:{
            truename:[
                {required:true, message:"请输入活动名称", trigger:'blur'},
                {min:3, max:5, message:"必须3-5个字符", trigger:'blur'}
            ],
            age:[{validator:(rule,value,callback)=>{
                if(/^\d+$/.test(value) == false){
                    callback(new Error("年龄只能输入数字"));
                }else{
                    callback();
                }
            }, trigger:'blur'}]
        },
    },

    actions:{
        setUserInfo(context){
            // 路由跳转
            routerConfig.push({name:"newslist"});
        }
    }
}

3.我们把jssrc/index.js 中的代码分离出一部分
config.js

import VueRouter from 'vue-router';

import newsdetail from "./../components/news-detail.vue";

import eltable from "./../components/el-table.vue";
import elindex from "./../components/elmentui/el-index.vue";
import elhot from "./../components/elmentui/el-hot.vue";
import eluserinfo from "./../components/elmentui/el-form.vue";

const userlogin = resolve => {
    // 成功之后的回调
    resolve(require("./../components/user-login.vue")); // 这就是异步加载的方式
}

const newslist = resolve => {
    // 成功之后的回调
    resolve(require("./../components/news-list.vue")); // 这就是异步加载的方式
}

// 路由模块
export const routerConfig = new VueRouter({
    routes: [
        { path: '/', component: userlogin},
        { path: '/news', component: newslist, name:"newslist"},
        { path: '/news/:newsid', component: newsdetail, name:"newsdetail"},
        { path: '/login', component: userlogin,name:"userlogin" },
        { path: '/eltable', component: eltable,name:"eltable" },
        { path: '/elindex', component: elindex,name:"elindex", children:[
            {path:"hot",component:elhot,name:"elhot"},
            {path:"userinfo",component:eluserinfo,name:"eluserinfo"},
        ]}
    ]
})

4.然后jssrc/index.js 修改成如下

import Vue from "vue";

import pagenav from "./../components/page-nav.vue";

// 引入
import validate from "./../components/validate";
// 使用
Vue.use(validate);

import VueRouter from 'vue-router';
Vue.use(VueRouter); // 全局使用插件

import VueResource from 'vue-resource';
Vue.use(VueResource);

import UserModule from "./../store/modules/UserModule";
import NewsModule from "./../store/modules/NewsModule";
import EleModule from "./../store/modules/eleModule";
import EleUserInfomoldule from "./../store/modules/EleUserInfo";

import Vuex from 'vuex';
Vue.use(Vuex);

import ElementUI from 'element-ui';
import 'element-ui/lib/theme-default/index.css';
Vue.use(ElementUI);



const  vuex_store = new Vuex.Store({
    modules:{
        users:UserModule,
        news:NewsModule,
        ele:EleModule,
        userinfo:EleUserInfomoldule
    }
})


//路由的配置
import {routerConfig} from "./config";


// 全局组件,不加入路由管理
Vue.component("page-nav",pagenav);

let myvue = new Vue({
    el:".container",
    store:vuex_store, //注入到vue
    router:routerConfig,
});

5.查看效果
这里写图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ElementUI之表单验证、数据绑定、路由跳转 的相关文章

  • Oracle之常用内置函数

    1 Oracle内置函数 wm concat wm concat 函数是oracle中独有的 mysql中有一个group concat 函数 实现行转列功能 xff0c 即将查询出的某一列值使用逗号进行隔开拼接 xff0c 成为一条数据
  • RRT算法三维避障的MATLAB实现

    RRT算法又称为快速随机扩展数算法 xff0c 是一种普适路径规划算法 xff0c 为什么说是普适算法 xff0c 因为它什么样的苛刻的条件都会极大的可能性找到一条路径 但是这样的算法也往往会伴随缺点 xff1a 1 每次迭代都是在随机找点
  • MiniFly微型四轴学习与开发日志(六)——遥控器任务与系统框架

    文章目录 遥控器任务框架遥控器系统框架 遥控器任务框架 参数配置任务主要功能是保存参数 按键扫描任务主要功能是扫描按键 显示任务主要功能是显示界面 飞控指令发送任务主要功能是将采集摇杆电位器的 AD 值转换为姿态控制命令 xff0c 并以
  • Arduino串口发送与接收16进制数据(HEX)(数据乱码)-JDY-10M组网

    最近使用JDY 10M蓝牙组网 xff0c 需要Arduino收发数据 xff0c 将遇到的一些问题与最终解决方法分享给大家 xff0c 如果内容有问题 xff0c 还请大家指点 1 JDY 10M组网 关于如何JDY 10M如何组网网上介
  • 串口通信协议介绍

    串口通信协议介绍 空闲时 xff1a TX RX为高电平 xff0c 通讯时 xff1a 低电平为起始位 43 送数据位 xff08 从低到高 xff09 43 校验位 43 停止位 常用8N1 0 1 0 1 0 0 0 0 0 0 TX
  • ROS-基础(kinetic---melodic---noetic)

    学习资料参考 xff1a ROS机器人开发实践 胡春旭 目录 工作空间和功能包的创建集成开发环境的搭建话题和服务的实现方法ROS中的命名空间及解析方法ROS分布式通信的方法 热身 常用命令 命令作用catkin create pkg创建功能
  • linux下用多线程实现socket服务器和客户端的异步通信

    前面介绍了用select函数来实现socket的异步收发数据 xff0c 但是select函数也有一些缺陷 xff0c 要使socket能持续地通信 xff0c select必须不停地检测 xff0c 这样进程就会一直阻塞在这里 xff0c
  • SDN之NETCONF Call Home

    本文主要内容都来自于今年二月发布的RFC8071 NETCONF Call Home and RESTCONF Call Home xff0c 该RFC从2015年4月提出到最终发布一共修改了17个版本 xff0c 其间修改内容可以点击查看
  • Command ‘roscore‘ not found, but can be installed with: sudo apt install python-roslaunch

    Command roscore not found but can be installed with sudo apt install python roslaunch roscore 报错 Command 39 roscore 39 n
  • 按键精灵通过抓抓工具来获取坐标位置

    1 按键精灵通过抓抓工具找图 这里我就随便拿一款游戏来测试了 这是一款手游打开之后的界面 xff0c 要求我们点击确定继续现在要求使用脚本在帮我们点击这个确定按钮 我们新建一个脚本 然后打开按键精灵的抓抓工具 然后返回到按键精灵 xff0c
  • 在云服务器上部署项目(上)

    1 购买腾讯云主机 首先我们先了解一下云服务器的概念 云服务器 xff1a 高性能高稳定的云虚拟机 xff0c 可在云中提供弹性可调节的计算容量 xff0c 不让计算能束缚您的想象 xff1b 您可以轻松购买自定义配置的机型 xff0c 在
  • 在云服务器上部署项目(下)

    云服务器上部署项目 xff08 上 xff09 xff1a http blog csdn net gfd54gd5f46 article details 54331207 5 从网上下载jpress开源项目 流程 xff1a 下载jpres
  • 利用String类制作简单的网络爬虫

    网络爬虫 网络爬虫 xff08 又被称为网页蜘蛛 xff0c 网络机器人 xff0c 在FOAF社区中间 xff0c 更经常的称为网页追逐者 xff09 xff0c 是一种按照一定的规则 xff0c 自动地抓取万维网信息的程序或者脚本 另外
  • 令人头大的单片机延时----这里转一篇关于延时函数的文章看看

    标题 xff1a 转 关于nop 函数 2011 02 11 23 49 29 nop函数可以用来延时 xff0c 请问1个NOP延时多少时间 xff0c 怎么计算 xff1f 附一段说明 xff1a void nop void A NOP
  • Java----File类详解

    File类 Java中所有的目录都被当成File 对待 xff0c 它直接处理文件和文件系统 也就是说 xff0c File类没有指定信息怎样从文件读取或向文件存储 xff1b 它描述了文件本身的属性 File对象用来获取或处理与磁盘文件相
  • UEditor在JavaWeb中的应用

    富文本编辑器 xff08 UEditor xff09 在平时开发Java Web项目的时候 xff0c 往往会使用第三方插件来帮助我们更快的实现功能 这里教大家使用百度开源的富文本编辑器 xff08 UEditor xff09 来帮助我们更
  • DataTables入门

    DataTable是什么 xff1f Datatables是一款jquery表格插件 它是一个高度灵活的工具 xff0c 可以将任何HTML表格添加高级的交互功能 分页 xff0c 即时搜索和排序几乎支持任何数据源 xff1a DOM xf
  • Redis-cli客户端的使用

    启动Redis客户端 进入src目录启动Redis客户端 xff08 前提是先启动Redis Server xff09 redis span class hljs keyword cli span 测试存储数据 span class hlj
  • Node.js简介

    Node js概述 Node js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境 Node js 使用了一个事件驱动 非阻塞式 I O 的模型 xff0c 使其轻量又高效Node js 的包管理器 npm xff0
  • 安装Node.js

    Node js安装包及源码下载地址为 xff1a https nodejs org en download Node js 历史版本下载地址 xff1a https nodejs org dist Window 上安装Node js 32

随机推荐

  • 使用Node.js快速创建web服务

    步骤一 引入 required 模块 span class hljs keyword var span http 61 span class hljs built in require span span class hljs string
  • okhttpUtil信任所有证书

    使用okhttp调用https信任所有证书工具类 请求示例 xff1a 结果 xff1a Caused by span class token operator span javax span class token punctuation
  • 从实际性能剖析,为什么MEMS激光雷达才是未来主流?

    车规级激光雷达的技术路线之争 xff0c 似乎已经逐渐明朗 高工智能汽车 注意到 xff0c 目前 xff0c 包括Innoviz以及国内一径科技 速腾聚创等越来越多的厂商先后推出了车规级MEMS激光雷达 另外 xff0c 需要特别注意的是
  • C++之STL

    定义 STL xff08 Standard Template Library xff09 xff0c 即标准模板库 xff0c 是一个具有工业强度的 xff0c 高效的C 43 43 程序库 它被容纳于C 43 43 标准程序库 xff08
  • C语言之strpbrk函数

    该函数的头文件为 include lt string h gt xff0c 其作用是比较字符串str1和str2中是否有相同的字符 xff0c 如果有 xff0c 则返回该字符在str1中的最先出现的位置的指针 其函数原型如下 xff1a
  • Vb.NET与VB6.0的区别

    Visual Basic NET是Microsoft Visual Studio NET套件中主要组成部分之一 NET版本的Visual Basic增加了更多特性 xff0c 而且演化为完全面向对象 xff08 就像C 43 43 xff0
  • STM32学习--GPIO(寄存器)

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 一 GPIO是什么 xff1f 二 引脚GPIO的输入输入框图输入模式作用 GPIO的输入输入框图输入模式作用 GPIO特性GP
  • c#找到网站中的照片

    c 下载图片 一 过程截图 开始 xff1a 正在下载 下载结束 下载成功了 xff01 xff01 xff01 二 代码实例 代码如下 xff08 示例 xff09 xff1a public delegate span class tok
  • linux同时连接有线无线上网问题

    起因 xff1a linux同时连接有线和无线网时 xff0c 希望用有线连内网组网 xff0c 如OAI EPC组网 xff0c 用无线访问外网 xff0c 但是默认会优先用有线 解决 xff1a 所以设置限制 xff0c 只允许目标地址
  • WK2114(一个异步串口UART 扩展为4个串口UART)

    WK2114是UART接口的4通道UART器件 WK2114将一个标准3线异步串口 xff08 UART xff09 扩展成为4个增强 功能串口 xff08 UART xff09 主接口UART在数据传输时主接口的UART可以通过引脚配置为
  • sql解析:获取Select字段

    https blog csdn net github 26672553 article details 100048506 前面已经了解这个解析sql的第三方库 继续深入学习 比如我们要获取到select查询语句中的字段id name ag
  • go协程池

    编写代码实现了一个计算随机数的每个位置数字之和的程序 要求使用goroutine和channel构建生产者和消费者模式 可以指定启动的goroutine数量 woker pool模式 在工作中我们通常使用workerpool模式 控制gor
  • select多路复用

    在某些场景下我们需要同时从多个通道接收数据 通道在接收数据时 如果没有数据可以接收发生阻塞 你也许会写出代码使用遍历的方式来实现 span class token keyword for span span class token punc
  • 并发安全和锁

    有时候在Go代码中可能会存在多个goroutine同时操作一个资源 xff0c 这种情况会发生数据竞态问题 举例 xff1a var x int64 var wg sync WaitGroup func add for i 61 0 i l
  • 解决import torch 报错:Failed to load image Python extension: warn(f“Failed to load image Python extens

    配置yolov5 下载地址 xff1a torch 和 torchvision的 下载完之后发现import torch没问题 但是import torchvision报错了 查阅资料原来是版本对不上 7条消息 PyTorch碎片 xff1
  • Mac电脑 - “USB 10/100 LAN”的电缆可能未插好,或另一端的设备没有响应。

    Mac突然就无法上网了 有可能装个驱动就好了 xff0c 前提是确保你的网卡芯片是realtek的 解决方法 xff1a 下这个驱动 xff0c 就好了
  • show engine innodb status解读

    注 xff1a 以下内容为根据 高性能mysql第三版 和 mysql技术内幕innodb存储引擎 的innodb status部分的个人理解 xff0c 如果有错误 xff0c 还望指正 xff01 xff01 innodb存储引擎在sh
  • Vuex速学篇:(1)基本套路

    我们前面做了一个这样的页面 xff0c 为了增加我们的学习难度 xff0c 我们特意拆分成了不同的组件 我们知道 xff0c 我们在子组件里并不能直接对兄弟组件里的属性进行操作 xff0c 我们通过this emit 调用父组件的方法 xf
  • ElementUI案例演示:导航、布局、加载动画

    知识点 1 vue router之嵌套路由 http router vuejs org zh cn essentials nested routes html 2 element ui 导航组件 布局组件 加载动画 http element
  • ElementUI之表单验证、数据绑定、路由跳转

    1 新建表单组件el form vue span class hljs tag lt span class hljs title template span gt span span class hljs tag lt span class