const Component = ({ text }) => (
<div>{text}</div>
)
const Example = () => (
<div>
<Component text="123" />
{Component({ text: "123" })}
</div>
)
这两种渲染方法有什么区别吗?哪个是首选,为什么?
const Component = ({ text }) => (
<div>{text}</div>
)
const Example = () => (
<div>
<Component text="123" />
{Component({ text: "123" })}
</div>
)
这两种渲染方法有什么区别吗?哪个是首选,为什么?
是的,第二个更快,因为它没有安装React.createElement
. 请参阅Philippe Lehoux 撰写的这篇精彩文章,其中讨论了两种方法之间的差异(主要是性能)。
编辑:这种方法可能会导致意外行为(主要是如果您使用钩子),我建议您不要调用函数组件而是渲染它们。有关更多详细信息,请参阅Kent C. Dodds 的不要调用 React 函数组件。