Подтвердить что ты не робот

React.js - использование инициализаторов свойств для всех компонентных методов

Я работаю над проектом React Native, и я использую классы ES6 для компонентов React.

Так как компоненты React, определенные с помощью классов ES6, не имеют автообнаружения, команда React рекомендует комбинировать инициализаторы свойств ES7 со стрелочными функциями для создания того же эффекта.

Чтобы быть последовательным и препятствовать путанице с этой привязкой, я использую инициализаторы свойств ES7 для всех компонентных методов:

class Foo extends React.Component {
  constructor(props) {
    super(props);
    ...
  }

  componentDidMount = () => {
      ...
  };

  bar = () => {
    ...
  };

  render = () => {
    ...
  };
}

Мне было интересно - есть ли какие-либо серьезные предупреждения о производительности, о которых нужно знать? В частности, мне интересно о методе render().

В целом, это похоже на хороший подход?

4b9b3361

Ответ 1

Самое большое предостережение в том, что эта особенность еще не стандартная и не согласована. (Это не будет ES7, поскольку ES7 отсутствует. Возможно, ES2017, но все еще неясно.)

Также существует стоимость выделения нескольких новых долгоживущих объектов и их хранения в классе.

Я бы не рекомендовал этого. Только для обратных вызовов.