React JSX vs 函数调用以呈现组件

IT技术 reactjs jsx
2021-04-25 22:56:46
const Component = ({ text }) => (
  <div>{text}</div>
)

const Example = () => (
  <div>
    <Component text="123" />
    {Component({ text: "123" })}
  </div>
)

这两种渲染方法有什么区别吗?哪个是首选,为什么?

1个回答

是的,第二个更快,因为它没有安装React.createElement. 请参阅Philippe Lehoux 撰写的这篇精彩文章,其中讨论了两种方法之间的差异(主要是性能)。

编辑:这种方法可能会导致意外行为(主要是如果您使用钩子),我建议您不要调用函数组件而是渲染它们。有关更多详细信息,请参阅Kent C. Dodds 的不要调用 React 函数组件