react之prop验证代码实例
来源:互联网 发布:淘宝产品标题优化 编辑:程序博客网 时间:2024/06/07 04:14
Prop 验证
随着应用不断变大,保证组件被正确使用变得非常有用。为此我们引入 propTypes 。 React.PropTypes 提供
很多验证器 (validator) 来验证传入数据的有效性。当向 props 传入无效数据时,JavaScript 控制台会抛出警
告。注意为了性能考虑,只在开发环境验证 propTypes 。下面用例子来说明不同验证器的区别:
React.createClass({
propTypes: {
// 可以声明 prop 为指定的 JS 基本类型。默认
// 情况下,这些 prop 都是可传可不传的。
optionalArray: React.PropTypes.array,
optionalBool: React.PropTypes.bool,
optionalFunc: React.PropTypes.func,
optionalNumber: React.PropTypes.number,
optionalObject: React.PropTypes.object,
optionalString: React.PropTypes.string,
// 所有可以被渲染的对象:数字,
// 字符串,DOM 元素或包含这些类型的数组。
optionalNode: React.PropTypes.node,
// React 元素
optionalElement: React.PropTypes.element,
// 用 JS 的 instanceof 操作符声明 prop 为类的实例。
optionalMessage: React.PropTypes.instanceOf(Message),
// 用 enum 来限制 prop 只接受指定的值。
optionalEnum: React.PropTypes.oneOf(['News', 'Photos']),
// 指定的多个对象类型中的一个
optionalUnion: React.PropTypes.oneOfType([
React.PropTypes.string,
React.PropTypes.number,
React.PropTypes.instanceOf(Message)
第 2 章 指南 - GUIDES | 51
]),
// 指定类型组成的数组
optionalArrayOf: React.PropTypes.arrayOf(React.PropTypes.number),
// 指定类型的属性构成的对象
optionalObjectOf: React.PropTypes.objectOf(React.PropTypes.number),
// 特定形状参数的对象
optionalObjectWithShape: React.PropTypes.shape({
color: React.PropTypes.string,
fontSize: React.PropTypes.number
}),
// 以后任意类型加上 `isRequired` 来使 prop 不可空。
requiredFunc: React.PropTypes.func.isRequired,
// 不可空的任意类型
requiredAny: React.PropTypes.any.isRequired,
// 自定义验证器。如果验证失败需要返回一个 Error 对象。不要直接
// 使用 `console.warn` 或抛异常,因为这样 `oneOfType` 会失效。
customProp: function(props, propName, componentName) {
if (!/matchme/.test(props[propName])) {
return new Error('Validation failed!');
}
随着应用不断变大,保证组件被正确使用变得非常有用。为此我们引入 propTypes 。 React.PropTypes 提供
很多验证器 (validator) 来验证传入数据的有效性。当向 props 传入无效数据时,JavaScript 控制台会抛出警
告。注意为了性能考虑,只在开发环境验证 propTypes 。下面用例子来说明不同验证器的区别:
React.createClass({
propTypes: {
// 可以声明 prop 为指定的 JS 基本类型。默认
// 情况下,这些 prop 都是可传可不传的。
optionalArray: React.PropTypes.array,
optionalBool: React.PropTypes.bool,
optionalFunc: React.PropTypes.func,
optionalNumber: React.PropTypes.number,
optionalObject: React.PropTypes.object,
optionalString: React.PropTypes.string,
// 所有可以被渲染的对象:数字,
// 字符串,DOM 元素或包含这些类型的数组。
optionalNode: React.PropTypes.node,
// React 元素
optionalElement: React.PropTypes.element,
// 用 JS 的 instanceof 操作符声明 prop 为类的实例。
optionalMessage: React.PropTypes.instanceOf(Message),
// 用 enum 来限制 prop 只接受指定的值。
optionalEnum: React.PropTypes.oneOf(['News', 'Photos']),
// 指定的多个对象类型中的一个
optionalUnion: React.PropTypes.oneOfType([
React.PropTypes.string,
React.PropTypes.number,
React.PropTypes.instanceOf(Message)
第 2 章 指南 - GUIDES | 51
]),
// 指定类型组成的数组
optionalArrayOf: React.PropTypes.arrayOf(React.PropTypes.number),
// 指定类型的属性构成的对象
optionalObjectOf: React.PropTypes.objectOf(React.PropTypes.number),
// 特定形状参数的对象
optionalObjectWithShape: React.PropTypes.shape({
color: React.PropTypes.string,
fontSize: React.PropTypes.number
}),
// 以后任意类型加上 `isRequired` 来使 prop 不可空。
requiredFunc: React.PropTypes.func.isRequired,
// 不可空的任意类型
requiredAny: React.PropTypes.any.isRequired,
// 自定义验证器。如果验证失败需要返回一个 Error 对象。不要直接
// 使用 `console.warn` 或抛异常,因为这样 `oneOfType` 会失效。
customProp: function(props, propName, componentName) {
if (!/matchme/.test(props[propName])) {
return new Error('Validation failed!');
}
0 0
- react之prop验证代码实例
- React Native之prop-types进行属性确认
- 实例demo之React-Todos
- 实例之数据验证
- php验证码代码实例
- eslint: prop type 'object' is forbidden(react/forbid-prop-types)
- React中prop和state的区别
- React中prop和state的区别
- React中prop和state的区别
- React Native实例之房产搜索APP
- React之简单入门实例(计时器)
- Android之build.prop
- iOS多线程GCD之队列和任务详解(实例代码验证篇)
- asp.net验证码制作实例代码
- 常用验证JS代码基础及实例
- java生成图片验证码实例代码
- Ajax+Struts2实现验证码验证功能实例代码
- VueJs组件prop验证简单理解
- 整数变换
- 15步战略轻松提升Linux服务器安全水平
- PHP使用SMTP发送邮件报错代码535问题解决
- 字符设备驱动第十三课---内存分配
- Swift与OC中拷贝与可变性总结
- react之prop验证代码实例
- 移动前端开发之viewport的深入理解
- Synovus利息收入增长;高成本持续
- You have a maze with obstacles and non-zero digits in it
- HTML-CSS-JS Prettify 格式参数设置
- head命令
- final数据
- Android selector中的属性浅析
- 除了Maven,还有一种解决jar包管理及定制的好方法