我爱编程

react 使用propTypes进行类型检查

2018-05-26  本文已影响0人  叶绿素yls

在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>
    }
}

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

上一篇下一篇

猜你喜欢

热点阅读