React Functional组件:作为函数调用与作为组件调用

dmwong2268:

说我有一个功能组件:

const Foo = (props) => ( <div>{props.name}</div> );

直接将其作为函数调用有什么区别:

const fooParent = () => (
    <div> {Foo({ name: "foo" })} </div>
)

与将其称为组件相比:

const fooParent = () => (
    <div> <Foo name="foo"/> </div>
)

我对性能影响最感兴趣,React如何在内部对它们进行区别对待,也许对React Fiber中的情况可能有所不同,我听说功能组件的性能得到了提升。

vittore:

调用它作为函数要快得多,事实上,几个月前就已经有讨论了。在这一点上,功能性反应组件不能是PureComponents,因此没有真正适用于它们的额外优化。

基本上,您可以将功能组件称为消除整个反应生命周期的功能。如果考虑一下,您可能甚至在现在的render方法中也使用了此技术。考虑一下:

... some component ... 

render() {

  const tabHeaders =<TabHeaders>{this.props.tabs.map(this.renderTabHeader)}</TabHeader>;
  const tabContents = <TabContents>{this.props.tabs.map(this.renderTabContent)}</TabContents>;

  return (<div>
    {this.props.tabsBelow?[tabContents, tabHeaders] : [tabHeaders, tabContents]}
  </div>);
} 

renderTabHeader方法返回一些反应组件,并且本来可以是功能组件,但在这种情况下只是一些组件类方法。

请参阅此文章以获取详细说明:https : //medium.com/missive-app/45-faster-react-functional-components-now-3509a668e69f

还请检查执行此操作的babel插件:https : //babeljs.io/docs/plugins/transform-react-inline-elements

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从react组件调用外部Javascript函数

从React Functional组件进行API调用

测试React组件方法正在调用函数传递作为道具

从React TypeScript组件调用外部Javascript函数

React-从同级组件调用函数

从JavaScript调用React组件函数

从React路由中的组件调用函数

React从其他组件调用函数

从外部JavaScript函数调用react组件的函数

如何从父组件调用React / Typescript子组件函数?

如何从React组件中调用Firebase函数

每隔X秒在React Functional组件中调用API

React-从“同级”组件调用函数

在渲染之前调用React组件的函数

在React Native外部组件中调用函数

从javascript调用react组件

在React的子组件中调用父函数

每当组件更改时,React 组件调用提交函数

多次调用 React 组件

当我在嵌套的 React 组件中调用作为 props 传递的函数时会发生什么?

React Functional 组件:立即调用 getElementById 返回 null

无法从 React 中的子组件调用父组件函数

React Functional 组件从具有某些条件的上下文调用其他函数或调用方法

在状态更新函数中调用状态更新函数 - React Functional 组件中的 useState 钩子

从子组件调用 React 中的函数

将组件作为函数调用而不是将其用作标签时,React 没有相同的执行顺序?

从函数调用 React 组件

React - 将元素作为调用函数的道具传递给组件

在 React 中将组件作为 prop 传递并将它们作为 JSX 标签调用