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基本对象
Jan 11 Javascript
SWFObject Flash js调用类
Jul 08 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
Apr 30 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
Dec 18 Javascript
JSON字符串和对象相互转换实例分析
Jun 16 Javascript
js遍历map javaScript遍历map的简单实现
Aug 26 Javascript
js is_valid_filename验证文件名的函数
Jul 19 Javascript
JavaScript实现的浏览器下载文件的方法
Aug 09 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
Oct 15 Javascript
使用js获取伪元素的content实例
Oct 24 Javascript
详解vue-loader在项目中是如何配置的
Jun 04 Javascript
使用webpack/gulp构建TypeScript项目的方法示例
Dec 18 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
我的论坛源代码(一)
2006/10/09 PHP
PHP下打开URL地址的几种方法小结
2010/05/16 PHP
php date()日期时间函数详解
2010/05/16 PHP
php重定向的三种方法分享
2012/02/22 PHP
解析php如何将日志写进syslog
2013/06/28 PHP
php实现数组筛选奇数和偶数示例
2014/04/11 PHP
PHP实现一个限制实例化次数的类示例
2019/09/16 PHP
ExtJS 2.0实用简明教程 之获得ExtJS
2009/04/29 Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
2012/10/11 Javascript
mailto的使用技巧分享
2012/12/21 Javascript
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
JQuery使用index方法获取Jquery对象数组下标的方法
2015/05/18 Javascript
基于JavaScript实现全屏透明遮罩div层锁屏效果
2016/01/26 Javascript
jQuery插件dataTables添加序号列的方法
2016/07/06 Javascript
jquery动态添加文本并获取值的方法
2016/10/12 Javascript
在Vue.js中使用Mixins的方法
2017/09/12 Javascript
ES6与CommonJS中的模块处理的区别
2018/06/13 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
python使用内存zipfile对象在内存中打包文件示例
2014/04/30 Python
Python实现基于HTTP文件传输实例
2014/11/08 Python
python基本语法练习实例
2017/09/19 Python
将python包发布到PyPI和制作whl文件方式
2019/12/25 Python
Python爬虫爬取电影票房数据及图表展示操作示例
2020/03/27 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
2020/09/09 Python
Python 虚拟环境工作原理解析
2020/12/24 Python
使用CSS3的ruby-position固定注音位置的用法示例
2016/07/05 HTML / CSS
草莓网英国官网:Strawberrynet UK
2017/02/12 全球购物
联想瑞士官方网站:Lenovo Switzerland
2017/11/19 全球购物
Belvilla法国:休闲度假房屋出租
2020/10/03 全球购物
大学生职业生涯设计书
2014/01/02 职场文书
宿舍保安职务说明书
2014/02/25 职场文书
大学校务公开实施方案
2014/03/31 职场文书
入党团支部推荐意见
2015/06/02 职场文书
浅谈Redis在直播场景的实践方案
2021/04/27 Redis
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL
对PyTorch中inplace字段的全面理解
2021/05/22 Python