일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- hokidoki
- 호키도키
- Hitit
- 리액트 예제
- 스위프트
- 개발
- 자바스크립트
- 리액트
- 개발자
- 계명대 이종호
- data structure
- 이종호
- Svelte
- 호키스
- 힛잇
- react
- 자료구조
- 스벨트
- IOS
- hokeys
- SWIFT
- TDD
- 비동기
- 자스민
- jest
- 자바스크립트 자료구조
- HTML
- javascript
- queue
- 계명대
- Today
- Total
Dog foot print
[React] component 만들기 본문
리액트에서 컴포넌트는 뷰의 단위이다. 우리가 리액트로 모든 것은 컴포넌트로 이루어져있으며 필요에 의해서 이 컴포넌트를 화면에서 제거 혹은 연결 하여 페이지를 구성한다.
컴포넌트는 함수형 컴포넌트 , 클래스형 컴포넌트를 가지는데 react-hook 이라는 라이브러리가 나오기전까지 함수형 컴포넌트는 스스로 상태를 가지지 못하여 잘 사용되지 못했지만 최근 함수형 프로그램의 우수성과 react-hook의 등장으로 인하여 많이 사용되고 있다.
해당 포스팅에서는 클래스형 컴포넌트와 함수형 컴포넌트의 작성 형태를 설명하고 컴포넌트의 life-cycle 같은 내용들은 추후 따로 포스팅 할 예정이다.
클래스형 컴포넌트
클래스형 컴포넌트는 React.component 를 상속받아서 사용하여야 한다. component 프로퍼티는 'react' 에서 export 되었기 때문에
import React , {component} from 'react'; 로 작성하면 사용 가능한다.
class App extends React.Component{
state = {
contents : "happy react"
}
render(){
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
${this.state.contents}
</a>
</header>
</div>
)
}
}
클래스형 컴포넌트의 경우 상태를 직접 가질 수 있다는 특징이있으며 클래스내부에 작성된 렌더 함수는 react component 를 만들어 주는 역할을 한다. 렌더 함수내부에 return 문 안에서는 JXS문법으로 컴포넌트에서 보여질 뷰를 작성하면 된다.
함수형 컴포넌트
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
);
}
정리하며
함수형 컴포넌트와 클래스형 컴포넌트는 서로 비슷해 보이지만 render됬을 때 해당 state나 props가 변환여부이다. 이에 대해서 한 블로거가 잘 작성해놨으니 한번 참조 하는 것도 좋을 듯하다.
https://overreacted.io/ko/how-are-function-components-different-from-classes/
'REACT' 카테고리의 다른 글
[React, 라이브러리] react-redux . (0) | 2019.08.14 |
---|---|
[React, 라이브러리]Connected React Router (0) | 2019.08.12 |
[React] state 와 props (0) | 2019.07.22 |
[react] 리액트 프로젝트를 쉽게 만들어주는 C - R - A (0) | 2019.07.17 |
[react] 웹팩이란 ? (0) | 2019.07.13 |