참고 문서
[React] 클래스형 컴포넌트 vs 함수형 컴포넌트
React의 컴포넌트 선언에는 2가지 방법이 있다.
클래스형 컴포넌트와 함수형 컴포넌트가 있다.
공식 문서에서는 함수형 컴포넌트 + Hooks 를 통해 컴포넌트를 작성하는 것을 권장한다.
import React, { Component } from 'react';
class App extends Component {
render() {
return (
<div>
</div>
);
}
}
export default App;
import React from 'react';
const App = () => {
return (
<div>
</div>
);
};
export default App;
컴포넌트 내부에서 바뀔 수 있는 값 state
class App extends Component {
state = {
userName : "",
users: []
}
const [value, setValue] = useState('')
클래스형 컴포넌트는 Stateful 컴포넌트, 함수형 컴포넌트는 Stateless 컴포넌트라고 하기도 한다. 클래스형 컴포넌트는 로직과 상태를 컴포넌트 내에서 구현하기 때문에 stateful로 불리며 상대적으로 복잡한 로직을 가지고 있다. 반면 함수형 컴포넌트는 state를 사용하지 않고 단순하게 데이터를 받아서(props) UI에 뿌려주기 때문에 stateless라고 한다.
render() {
const {name, age } = this.props;
return (
<div>
안녕하세요 , 저는 {name} 입니다.
올해 {age} 입니다.
</div>
);
}
this.props로 통해 값을 불러올 수 있다.
const App = ({name, age}) => {
return (
<div>
안녕하세요 , 저는 {name} 입니다.
올해 {age} 입니다.
</div>
);
};
props 없이 바로 불러올 수 있다.