Почему использование стрелочных функций или привязок в реквизитах JSX запрещено
При использовании React важно избегать использования стрелочных функций или привязка в реквизитах JSX. Такая практика может привести к проблемам с производительностью и некорректному поведению.
Проблемы с производительностью
Использование функций стрелок или привязки в реквизитах JSX приводит к тому, что эти функции воссоздаются при каждом рендеринге. Это означает, что:
Неверное поведение
Рассмотрите следующий пример:
onClick={() => this.handleDelete(tile)}
Этот код будет создавать новую функцию при каждом рендеринге, в результате чего React помечает компонент как грязный и запускает повторный рендеринг. Даже если свойство плитки не изменилось, компонент будет повторно отображаться, поскольку функция стрелки отличается.
Рекомендации
Чтобы избежать этих ошибок, используйте следующие рекомендации:
constructor(props) { super(props); this.handleDelete = this.handleDelete.bind(this); }
const handleDelete = tile => { // Handle delete logic };
Дополнительное примечание:
Важно отметить, что функции стрелок прекрасно работают при использовании в других частях компонента, например, в методе рендеринга. Однако их следует избегать при назначении обработчиков событий реквизитам JSX.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3