Javascript 将元素定义为方法、常量或组件?

Javascript 将元素定义为方法、常量或组件?,javascript,reactjs,Javascript,Reactjs,我可以将可重用元素分组为常量、方法或组件: const someElementsConst = <div><p>Some Elements</p></div> const getSomeElements = () => <div><p>Some Elements</p></div> const SomeElementsComponent = () => <div><p&g

我可以将可重用元素分组为常量、方法或组件:

const someElementsConst = <div><p>Some Elements</p></div>
const getSomeElements = () => <div><p>Some Elements</p></div>
const SomeElementsComponent = () => <div><p>Some Elements</p></div>
const someElementsConst=某些元素

常量getSomeElements=()=>某些元素

常量SomeElementsComponent=()=>某些元素

然后像这样使用它们

<div>
   {someElementsConst}
   {getSomeElements()}
   <SomeElementsComponent/>
</div>

{someElementsConst}
{getSomeElements()}

我的问题是:对于这些方法中的哪一种,在良好实践方面,何时使用,机罩下的机械装置,性能等,是否有正确或错误的答案?

我想说,这取决于您想要呈现什么

在您给出的示例中,您只呈现简单的html标记,而没有机会更改呈现。所以基本上,无论您选择将其呈现为常量、函数调用还是JSX组件,它都不会改变任何东西

但是,对于更复杂的组件(具有状态管理、副作用等):

呈现组件时需要使用JSX(或React.createElement),而不是简单地调用函数。这样,使用的任何挂钩都可以注册到React创建的组件实例中

资料来源:

这些问题是针对我的,我建议阅读性能方面的文章,它不应该有任何区别。一般来说,它与个人偏好和代码编写有关。另外,将元素作为常量重用意味着不能向其传递任何变量&不能在其上运行Component did update之类的方法。另外两种方法允许这样做,并且在某种程度上是以不同的方式编写的,因为组件可以是类或函数