Sil*_*Van 12 typescript reactjs
在 React 中,我似乎可以声明一个函数式组件,或者只是一个函数返回一个 JSX 元素。让我困惑的是我不知道这两种方法之间的主要区别。有什么只有一种方法可以做而另一种方法不能做的吗?
import React from "react";
type ItemProps = {
id: number
name: string
}
const Item: React.FC<ItemProps> = ({ id, name }) =>
(
<section>
my id is {id}
my name is {name}
</section>
)
const item = ({ id, name }: ItemProps) =>
(
<section>
my id is {id}
my name is {name}
</section>
)
export const Container = () =>
(
<section>
{item({ id: 1, name: "item-1" })}
<Item id={1} name={"item-1"} />
</section>
)
Run Code Online (Sandbox Code Playgroud)
gau*_*430 25
children
prop,这意味着即使你的组件不允许子组件,如果你正在使用React.FC
并且父组件传递了子组件,打字稿也不会抱怨。这不会对运行时产生任何影响,但最好对 Children 属性更加明确。这可能会在下一版本中消失React.FC
,即使现在您可以使用React.VFC
propTypes
,displayName
因此如果需要,需要显式添加它们。React.FC
提供类型检查支持
您还可以使用 React.FunctionComponent (或简写 React.FC - 它们是相同的)编写组件:
const App: React.FunctionComponent<{ message: string }> = ({ message }) => (
<div>{message}</div>
);
Run Code Online (Sandbox Code Playgroud)
与“普通功能”版本的一些区别:
查看文档以获取更多信息
https://github.com/typescript-cheatsheets/react/blob/main/README.md#section-2-getting-started
归档时间: |
|
查看次数: |
7356 次 |
最近记录: |