React—— props校验(非typescript校验类型)

非typescript环境下,当我们在封装组件的时候,接受props时传入的内容,需要做类型检测,那我们可以用props校验进行类型的检查。

props校验允许在创建组件的时候,就约定props的格式、类型等

实现步骤:

  • 导入 prop-types

  • 使用组件名.propTypes = {} 来给组件的props添加校验规则

  • 校验规则通过 PropTypes 对象来指定

  • 如果props想设置默认值,可以通过defaultProps去设置

    1. 常见类型:array、bool、func、number、object、string
    2. React元素类型:element
    3. 必填项:isRequired
    4. 特定结构的对象:shape({})
js 复制代码
import PropTypes from 'prop-types'
function App(props) {
    return (
    	<h1>{props.colors}</h1>
    	<h1>{props.num}</h1>
    	<h1>{props.name}</h1>
    )
}
// 这里约定了属性时什么类型,不然类型检测不通过,会清晰报错
App.propTypes = {
    colors: PropTypes.array,
    num:PropTypes.number,
    name:PropTypes.string,
}

// 设置默认值
App.defaultProps = {
	colors: ['蓝色'],
    nun:18,
    name:'hyy'
}

###React------ 类的-static 校验简写上面的校验

ES6新出的class可以帮组我们进行类型校验,我们可以定义一个类,给定其类型即默认值。

  • 实例成员: 通过实例 调用的属性或者方法叫做实例成员(属性或者方法)

  • 静态成员:通过类或者构造函数本身 才能访问的属性或者方法

    static可以把实例成员设置未静态成员

static的作用:简写校验、简写默认值

js 复制代码
import PropTypes from 'prop-types'
function App(props) {
    return (
    	<h1>{props.colors}</h1>
    	<h1>{props.num}</h1>
    	<h1>{props.name}</h1>
    )

// 这里约定了属性时什么类型,不然类型检测不通过,会清晰报错
static propTypes = {
    colors: PropTypes.array,
    num:PropTypes.number,
    name:PropTypes.string,
}

// 设置默认值
static defaultProps = {
	colors: ['蓝色'],
    nun:18,
    name:'hyy'
}
}
相关推荐
海的诗篇_28 分钟前
前端开发面试题总结-JavaScript篇(二)
开发语言·前端·javascript·typescript
琹箐38 分钟前
ant-design4.xx实现数字输入框; 某些输入法数字需要连续输入两次才显示
前端·javascript·anti-design-vue
程序员-小李39 分钟前
VuePress完美整合Toast消息提示
前端·javascript·vue.js
Dontla5 小时前
为什么React列表项需要key?(React key)(稳定的唯一标识key有助于React虚拟DOM优化重绘大型列表)
javascript·react.js·ecmascript
EndingCoder6 小时前
React从基础入门到高级实战:React 实战项目 - 项目三:实时聊天应用
前端·react.js·架构·前端框架
德育处主任Pro7 小时前
『React』Fragment的用法及简写形式
前端·javascript·react.js
CodeBlossom8 小时前
javaweb -html -CSS
前端·javascript·html
CodeCraft Studio8 小时前
【案例分享】如何借助JS UI组件库DHTMLX Suite构建高效物联网IIoT平台
javascript·物联网·ui
打小就很皮...8 小时前
HBuilder 发行Android(apk包)全流程指南
前端·javascript·微信小程序
前端小趴菜0510 小时前
React - 组件通信
前端·react.js·前端框架