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 检测、添加、移除样式(className)函数代码
Sep 08 Javascript
JS实现控制表格内指定单元格内容对齐的方法
Mar 30 Javascript
jQuery图片旋转插件jQueryRotate.js用法实例(附demo下载)
Jan 21 Javascript
AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析
Jan 19 Javascript
JS实现的数字格式化功能示例
Feb 10 Javascript
浅谈node的事件机制
Oct 09 Javascript
关于Vue源码vm.$watch()内部原理详解
Apr 26 Javascript
JS开发常用工具函数(小结)
Jul 04 Javascript
node.js实现带进度条的多文件上传
Mar 27 Javascript
Javascript柯里化实现原理及作用解析
Oct 22 Javascript
ant design vue中日期选择框混合时间选择器的用法说明
Oct 27 Javascript
在antd Table中插入可编辑的单元格实例
Oct 28 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 函数使用方法与函数定义方法
2010/05/09 PHP
PHP屏蔽关键字实现方法
2016/11/17 PHP
PHP实现基于状态的责任链审批模式详解
2019/05/31 PHP
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
2012/03/01 Javascript
JQuery实现倒计时按钮的实现代码
2012/03/23 Javascript
Jquery动态进行图片缩略的原理及实现
2013/08/13 Javascript
一个css与js结合的下拉菜单支持主流浏览器
2014/10/08 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
2015/12/30 Javascript
基于javascript实现句子翻牌网页版小游戏
2016/03/23 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
微信小程序开发之大转盘 仿天猫超市抽奖实例
2016/12/08 Javascript
jQuery给表格添加分页效果
2017/03/02 Javascript
Javascript防止图片拉伸的自适应处理方法
2017/12/26 Javascript
Angularjs中date过滤器失效的问题及解决方法
2018/07/06 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
关于JS模块化的知识点分享
2019/10/16 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
js实现微信聊天界面
2020/08/09 Javascript
[47:45]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第一场 2月26日
2021/03/11 DOTA
Python中replace方法实例分析
2014/08/20 Python
Python基于OpenCV实现人脸检测并保存
2019/07/23 Python
使用pip安装python库的多种方式
2019/07/31 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
移动web模拟客户端实现多方框输入密码效果【附代码】
2016/03/25 HTML / CSS
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
RIP版本1跟版本2的区别
2013/12/30 面试题
承办会议欢迎词
2014/01/17 职场文书
个人自我剖析材料
2014/02/07 职场文书
入党介绍人评语
2014/05/06 职场文书
主题团日活动总结
2014/06/25 职场文书
庆六一文艺汇演活动方案
2014/08/26 职场文书
小学二年级语文教学反思
2016/03/03 职场文书
如何使JavaScript休眠或等待
2021/04/27 Javascript
Python 内置函数速查表一览
2021/06/02 Python
手残删除python之后的补救方法
2021/06/26 Python
mongoDB数据库索引快速入门指南
2022/03/23 MongoDB