prop-Types验证
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验证相关推荐
- Vue.js Prop
Prop 的大小写 (camelCase vs kebab-case) HTML 中的特性名是大小写不敏感的,所以浏览器会把所有大写字符解释为小写字符.这意味着当你使用 DOM 中的模板时,camel ...
- vue_prop注册及验证
目录 1.注册自定义特性 2.prop的大小写 3.传递给一个对象的所有属性 4.prop验证 1.注册自定义特性 当我们在注册组件时,希望其结构.样式和行为是不变的,但是数据应该是可变的,也就是说, ...
- vue2.0 prop的使用
个人觉得Prop的使用需要注意四点: 第一点: 使用 DOM 中的模板时,camelCase (驼峰命名法) 的 prop 名需要使用其等价的 kebab-case (短横线分隔命名) 命名 HTML ...
- vue的Prop属性
转载自 Prop Prop 的大小写 (camelCase vs kebab-case) HTML 中的特性名是大小写不敏感的,所以浏览器会把所有大写字符解释为小写字符.这意味着当你使用 DOM 中 ...
- element手机验证格式_vue封装 element-ui form表单验证 正则匹配手机号 自定义校验表格内容...
效果 image.png 在methods中 //检查手机号 isCellPhone(val) { if (!/^1(3|4|5|6|7|8)\d{9}$/.test(val)) { return f ...
- prop与自定义事件
prop与自定义事件 1. prop 1-1 什么是prop prop 是你可以在组件上注册的一些自定义属性.当一个值传递给一个 prop 属性的时候,它就变成了那个组件实例的一个属性 组件中 pro ...
- vue中prop的用法
prop的大小写 HTML 中的 attribute 名是大小写不敏感的,所以浏览器会把所有大写字符解释为小写字符.这意味着当你使用 DOM 中的模板时,camelCase(驼峰命名法)的 prop ...
- spring mvc + JSR-303验证框架
为什么80%的码农都做不了架构师?>>> http://www.cnblogs.com/liukemng/p/3738055.html 在系列(4).(5)中我们展示了如何绑定 ...
- SpringMVC学习系列(6) 之 数据验证
在系列(4).(5)中我们展示了如何绑定数据,绑定完数据之后如何确保我们得到的数据的正确性?这就是我们本篇要说的内容 -> 数据验证. 这里我们采用Hibernate-validator来进行验 ...
- SpringMVC学习系列(5) 之 数据验证
原文地址 http://www.cnblogs.com/liukemng/p/3738055.html 这里我们采用Hibernate-validator来进行验证,Hibernate-validat ...
最新文章
- Python3中的字符串
- 国内AI研究「顶不了天、落不了地」,到底什么是基础研究?
- 一文告诉你,谷歌是否真的实现了「量子至上」
- iOS 10应用开发基础教程
- 字符编码_Windows资料
- C语言-将数字转化为字符串
- ubuntu修改登陆用户名称_修改ubuntu的用户名(注意用户名和主机名的区别)
- 9件事把你从消极情绪中解救出来
- jq ajax提交评论,织梦评论怎么改成自己的jq ajax评论
- Zookeeper之session的基本原理
- 值转换成布尔类型的False;
- 松下plc驱动VF0变频器_2021厦门松下伺服马达回收现金回收
- 乡村的野蛮生长|独秀日记
- 让·阿方索·德纳(Jean Alfonso decena)引领对话式人工智能创新并颠覆菲律宾金融科技...
- shamir秘密共享matlab程序,shamir 秘密共享代码
- android屏幕旋转生命周期,Activity、Fragment生命周期---横竖屏切换的生命周期
- 模拟器+Appium+Python抓取App内容
- Effie: 一款属于程序工作者的写作软件
- 【CSS解决页面高度塌陷问题】
- 苹果手机防盗软件_苹果手机更好用的笔记软件是哪款?
热门文章
- ATE DPS参数:ATE DPS上电、断电缓急程度控制参数
- Ubuntu零基础教学-Ubuntu20.04安装搜狗输入法|超级详细,建议收藏
- 吐血力作:平台云deis之安装deis平台
- 华为p8高配版android系统版本,华为P8的手机系统是什么?能升级安卓5.0吗?
- epic怎么添加本地游戏_科技资讯:GTA5怎么免费领取
- 平安夜祝福网站html5源码,《初开在平安夜之花》:无法逃离的荒诞乐园评测
- Java数据结构——二叉树的遍历
- oracle删除表数据的3种方式
- HJ1 字符串最后一个单词的长度
- Lua编辑器Scite汉化