class 와 함수형 컴포넌트의 차이
기존(16.8.0 이전)
class | function |
관련된 데이터와 함수가 하나로 묶여져 있는 형태 | javascript에서 쓰던 흔한 함수 |
state라는 데이터 묶음과 라이프사이클 훅이 들어있음 | << 이런거 없고 한가지 기능을 수행하는 단위!!! |
state값이 바뀔때마다 render함수가 자동으로 실행되어 업데이트됨. | 당연히 이런거 안됨 |
따라서 동적인 구현을 위해서 class를 많이 사용 | 정적인 구현을 할때에 function을 사용 |
현재(16.8.0)
16.8.0 버전 이후부터는 함수형에도 리액트 훅이 도입되어 state, 라이프사이클 훅 모두 사용가능하다.
그런데 왜 ?? class를 기존에 쓰고 있었고 다른게 없는데 함수형으로 해야하나요 ??
- class형식의 언어를 사용해보지 않은 사람들은 function보다 class가 익숙하지 않다는 의견
- 변수 접근이 this를 굳이 안붙여도 됨
- functional programming이 유행이라 react로 점차 따라가게 됨
- 중복된 걸 조금 더 줄일 수 있음
* 그러나 회사마다 팀마다 기존에 쓰고 있었을 수도 있고 호불호가 갈리는 부분이라 둘 다 알아야 한다.
jsx란 ?
문자열도 아니고 html도 아님 ! 엄밀히 말하면 javascript이다. 자바스크립트를 확장한 것이라고 보면 된다.
포인트1. class는 className으로
포인트2. onclick은 onClick으로 꼭 가운데 C 대문자로 !
포인트3. 변수는 중괄호 { }로 감싼다.
포인트4. 하나의 태그로 감싸야한다.
- 이때 불필요한 div로 감싸기 보다는 React.Fragment로 감싸거나 <></>빈 태그로 감싼다.
//1.React.Fragment
<React.Fragment>
<h1></h1>
<p></p>
</React.Fragment>
//2. 빈태그
<>
<h1></h1>
<p></p>
</>
포인트5. 배열을 돌려보기
{
['a','b'].map(item => {
<h1>{item}</h1>
})
}
폴더 구조
public 정적인 요소들
src 동적인 요소들 (실제 작업 폴더라고 생각하면 된다.)
반응형
'React' 카테고리의 다른 글
[React 기본] ReactStrictMode란 ? 콘솔이 2번 찍힐때 (0) | 2022.02.07 |
---|---|
[React 기본] Ref 사용하기 (document.getElementById 대신에 사용하는 것 ! ref) (0) | 2022.02.04 |
[React 기본] 컴포넌트간 props와 이벤트 전달해보기 (0) | 2022.02.03 |
[React 기본] class형 컴포넌트로 state와 onClick 사용해보기 (0) | 2022.01.30 |
[React 기본] React 세팅하기 (fontawesome 설치하기) (0) | 2022.01.30 |