Реагировать на встроенные функции и функции стрелок - PullRequest
0 голосов
/ 05 июля 2018

В React для веб-сайтов для производительности мы не должны использовать функции стрелок в случае onPress, onClick и т. Д.

Это правило также действительно для React Native?

Ответы [ 3 ]

0 голосов
/ 05 июля 2018

Использование функций со стрелками в качестве свойств класса идеально, потому что оно не создает свою собственную область.

Если у вас есть функция стрелки внутри метода жизненного цикла (например, рендеринга), это действительно снижает эффективность вашего кода, потому что вы создаете новую функцию каждый раз, когда вызывается этот метод, но это нормально, потому что снижение производительности будет быть незначительным.

0 голосов
/ 05 июля 2018

Оба существуют по своим собственным причинам. Производительность не так важна. Обычно React-Native приложения используют функции стрелок постоянно. Это зависит от требования. Например, если у вас есть кнопка и ее свойство onPress, было бы лучше передать функцию стрелки, так как она не требует привязки. Вы должны использовать обычные функции (не функции стрелок), если вам нужна ссылка на this, из которой она определена. Функции стрелок также очень гибки, и вы должны использовать эти преимущества. Поэтому я бы предложил использовать функции со стрелками и обычные функции, если вам нужно this. Я лично использую нормальные функции, только если мне нужно this.

0 голосов
/ 05 июля 2018

"Учись один раз, пиши где угодно" JavaScript, если его еще нет, находится на грани того, чтобы стать победителем всех гонок. React-Native - это еще одна красивая библиотека JavaScript (некоторые предпочитают «framework»). Поскольку это JavaScript, правила и условия для RN ​​такие же, как и для любой другой библиотеки JS.

Производительность здесь не главное. На самом деле не должно быть никакого сравнения в любом случае. Это эффективность и удобочитаемость кода. Функция жирной стрелки - одна из наиболее актуальных изменений в парадигме JS. Они позволяют вызывать анонимные функции и имеют дело с когда-либо существующей дилеммой области, изменяя способ, которым this связывается с функцией. Например, onPress = {this.onButtonPress.bind(this)} просто становится onPress = {() => this.onButtonPress}. Если вам все еще сложно объявить функцию, вы можете сделать что-то вроде этого

onPress = {() => { this.props.navigation.navigate('HomePage') }}

, чтобы сэкономить время и код быстрее, хотя этот не должен быть вашей обычной практикой, скорее следуйте традиционному способу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...