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 相关文章推荐
Prototype使用指南之dom.js
Jan 10 Javascript
InnerHtml和InnerText的区别分析
Mar 13 Javascript
基于jquery的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )
Oct 10 Javascript
iframe 上下滚动条如何默认在下方实现原理
Dec 10 Javascript
教你如何自定义百度分享插件以及bshare分享插件的分享按钮
Jun 20 Javascript
javascript连续赋值问题
Jul 08 Javascript
ztree实现权限横向显示功能
May 20 Javascript
Vue.js 动态为img的src赋值方法
Mar 14 Javascript
vue实现简单loading进度条
Jun 06 Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
Jul 16 Javascript
vue使用echarts实现水平柱形图实例
Sep 09 Javascript
JS精髓原型链继承及构造函数继承问题纠正
Jun 16 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获取用户IPv4或IPv6地址的代码
2012/11/15 PHP
PHP 生成N个不重复的随机数
2015/01/21 PHP
用jquery等比例控制图片宽高的具体实现
2014/01/28 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
2014/03/18 Javascript
jQuery循环滚动新闻列表示例代码
2014/06/17 Javascript
Javascript学习笔记之 对象篇(一) : 对象的使用和属性
2014/06/24 Javascript
JavaScript学习笔记之基础语法
2015/01/22 Javascript
jQuery实现仿百度帖吧头部固定导航效果
2015/08/07 Javascript
jQuery多条件筛选如何实现
2015/11/04 Javascript
js中substring和substr两者区别和使用方法
2015/11/09 Javascript
JQuery之proxy实现绑定代理方法
2016/08/01 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
原JS实现banner图的常用功能
2017/06/12 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
jQuery实现获取及设置CSS样式操作详解
2018/09/05 jQuery
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
Node.js实现简单的爬取的示例代码
2019/06/25 Javascript
vue中 数字相加为字串转化为数值的例子
2019/11/07 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
浅析Vue 中的 render 函数
2020/02/28 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
2020/10/27 Javascript
Python中实现变量赋值传递时的引用和拷贝方法
2018/04/29 Python
PyQt Qt Designer工具的布局管理详解
2019/08/07 Python
Docker部署Python爬虫项目的方法步骤
2020/01/19 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
2020/03/04 Python
css3实现多个元素依次显示效果
2017/12/12 HTML / CSS
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
法国体育用品商店:GO Sport
2019/10/23 全球购物
写自荐信的注意事项
2014/03/09 职场文书
监察建议书范文
2014/03/12 职场文书
老干部工作汇报材料
2014/10/28 职场文书
2015年度物业公司工作总结
2015/04/27 职场文书
如何利用opencv判断两张图片是否相同详解
2021/07/07 Python