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 相关文章推荐
escape、encodeURI、encodeURIComponent等方法的区别比较
Dec 27 Javascript
ExtJS 2.0实用简明教程 之Border区域布局
Apr 29 Javascript
jquery实现文字由下到上循环滚动的实例代码
Aug 09 Javascript
jquery定时滑出可最小化的底部提示层特效代码
Oct 02 Javascript
jQuery蓝色风格滑动导航栏代码分享
Aug 19 Javascript
javascript编程异常处理实例小结
Nov 30 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
Jan 22 Javascript
基于javascript实现泡泡大冒险网页版小游戏
Mar 23 Javascript
javascript使用闭包模拟对象的私有属性和方法
Oct 05 Javascript
关于webpack2和模块打包的新手指南(小结)
Aug 07 Javascript
微信小程序之事件交互操作实例分析
Dec 03 Javascript
javascript canvas检测小球碰撞
Apr 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中变量及部分适用方法
2008/03/27 PHP
PHP 错误之引号中使用变量
2009/05/04 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
2014/05/15 PHP
Codeigniter实现多文件上传并创建多个缩略图
2014/06/12 PHP
使用PHPExcel操作Excel用法实例分析
2015/03/26 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
2016/12/12 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
2019/10/16 PHP
javascript与css3动画结合使用小结
2015/03/11 Javascript
Bootstrap实现响应式导航栏效果
2015/12/28 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
基于JavaScript实现熔岩灯效果导航菜单
2017/01/04 Javascript
jQuery实现获取h1-h6标题元素值的方法
2017/03/06 Javascript
使用socket.io制做简易WEB聊天室
2018/01/02 Javascript
详解简单易懂的 ES6 Iterators 指南和示例
2019/09/24 Javascript
[01:28]国服启动器接入蒸汽平台操作流程视频
2021/03/11 DOTA
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
Python标准库之itertools库的使用方法
2017/09/07 Python
快速解决pandas.read_csv()乱码的问题
2018/06/15 Python
ansible动态Inventory主机清单配置遇到的坑
2020/01/19 Python
一文读懂Python 枚举
2020/08/25 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
林清轩官方网站:山茶花润肤油开创者
2016/10/26 全球购物
北美女性服装零售连锁店:maurices
2019/06/12 全球购物
美国隐形眼镜网上商店:Lens.com
2019/09/03 全球购物
"引用"与多态的关系
2013/02/01 面试题
如何实现一个自定义类的序列化
2012/05/22 面试题
用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别
2012/11/04 面试题
法人委托书范本
2014/04/04 职场文书
幼儿园师德师风学习材料
2014/05/29 职场文书
交通事故赔偿协议书怎么写
2014/10/04 职场文书
教师党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
标准离婚协议书范文下载
2014/11/30 职场文书
学校三八妇女节活动总结
2015/02/06 职场文书
2015年前台个人工作总结
2015/04/03 职场文书
二手房购房意向书
2015/05/09 职场文书
Linux中各个目录的作用与内容
2022/06/28 Servers