В первом случае компонент является полностью унаследован от класса Component, это значит что вы сможете использовать методы жизненного цикла, писать свои методы, компонент сможет хранить свое локальное состояние. Т.е. внутри компонента будет описана какая то логика.
Во втором варианте компонент отвечает только за отображение, т.е. все выше перечисленные операции описать внутри данного компонента нельзя.