react 中 FC 模块作用

`React.FC` 是一个泛型类型,用于定义函数组件的类型

一、类型定义和代码可读性

1. 明确组件类型

使用`React.FC`定义一个组件时,使得组件的输入(props)和输出(返回的 React 元素)都有明确的类型定义。

javascript 复制代码
import React from "react";



interface Props {

  name: string;

}



const MyComponent: React.FC<Props> = ({ name }) => {

  return <div>Hello, {name}!</div>;

};

2. 增强代码可读性

看到`React.FC`就表明这是一个 React 函数组件。同时可以查看组件 Props 的类型。

二、隐式的属性类型和默认值

1. 隐式的属性类型检查

使用`React.FC`后,TypeScript 会自动将`children`的类型设置为`ReactNode`。

javascript 复制代码
import React from "react";



const MyComponent: React.FC = ({ children }) => {

  return <div>{children}</div>;

};

// 正确的用法,因为 `React.FC` 自动处理了 `children` 类型

<MyComponent>Hello World</MyComponent>;

// 错误的用法,因为 `number` 类型的子元素不符合 `ReactNode` 类型(除了特定情况)

<MyComponent>{123}</MyComponent>;

2. 默认属性值支持

`React.FC`还支持为组件的属性设置默认值。在组件定义中,可以通 `defaultProps`属性来设置默认值。

javascript 复制代码
import React from "react";



interface Props {

  count: number;

}

const MyComponent: React.FC<Props> = ({ count }) => {

  return <div>{count}</div>;

};

MyComponent.defaultProps = { count: 0 };

// 可以不传 `count` 属性,此时 `count` 的值为默认值 `0`

<MyComponent />;
相关推荐
@PHARAOH6 分钟前
HOW - 实现 useClickOutside 或者 useClickAway
前端·javascript·react.js
_yingty_20 分钟前
GO语言入门经典-反射3(Value 与对象的值)
开发语言·前端·后端·学习·golang
糟糕好吃33 分钟前
如何用一个插件让你的 Taro 项目启动快 3 倍?
前端·javascript·微信小程序
糖墨夕1 小时前
【1】Three.js入门心得记-开发环境及准备工作
前端·three.js
前端_学习之路1 小时前
Vue--状态管理pinia
前端·javascript·vue.js
萌萌哒草头将军1 小时前
🔥🔥🔥MCP TypeScript SDK 初体验:挑战快速搭建一个 AI 应用!
前端·javascript·mcp
冴羽yayujs1 小时前
SvelteKit 最新中文文档教程(19)—— 最佳实践之身份认证
前端·javascript·vue.js·react.js·前端框架·svelte·sveltekit
Dove言和1 小时前
vue-element-plus-admin的安装
前端·javascript·vue.js·element-plus
曾是惊鸿照影来1 小时前
vue2生成二维码海报,支持复制,下载
前端
观无1 小时前
vue的主要核心文件介绍
前端·javascript·vue.js