Какая разница при объявлении функции в reactjs?

Объясните есть ли какая разница при объявление функций, и влияет ли это как-то на скорость работы компонентов?

class Content extends React.Component {
  constructor() {
    super();
    this.consoleLog = () => { 
      //Первый вариант объявления
      console.log('Первый вариант');
    }
  }

    consoleLog = () => { 
    //Второй вариант объявления
    console.log('Второй вариант');
  }

  consoleLog() { 
    //Третий вариант объявления
    console.log('Третий вариант');
  }
}
  • Вопрос задан
  • 279 просмотров
Решения вопроса 1
Первый и второй вариант очень похожи. Преимущества перед третьим вариантом в том, что у вас метод будет забинден на this:

class ... {
  consoleLog = () => { 
    //Второй вариант объявления
    console.log('Второй вариант');
  }

  render() {
     return (
       <button onClick={this.consoleLog} type="button"> click me </button>
     )
  }
}


В первом и втором случае вы не потеряете this при передаче метода как callback в onClick.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы