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 获取页面元素的位置的代码
Sep 25 Javascript
jquery固定底网站底部菜单效果
Aug 13 Javascript
JQuery和PHP结合实现动态进度条上传显示
Nov 23 Javascript
js事件源window.event.srcElement兼容性写法(详解)
Nov 25 Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
Dec 11 Javascript
React实现点击删除列表中对应项
Jan 10 Javascript
JS日程管理插件FullCalendar简单实例
Feb 07 Javascript
jQuery Tree Multiselect使用详解
May 02 jQuery
js 两数组去除重复数值的实例
Dec 06 Javascript
JavaScript 防盗链的原理以及破解方法
Dec 29 Javascript
Vue常用API、高级API的相关总结
Feb 02 Vue.js
javascript实现数字时钟效果
Feb 06 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
PHP4和PHP5共存于一系统
2006/11/17 PHP
excellent!――ASCII Art(由目标图象生成ascii)
2007/02/20 PHP
PHP 常用时间函数资料整理
2016/10/22 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
jQuery创建自己的插件(自定义插件)的方法
2010/06/10 Javascript
jQuery1.6 正式版发布并提供下载
2011/05/05 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
js 金额格式化来回转换示例
2014/02/23 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
2014/05/07 Javascript
js处理php输出时间戳对不上号的解决方法
2014/06/20 Javascript
JavaScript阻止事件冒泡示例分享
2014/12/28 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
jquery合并表格中相同文本的相邻单元格
2015/07/17 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
2016/04/17 Javascript
prototype.js简单实现ajax功能示例
2017/10/18 Javascript
Spring Boot/VUE中路由传递参数的实现代码
2018/03/02 Javascript
three.js显示中文字体与tween应用详析
2021/01/04 Javascript
[03:18]DOTA2亚洲邀请赛小组赛第一日 RECAP赛事回顾
2015/01/30 DOTA
[01:15:15]VG VS EG Supermajor小组赛B组胜者组第一轮 BO3第二场 6.2
2018/06/03 DOTA
python 示例分享---逻辑推理编程解决八皇后
2014/07/20 Python
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
Python一行代码解决矩阵旋转的问题
2019/11/30 Python
python代码实现TSNE降维数据可视化教程
2020/02/28 Python
Python脚本如何在bilibili中查找弹幕发送者
2020/06/04 Python
css3实现冲击波效果的示例代码
2018/01/11 HTML / CSS
斯凯奇美国官网:SKECHERS美国
2016/08/20 全球购物
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
Linux Interview Questions For software testers
2013/05/17 面试题
大学生专科毕业生自我评价
2013/11/17 职场文书
党支部书记先进事迹
2014/01/17 职场文书
先进事迹报告会感言
2014/01/24 职场文书
员工入职担保书范文
2014/04/01 职场文书
干部作风整顿个人剖析材料
2014/10/06 职场文书
Python内置数据类型中的集合详解
2022/03/18 Python