Mr_FabiozZz, ТДД для Реакта не отличается от ТДД для чего-то другого. Тут вопрос скорее в целом про подход, но тут я не подсажу.
(Если ответ помог, отметьте решением.)
Жизненные циклы относятся и к классовым, и к функциональным. Просто в классовых они явно выражены через методы типа componentDidUnmount. Во втором ответе дали полезную ссылку.
LoggingButton
— класс, в комментарииApp
— функция.