Avoid Arrow Functions and Bind in JSX Props for Optimal Performance
React's lint tool aims to enhance code practices by highlighting potential issues. One common error message is "JSX props should not use arrow functions." This points out the detrimental effects of using arrow functions or bind within JSX props.
Why Arrow Functions and Bind Hinder Performance
Incorporating arrow functions or bind into JSX props has performance implications:
Impact of Inline Handlers on Rerendering
Consider these examples:
Example 1: PureComponent without Inline Handler
class Button extends React.PureComponent { render() { const { onClick } = this.props; console.log('render button'); return ; } }
In this code, the Button component only rerenders when its props change, as expected for a PureComponent.
Example 2: PureComponent with Inline Handler
const Button = (props) => { console.log('render button'); return ; };
Due to the inline arrow function, Button now rerenders every time, even though the component state remains unchanged. This unnecessary rerendering can significantly impact performance.
Best Practices
To avoid these performance issues, it's recommended to adhere to the following best practices:
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3