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

说我有一个功能组件:

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

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

const fooParent = () => (

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

)

与将其称为组件相比:

const fooParent = () => (

<div> <Foo name="foo"/> </div>

)

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

回答:

调用它作为函数要快得多,事实上,几个月前就已经有讨论了。在这一点上,功能性反应组件不能是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

以上是 React Functional组件:作为函数调用与作为组件调用 的全部内容, 来源链接: utcz.com/qa/425244.html

回到顶部