In class components, state is declared and updated using this.state and this.setState. In functional components, state can be managed using the useState hook.
Class components use lifecycle methods like componentDidMount and componentWillUnmount for side effects. The equivalent in functional components is useEffect hook.
In class components, methods are often bound to 'this' or class fields, whereas in functional components, functions are defined within the component scope, eliminating the need for binding.
Functional components receive props as function arguments, while class components access props through this.props.