import React from "react";
import PropTypes from "prop-types";class MyComponent extends React.Component {render() {// 利用属性做更多得事}
}MyComponent.propTypes = {// 你可以定义一个属性是特定的JS类型(Array,Boolean,Function,Number,Object,String,Symbol)。默认情况下,这些都是可选的。optionalArray: PropTypes.array,optionalBool: PropTypes.bool,optionalFunc: PropTypes.func,optionalNumber: PropTypes.number,optionalObject: PropTypes.object,optionalString: PropTypes.string,optionalSymbol: PropTypes.symbol,// 指定类型为:任何可以被渲染的元素,包括数字,字符串,react 元素,数组,fragment。optionalNode: PropTypes.node,// 指定类型为:一个react 元素optionalElement: PropTypes.element,// 你可以类型为某个类的实例,这里使用JS的instanceOf操作符实现optionalMessage: PropTypes.instanceOf(Message),// 指定枚举类型:你可以把属性限制在某些特定值之内optionalEnum: PropTypes.oneOf(["News", "Photos"]),// 指定多个类型:你也可以把属性类型限制在某些指定的类型范围内optionalUnion: PropTypes.oneOfType([PropTypes.string,PropTypes.number,PropTypes.instanceOf(Message),]),// 指定某个类型的数组optionalArrayOf: PropTypes.arrayOf(PropTypes.number),// 指定类型为对象,且对象属性值是特定的类型optionalObjectOf: PropTypes.objectOf(PropTypes.number),// 指定类型为对象,且可以规定哪些属性必须有,哪些属性可以没有optionalObjectWithShape: PropTypes.shape({optionalProperty: PropTypes.string,requiredProperty: PropTypes.number.isRequired,}),// 指定类型为对象,且可以指定对象的哪些属性必须有,哪些属性可以没有。如果出现没有定义的属性,会出现警告。// 下面的代码optionalObjectWithStrictShape的属性值为对象,但是对象的属性最多有两个,optionalProperty 和 requiredProperty。// 出现第三个属性,控制台出现警告。optionalObjectWithStrictShape: PropTypes.exact({optionalProperty: PropTypes.string,requiredProperty: PropTypes.number.isRequired,}),// 加上isReqired限制,可以指定某个属性必须提供,如果没有出现警告。requiredFunc: PropTypes.func.isRequired,requiredAny: PropTypes.any.isRequired,// 你也可以指定一个自定义的验证器。如果验证不通过,它应该返回Error对象,而不是`console.warn `或抛出错误。`oneOfType`中不起作用。customProp(props, propName, componentName) {if (!/matchme/.test(props[propName])) {return new Error(`Invalid prop \`${propName}\` supplied to` +` \`${componentName}\`. Validation failed.`);}},// 你也可以提供一个自定义的验证器 arrayOf和objectOf。如果验证失败,它应该返回一个Error对象。// 验证器用来验证数组或对象的每个值。验证器的前两个参数是数组或对象本身,还有对应的key。customArrayProp: PropTypes.arrayOf((propValue, key, componentName, location, propFullName) => {if (!/matchme/.test(propValue[key])) {return new Error(`Invalid prop \`${propFullName}\` supplied to` +` \`${componentName}\`. Validation failed.`);}}),
};

prop-Types验证相关推荐

  1. Vue.js Prop

    Prop 的大小写 (camelCase vs kebab-case) HTML 中的特性名是大小写不敏感的,所以浏览器会把所有大写字符解释为小写字符.这意味着当你使用 DOM 中的模板时,camel ...

  2. vue_prop注册及验证

    目录 1.注册自定义特性 2.prop的大小写 3.传递给一个对象的所有属性 4.prop验证 1.注册自定义特性 当我们在注册组件时,希望其结构.样式和行为是不变的,但是数据应该是可变的,也就是说, ...

  3. vue2.0 prop的使用

    个人觉得Prop的使用需要注意四点: 第一点: 使用 DOM 中的模板时,camelCase (驼峰命名法) 的 prop 名需要使用其等价的 kebab-case (短横线分隔命名) 命名 HTML ...

  4. vue的Prop属性

    转载自  Prop Prop 的大小写 (camelCase vs kebab-case) HTML 中的特性名是大小写不敏感的,所以浏览器会把所有大写字符解释为小写字符.这意味着当你使用 DOM 中 ...

  5. element手机验证格式_vue封装 element-ui form表单验证 正则匹配手机号 自定义校验表格内容...

    效果 image.png 在methods中 //检查手机号 isCellPhone(val) { if (!/^1(3|4|5|6|7|8)\d{9}$/.test(val)) { return f ...

  6. prop与自定义事件

    prop与自定义事件 1. prop 1-1 什么是prop prop 是你可以在组件上注册的一些自定义属性.当一个值传递给一个 prop 属性的时候,它就变成了那个组件实例的一个属性 组件中 pro ...

  7. vue中prop的用法

    prop的大小写 HTML 中的 attribute 名是大小写不敏感的,所以浏览器会把所有大写字符解释为小写字符.这意味着当你使用 DOM 中的模板时,camelCase(驼峰命名法)的 prop ...

  8. spring mvc + JSR-303验证框架

    为什么80%的码农都做不了架构师?>>>    http://www.cnblogs.com/liukemng/p/3738055.html 在系列(4).(5)中我们展示了如何绑定 ...

  9. SpringMVC学习系列(6) 之 数据验证

    在系列(4).(5)中我们展示了如何绑定数据,绑定完数据之后如何确保我们得到的数据的正确性?这就是我们本篇要说的内容 -> 数据验证. 这里我们采用Hibernate-validator来进行验 ...

  10. SpringMVC学习系列(5) 之 数据验证

    原文地址 http://www.cnblogs.com/liukemng/p/3738055.html 这里我们采用Hibernate-validator来进行验证,Hibernate-validat ...

最新文章

  1. Python3中的字符串
  2. 国内AI研究「顶不了天、落不了地」,到底什么是基础研究?
  3. 一文告诉你,谷歌是否真的实现了「量子至上」
  4. iOS 10应用开发基础教程
  5. 字符编码_Windows资料
  6. C语言-将数字转化为字符串
  7. ubuntu修改登陆用户名称_修改ubuntu的用户名(注意用户名和主机名的区别)
  8. 9件事把你从消极情绪中解救出来
  9. jq ajax提交评论,织梦评论怎么改成自己的jq ajax评论
  10. Zookeeper之session的基本原理
  11. 值转换成布尔类型的False;
  12. 松下plc驱动VF0变频器_2021厦门松下伺服马达回收现金回收
  13. 乡村的野蛮生长|独秀日记
  14. 让·阿方索·德纳(Jean Alfonso decena)引领对话式人工智能创新并颠覆菲律宾金融科技...
  15. shamir秘密共享matlab程序,shamir 秘密共享代码
  16. android屏幕旋转生命周期,Activity、Fragment生命周期---横竖屏切换的生命周期
  17. 模拟器+Appium+Python抓取App内容
  18. Effie: 一款属于程序工作者的写作软件
  19. 【CSS解决页面高度塌陷问题】
  20. 苹果手机防盗软件_苹果手机更好用的笔记软件是哪款?

热门文章

  1. ATE DPS参数:ATE DPS上电、断电缓急程度控制参数
  2. Ubuntu零基础教学-Ubuntu20.04安装搜狗输入法|超级详细,建议收藏
  3. 吐血力作:平台云deis之安装deis平台
  4. 华为p8高配版android系统版本,华为P8的手机系统是什么?能升级安卓5.0吗?
  5. epic怎么添加本地游戏_科技资讯:GTA5怎么免费领取
  6. 平安夜祝福网站html5源码,《初开在平安夜之花》:无法逃离的荒诞乐园评测
  7. Java数据结构——二叉树的遍历
  8. oracle删除表数据的3种方式
  9. HJ1 字符串最后一个单词的长度
  10. Lua编辑器Scite汉化