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'
}
}
相关推荐
一颗烂土豆4 小时前
Meshopt 压缩深度解析,为什么它比 Draco 更快
前端·javascript·webgl
YFF菲菲兔5 小时前
调度系统和调和系统的桥梁
react.js
kyriewen6 小时前
同事每天催我 Code Review,我写了个脚本让 AI 替我 review PR——现在他反过来催 AI 了
前端·javascript·ai编程
weedsfly9 小时前
迭代器、生成器与异步迭代——让数据“按需流动”的艺术
前端·javascript
YFF菲菲兔9 小时前
commitRoot 源码解析
react.js
假如让我当三天老蒯9 小时前
前端跨域解决方案(学习用)
前端·javascript·面试
铁皮饭盒11 小时前
Bun 哪比 Node.js 快?
javascript·后端
JieE21218 小时前
LeetCode 56. 合并区间|超清晰 JS 图解思路,面试高频区间题
javascript·算法·面试
candyTong21 小时前
RTK 技术原理:一次典型会话里,80% 上下文是怎么省下来的
javascript·后端·架构
_柳青杨1 天前
深入理解 JavaScript 事件循环
前端·javascript