I am getting into React and I can not find out, how we should define React components.
Should we use ES6 class definition like following:
import React from 'react'
import PropTypes from 'prop-types'
class DateFormatter extends React.Component {
  constructor (props) {
    super(props)
    this.date = props.date
  }
  render () {
    return (<h2>It is {this.date.toLocaleTimeString()}.</h2>
    )
  }
}
DateFormatter.propTypes = {
  date: PropTypes.object
}
export default DateFormatter
or do it like following:
export const DateFormatter = ({ date }) => (
  <div>
    <h2>It is {date.toLocaleTimeString()}</h2>
  </div>
)
DateFormatter.propTypes = {
  date: PropTypes.object
};
export default DateFormatter
Both ways presented above are working properly but I can not get what is the main difference (except semantical)? I know that in second case we create immutable component as it is defined as "const".