React.js - использование инициализаторов свойств для всех компонентных методов
Я работаю над проектом React Native, и я использую классы ES6 для компонентов React.
Так как компоненты React, определенные с помощью классов ES6, не имеют автообнаружения, команда React рекомендует комбинировать инициализаторы свойств ES7 со стрелочными функциями для создания того же эффекта.
Чтобы быть последовательным и препятствовать путанице с этой привязкой, я использую инициализаторы свойств ES7 для всех компонентных методов:
class Foo extends React.Component {
constructor(props) {
super(props);
...
}
componentDidMount = () => {
...
};
bar = () => {
...
};
render = () => {
...
};
}
Мне было интересно - есть ли какие-либо серьезные предупреждения о производительности, о которых нужно знать? В частности, мне интересно о методе render().
В целом, это похоже на хороший подход?
Ответы
Ответ 1
Самое большое предостережение в том, что эта особенность еще не стандартная и не согласована. (Это не будет ES7, поскольку ES7 отсутствует. Возможно, ES2017, но все еще неясно.)
Также существует стоимость выделения нескольких новых долгоживущих объектов и их хранения в классе.
Я бы не рекомендовал этого. Только для обратных вызовов.