react 使用propTypes进行类型检查

在React 15.5开始,已经弃用React.PropTypes,现在用prop-types库替代

prop-types支持nodejs以及浏览器端,使用起来还是很方便的,也可以自定义类型检查,功能强大,但是我们应该注意,由于性能上的原因,我们应该只在开发阶段使用。

当然,有些javascript的拓展版本本来就有类型检查的功能,比如TypeScriptFlow。这两个我现在还没有接触过:)

来看个使用prop-types的例子吧:

class Hello extends React.Component {
    render() {
        return <h1>Hello {this.props.name}</h1>
    }
}

Hello.propTypes = {
    name : PropTypes.string
}

这就要求Hello组件的name属性必须是字符串类型的,如果我们传入别的参数,比如数字,我们看看会怎么样:


控制台里面报了一个错,恩,这就是一个简单的例子,不过prop-types的用法还有很多,具体可以查看官网

由于我比较喜欢动态类型,所以我应该不会怎么使用这个库😢


这个小节还有一个内容就是设置属性的默认值

具体的用法类似于propTypes,也是给组件添加一个属性defaultProps

class Hello extends React.Component {
    render() {
        return <h1>Hello {this.props.name}</h1>
    }
}

Hello.propTypes = {
    name : PropTypes.string
}

Hello.defaultProps = {
    name : 'world'
}

虽然我觉得这个功能自己实现起来也很简单方便,比如:

class Hello extends React.Component {
    render() {
        return <h1>Hello {this.props.name || 'world'}</h1>
    }
}

但是官方提供了这个一个东西,当然用还是比较好,主要是阅读起来比较明显,比较容易懂。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 学习如何在Flow中使用React 将Flow类型添加到React组件后,Flow将静态地确保你按照组件被设计的方...
    vincent_z阅读 6,554评论 4 21
  • 以下内容是我在学习和研究React时,对React的特性、重点和注意事项的提取、精练和总结,可以做为React特性...
    科研者阅读 8,423评论 2 21
  • 深入JSX date:20170412笔记原文其实JSX是React.createElement(componen...
    gaoer1938阅读 8,190评论 2 35
  • 原教程内容详见精益 React 学习指南,这只是我在学习过程中的一些阅读笔记,个人觉得该教程讲解深入浅出,比目前大...
    leonaxiong阅读 2,953评论 1 18
  • 四月快过去了,五月来了,五月天在长沙的演唱会已经结束有好久了吧,哪天我也能去听他们的演唱会吗? 我...
    chasingadrean00阅读 174评论 0 0

友情链接更多精彩内容