React.FC

  • TS泛型

    • TS泛型是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的特性。
  • React.FC

    • React.FC表示函数式组件,是在TypeScript中使用的一个泛型。
  • 为React.FC传入props

    • 一个例子

      interface PropsType{
        msg?: string;
      }
      const app: React.FC<PropsType> = ({msg}) => { //{msg}相当于解构赋值,从props中解构
        return(
          <h1>hello,{msg}</h1>
        )
      }
      

      想要使用props,必须为React.FC提供泛型定义。

  • 为自定义组件定义className

    • className

      • className相当HTML中的class,由于React书写的是tsx,是类js的语法,所以会受到js语法的约束,所以不能直接使用class关键字,只能使用className关键字定义css类名。
    • 一个例子

      .subClass{
        ...
      }
      .classA{
        ...
      }
      

      上面是父组件对应的css module,采用下面的方法,可以使我们可以在父组件的css module中定义子组件的样式。就像操作普通DOM元素一样。(普通DOM元素直接定义className就可以在父组件的css module中定义样式)。

      import subComponent from '...';
      import styles from './index.module.scss';
      
      const parentComponent: React.FC = () => {
        return(
          <>
          	<subComponent className={styles.subClass} />
          	<div className={styles.classA}></div>
          </>
        )
      }
      

      上面是父组件中的内容,实际上className将会作为props传给subComponent。

      const subComponent: React.FC<{className: string}> = ({className}) => {
        return(
          <div className={className}>
            ...
          </div>
        )
      }
      

      注意为子组件定义className,传入的className应该赋值给根元素的className。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐