一、写好一个通用的 React 组件 之 props

Step-1

在非  TypeScript 环境下,实际上 React 组件中的 props 属性,数据使用非常随意。我们看到的大部分代码是长这样的:

直接从 props 中解构指定字段。

Step-2

对于实现特定业务功能的组件,这样写无可厚非。但是无论是从代码的健壮性还是代码风格来说,这都算不上“好代码”。

尤其对于上述代码中的 onSure 字段来说,一旦后续的开发者传递错了数据类型,很容易造成程序意外中断。

因此,最起码的建议是,将类似的代码写成如下的形式:

对于复杂类型通过 typeof 校验合法性。

Step-3

对于一般的业务代码,总的来说已经够了。但是对于通用性更高、复用更复杂的功能组件,通常 props 中的属性会更多。如果每项属性在使用中都如此检测,也未必过于繁琐。因此,建议通过 React 中拆分出来的 prop-types 模块配合 JS Class 中的两项静态属性 defaultProps 和 propTypes ,代替繁琐的使用检测。

关于 props-types 的详细用法可以参考官方文档。https://www.npmjs.com/package/prop-types

defaultProps 和 propTypes 两者配合,唯一需要注意的是对于 isRequired 标记的属性,不再也不应该提供 defaultProps。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值