美文网首页
利用prop-types第三方库对组件的props中的变量进行类

利用prop-types第三方库对组件的props中的变量进行类

作者: 码农梦醒 | 来源:发表于2018-09-04 17:12 被阅读17次

prop-types基础入门

安装 prop-types

cnpm install prop-types

然后通过下面的写法对你的某一个组件的props中的变量进行类型检测

yourComponent.propTypes = {
    属性1:属性1的变量类型,
    属性2:属性2的变量类型
    //...
}

propTypes的使用全解

DemoComponent.propTypes = {
        number:PropTypes.number,
        array:PropTypes.array,
        boolean:PropTypes.bool
}

DemoComponent.propTypes = {
     optionalArray: PropTypes.array,//检测数组类型
     optionalBool: PropTypes.bool,//检测布尔类型
     optionalFunc: PropTypes.func,//检测函数(Function类型)
     optionalNumber: PropTypes.number,//检测数字
     optionalObject: PropTypes.object,//检测对象
     optionalString: PropTypes.string,//检测字符串
     optionalSymbol: PropTypes.symbol,//ES6新增的symbol类型
}
DemoComponent.propTypes = {
       // 这里指定了num既可以是string类型又可以是number类型
       num:PropTypes.oneOfType(
           [PropTypes.string,PropTypes.number] 
         )
}
DemoComponent.propTypes = {
    // 这里指定了num的值必须是11或13
    num:PropTypes.oneOf(
          [12,13]
      )
}
DemoComponent.propTypes = {
     // 这里指定了array中的每个元素必须是number类型
     array:PropTypes.arrayOf(PropTypes.number)
}
DemoComponent.propTypes = {
    // 这里使用shape方式,指定了object内部的每个属性的实际类型
    obj: PropTypes.shape({
        属性1:类型1,
       属性2:类型2,
       //...
   })
}
DemoComponent.propTypes = {
          // 这里指定了num的类型为number且是必须的
          num:PropTypes.number. isRequired
}
DemoComponent.propTypes = {
          // 这里指定了num的类型是任意类型, 但num是必须的
          num:PropTypes. any. isRequired
}
DemoComponent.propTypes = {
     // 这里使用函数形式,进行更复杂的类型检查
     email:function(props,propName,componentName){
            if(!/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/.test(props[propName])){
                  return new Error('组件' + componentName+ '里的属性' + propName + '不符合邮箱的格式');
                         }
                }
}

ES7下类型检测的新写法:

class DemoComponent extends React.Component{
static propTypes = {
       //..类型检测
}
render(){
   return (/* 渲染*/)
     }
}

相关文章

  • 利用prop-types第三方库对组件的props中的变量进行类

    prop-types基础入门 安装 prop-types 然后通过下面的写法对你的某一个组件的props中的变量进...

  • view.propsType.style 在release 环境

    在一个自定义组件中,想用‘prop-types’库来规范组件props,但是没看到有直接用于view styl...

  • React基础-context与prop-types

    context与prop-types用法 prop-types一般限制子组件传进来的props属性的数据类型,限制...

  • prop-types

    在 React 中我们使用 prop-types 对组件的 prop 进行类型检测。 propTypes 能用来检...

  • PHP AES对称加密算法

    利用php加密库 mcrypt 进行AES加密解密 在ThinkPHP3.2中的使用方法 把加密类放在第三方类库目...

  • 对props属性的回溯

    在前端框架中,数据流是单向的,比如在子组件中props是只读的,想要在子组件对props进行修改,只能在子组件中调...

  • 封装组件的注意事项

    数据从父组件传入 props属性中添加验证规则: 通过props传入的参数不建议对其进行操作,会同时修改父组件中的...

  • Svelte跨组件状态管理

    svelte中对于组件内的状态管理比较简单,但是如何像其它框架一样进行跨组件间交互呢? 利用props进行状态传递...

  • props

    每个组件都存在Props属性,函数声明式组件(props),类声明式组件(this.props) 组件标签中所有的...

  • react 父子组件之间的方法调用

    父子组件之间传值通过props、触发事件调用props的方法对父组件的state进行修改; 类似于vue中子组件通...

网友评论

      本文标题:利用prop-types第三方库对组件的props中的变量进行类

      本文链接:https://www.haomeiwen.com/subject/vxcnwftx.html