Реакт сам создает екземпляр класса и сам вызывает метод рендер, более того он сам вызывает кучу методов жизненного цикла, но я рекомендую пользоваться функциональными компонентами и хуками.
https://reactjs.org/docs/hooks-intro.html#complex-...
1) Потому что Fiber лучше работает с функциональными компонентами.
2) Есть полтора случая на 1000000 когда на функциональном компоненте нельзя реализовать то, что на классовом и все они описаны в официальной документации.
3) В реакте единственное возможное наследование это
class Board extends React.Component
, все, дальше начинается композиция, и в реакте думать в категориях OOP скорее вредно, чем полезно.
https://reactjs.org/docs/composition-vs-inheritanc...
So What About Inheritance?
At Facebook, we use React in thousands of components, and we haven’t found any use cases where we would recommend creating component inheritance hierarchies.
Поэтому забудьте про class based кмопоненты и сами пишите все на функциональных. А жизненный цикл class based компонент прочитайте внимательно пару (десятков) раз, чтобы запомнить и просто разбираться в чужом коде.