今日阅读:[45% Faster React Functional Components, Now](https://medium.com/missive-app/45-faster-react-functional-components-now-3509a668e69f) 预计阅读时间为 1 分钟。 ------------------------ 很多时候对于非常简单的组件,我们通常使用函数组件 ```jsx // 一个简单的函数组件 const Avatar = (props) => { return <img src={props.url} />; } ``` 但是函数组件也是一个 React 组件,当使用时,也会在内部调用 `componentWillMount`、`componentDidMount`、`componentWillUnmount` 等声明周期函数。 为了提示性能,我们可以把它作为 JavaScript 函数使用,而不是作为 React 组件。 ```diff ReactDOM.render( <div> - <Avatar url={avatarUrl} /> // <--- 作为 React 组件使用 + {Avatar({ url: avatarUrl })} // <--- 作为 JavaScript 函数使用 <div>{commentBody}</div> </div>, mountNode ); // 编译后的 JavaScript 代码 ReactDOM.render(React.createElement( 'div', null, - React.createElement(Avatar, { url: avatarUrl }), // <--- 作为 React 组件使用 + Avatar({ url: avatarUrl }), // <--- 作为 JavaScript 函数使用 React.createElement( 'div', null, commentBody ) ), mountNode); ``` 改成函数调用后,没有生成 `React.createElement`,也就没有了 React 组件的生命周期函数。 继续阅读:[45% Faster React Functional Components, Now](https://medium.com/missive-app/45-faster-react-functional-components-now-3509a668e69f)
Activity