Vue.js组件props数据验证实现详解


Posted in Javascript onOctober 19, 2019

本文实例为大家分享了Vue.js组件props数据验证的具体代码,供大家参考,具体内容如下

数据验证

一般当组件需要提供给别人使用时,就需要使用数据验证。

示例:

<script>
  Vue.component('my-component',{
    props:{
      //必须是数字类型
      propA: Number,
      //必须是字符串或数字类型
      propB:[String, Number],
      //布尔值,如果没有定义,默认值就是true
      propC:{
        type: Boolean,
        default: true
      },
      //数字,而且是必选
      propD: {
        type: Number,
        required: true
      },
      //如果是数组或对象,默认值必须是一个函数来返回
      propE: {
        type: Array,
        default: function () {
          return {};
        }
      },
      //自定义验证函数
      propF: {
        viladator: function (value) {
          return value > 10;
        }
      }
    }
  });
</script>

验证的type类型可以是:

  • String
  • Number
  • Boolean
  • Object
  • Array
  • Function

type也可以是一个自定义构造器,使用instanceof检测。当prop验证失败时,开发版本下会在控制台抛出一条警告。

实例:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <script src="https://unpkg.com/vue/dist/vue.js"></script>
  <title>组件:参数验证</title>
</head>
<body>
  <!--为组件中接受到的变量进行逻辑验证-->
  <div id="myApp">
    <h1>身世之谜</h1>
    <show-member-info name="koma" :age="25" :detail="{address:'earth',language:'世界语'}"></show-member-info>
  </div>
  <script>
    Vue.component('show-member-info',{
      props: {
        name: {
          type: String,//类型
          required: true,//必选,不选报错
        },
        age: {
          type: Number,
          validator: function (value) {
            return value >= 0 && value <=130;
          }
        },
        detail: {
          type: Object,
          default: function () {
            return {
              address: 'US',
              language: 'English'
            };
          }
        }
      },
      template: '<div>姓名:{{this.name}}<br/>'
          + '年龄:{{this.age}}岁<br/>'
          + '地址:{{this.detail.address}}<br/>'
          + '语言:{{this.detail.language}}</div>'
    });
    var myApp = new Vue({
      el: '#myApp'
    });
  </script>
</body>
</html>

更多教程点击《Vue.js前端组件学习教程》,欢迎大家学习阅读。

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 3D球状导航的文章分类
Jul 06 Javascript
jquery属性过滤选择器使用示例
Jun 18 Javascript
jquery改变tr背景色的示例代码
Dec 28 Javascript
Jquery获取元素的父容器对象示例代码
Feb 10 Javascript
js和css写一个可以自动隐藏的悬浮框
Mar 05 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
Jun 10 Javascript
使用node.js半年来总结的 10 条经验
Aug 18 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
Aug 24 Javascript
基于JavaScript实现的折半查找算法示例
Apr 14 Javascript
解决bootstrap-select 动态加载数据不显示的问题
Aug 10 Javascript
vue组件之间的数据传递方法详解
Apr 19 Javascript
vue中的.$mount('#app')手动挂载操作
Sep 02 Javascript
Vue.js组件使用props传递数据的方法
Oct 19 #Javascript
Vue.js数字输入框组件使用方法详解
Oct 19 #Javascript
JavaScript闭包相关知识解析
Oct 19 #Javascript
Vue.js组件通信之自定义事件详解
Oct 19 #Javascript
Vue.js自定义指令学习使用详解
Oct 19 #Javascript
Vue.js标签页组件使用方法详解
Oct 19 #Javascript
基于JavaScript获取base64图片大小
Oct 18 #Javascript
You might like
php array_search() 函数使用
2010/04/13 PHP
encode脚本和normal脚本混用的问题与解决方法
2007/03/08 Javascript
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
同一个网页中实现多个JavaScript特效的方法
2015/02/02 Javascript
浅谈EasyUI中编辑treegrid的方法
2015/03/01 Javascript
JQuery勾选指定name的复选框集合并显示的方法
2015/05/18 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
AngularJS基础 ng-selected 指令简单示例
2016/08/03 Javascript
在一般处理程序(ashx)中弹出js提示语
2017/08/16 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
让IDE识别webpack的别名alias的实现方法
2020/05/06 Javascript
jQuery实现滑动开关效果
2020/08/02 jQuery
[54:33]2018DOTA2亚洲邀请赛小组赛 A组加赛 Liquid vs Optic
2018/04/03 DOTA
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
修改Python的pyxmpp2中的主循环使其提高性能
2015/04/24 Python
Python在Console下显示文本进度条的方法
2016/02/14 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
python SSH模块登录,远程机执行shell命令实例解析
2018/01/12 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
Apache部署Django项目图文详解
2019/07/30 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
python文件路径操作方法总结
2020/12/21 Python
Silk’n激光脱毛器官网:silkn.com
2016/10/06 全球购物
来自全球大都市的高级街头服饰:Pegador
2018/01/03 全球购物
澳大利亚领先的武术用品和健身器材供应商:SMAI
2019/03/24 全球购物
培训主管的岗位职责
2013/11/23 职场文书
简历自我评价怎么写呢?
2014/01/06 职场文书
总经理的岗位职责
2014/02/23 职场文书
高中生第一学年自我鉴定2015
2014/09/28 职场文书
杭州黄龙洞导游词
2015/02/10 职场文书
JavaScript+HTML实现学生信息管理系统
2021/04/20 Javascript
CentOS 7安装mysql5.7使用XtraBackUp备份工具命令详解
2022/04/12 MySQL