반응형
리액트로 개발을 하다보면 수많은 컴포넌트들을 만들고 뿌려줄 것이다.
뤼앸 개발의 근간이 되는 컴포넌트는 크게 2가지 방법으로 만들어 줄 수 있다.
Class 형 컴포넌트 , function 형 컴포넌트 2가지다.
먼저 중요하게 짚고 넘어가야 될 것은
뭘 쓰든 상관은 없다>< 본인 취향에 맞게 선택해서 쓰면 되겠지만 요즘은 최근에 나온 함수형을 많이 쓴다고 한다.
우선 어떤 차이점이 있는지 한번 살펴보면
클래스형 컴포
import React,{Component} from 'react' // Component도 같이 임포트!
class Search extends Component{ // 상속!!
render() { // render 함수 호출 !
return(
<>
</>
)}
}
export default Search // export!!
함수형 컴포
import React from 'react' // Component 불러오기 X
const Search = () => { // arrow function 형으로도 정의 가능!! function() 도 가능!
return(
<>
</>
)
}
export default Search
육안으로 봐도 조금 더 간단히 기본 컴포넌트를 구현해줄 수 있다.
몇 가지 포인트를 짚자면
Class 형 컴포넌트에서는
1. class 키워드가 필요
2. Component로 상속을 받아야 되공
3. render() 메소드가 필수로 존재
기능적인 차이도 존재한다.
나도 미니프로젝트 연습하면서 찾아보았는데
우선 클래스형 컴포넌트에서는 state(컴포넌트 내부에서 바뀔 수 있는 값)의 초기 값을 설정 할 수 있다.
this.setState 로 값 변경 가능
함수형 컴포넌트에서는
useState 함수를 통해 state 사용 가능
const [number, setNumber] = useState(0)
useState 함수를 호출하면 배열이 반환 되는데 첫번째는 현재 상태, 두 번쨰는 상태를 바꾸는 함수
useState() 들어갈 값은 초기값!
props 차이
props는 속성을 설정 할 때 사용하는 요소
클래스형 컴포넌트
*this.props로 값을 불러올 수 있다.
const {name, color} = this.props;
함수형 컴포넌트
props 를 통해 불러올 필요없이 바로 호출 가능
const Person = ({name, color}) => {
}
이벤트 핸들링
우선 클래스형 컴포넌트에서의 사용법
btnClick =() => {
alert("클래스형 컴포넌트임돵");
}
return(
<>
<button onClick={this.btnClick}>클릭</button> // this 사용!!
</>
)
함수형 컴포에서의 사용법
const btnClick = () => {
alert("함수형 입당~")
}
return(
<>
<button onClick={btnClick}>클릭</button>
</>
)
작성하면서도 느꼇지만 약간의 사용법만 조금씩 다를 뿐이고 아예 모른 상태에서 보면 헷갈릴 수 있을 것이다. 회사에 들어가거나 프로젝트 협력시에 class 형 컴포넌트들도 있을 수 있으니 최소한의 개념정도는 알고 넘어가도록 하자!
반응형
'Reactjs' 카테고리의 다른 글
e.target 과 e.currentTarget 차이점과 쓰는 방식 (0) | 2021.06.28 |
---|---|
React Router란 (0) | 2021.06.22 |
Material UI 사용법 및 makeStyles (0) | 2021.06.17 |
react toggle 간단히 토글메뉴 구현하기 (useState) (2) | 2021.06.17 |
json-server 사용법 및 간단히 데이터 조회 해보기 (0) | 2021.06.16 |