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 相关文章推荐
JavaScript实现两个Table固定表头根据页面大小自行调整
Jan 03 Javascript
JavaScript二维数组实现的省市联动菜单
May 08 Javascript
jQuery中:input选择器用法实例
Jan 03 Javascript
js中 javascript:void(0) 用法详解
Aug 11 Javascript
jQuery实现的自定义滚动条实例详解
Sep 20 Javascript
AngularJS动态绑定HTML的方法分析
Nov 07 Javascript
HTML5canvas 绘制一个圆环形的进度表示实例
Dec 16 Javascript
echarts3 使用总结(绘制各种图表,地图)
Jan 05 Javascript
javascript实现动态显示颜色块的报表效果
Apr 10 Javascript
小程序实现五星点评效果
Nov 03 Javascript
vue自定义指令的创建和使用方法实例分析
Dec 04 Javascript
详解搭建一个vue-cli的移动端H5开发模板
Jan 17 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的ajax框架xajax入门与试用介绍
2010/12/19 PHP
PHP处理JSON字符串key缺少双引号的解决方法
2014/09/16 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
PHP访问Google Search API的方法
2015/03/05 PHP
微信随机生成红包金额算法php版
2016/07/21 PHP
PHP调用其他文件中的类
2018/04/02 PHP
PHP封装的完整分页类示例
2018/08/21 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
PHP单例模式数据库连接类与页面静态化实现方法
2019/03/20 PHP
JavaScript实现禁止后退的方法
2006/12/27 Javascript
Javascript引用指针使用介绍
2012/11/07 Javascript
基于AngularJS实现页面滚动到底自动加载数据的功能
2015/10/16 Javascript
详解JS中Array对象扩展与String对象扩展
2016/01/07 Javascript
location.hash保存页面状态的技巧
2016/04/28 Javascript
Ajax的概述与实现过程
2016/11/18 Javascript
jQuery Ajax File Upload实例源码
2016/12/12 Javascript
初识 Vue.js 中的 *.Vue文件
2017/11/22 Javascript
Node.js Buffer用法解读
2018/05/18 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
微信小程序实现多选框功能的实例代码
2020/06/24 Javascript
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
Python探索之pLSA实现代码
2017/10/25 Python
python 检查是否为中文字符串的方法
2018/12/28 Python
python实现彩色图转换成灰度图
2019/01/15 Python
Python实现数值积分方式
2019/11/20 Python
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
2020/02/11 Python
检测浏览器是否支持html5视频的代码
2013/03/28 HTML / CSS
简单租房协议书(范本)
2014/10/13 职场文书
公路局群众路线教育实践活动第一阶段工作汇报
2014/10/25 职场文书
村党的群众路线教育实践活动总结材料
2014/10/31 职场文书
护士先进个人总结
2015/02/13 职场文书
财务会计求职信范文
2015/03/20 职场文书
出国留学英文自荐信
2015/03/25 职场文书
人事行政助理岗位职责
2015/04/11 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书