- componet: 재활용 가능한 UI 구성 단위
- 예제. westagram 메인페이지
- main 페이지를 Component로 나눈다면,
- Nav컴포넌트, Main컴포넌트, 그리고 Main 컴포넌트 안에는 Feed 컴포넌트와 MainRight
컴포넌트로 나눌 수 있다.
- 재활용하여 사용할 수 있다.
- 코드 유지보수에 좋다.
- 해당 페이지가 어떻게 구성되어 있는지 한 눈에 파악하기 좋다.
- 컴포넌트는 또 다른 컴포넌트를 포함할 수 있다.(부모 컴포넌트 - 자식 컴포넌트)
컴포넌트의 종류, 즉 컴포넌트를 선언하는 방식에는 두 가지가 있다.
- class형 컴포넌트 (Class Component)
- 함수형 컴포넌트 (function component)
import React from 'react'
class Component extends React.Component {
render() {
return (
<div>
<h1>This is Class Component! </h1>
</div>
)
}
}
export default Component
import React from 'react'
const Component = () => {
return (
<div>
<h1>This is Functional Componet</h1>
</div>
)
};
export default Component
react convention
자바스크립트 표현 : { ... javascript... }
class
vs. className
여기선 className
Inline Styling : <div style={{color : "red"}}>Hello React</div>
Self Closing tag : <div></div>
vs. <div />
모든 요소를 감싸는 최상위 요소 (cf. React Fragments : <> ... </>
)
: JSX의 큰 특징 중 하나는 내부 요소들을 감싸는 최상위 요소가 있어야 한다고 배웠다. Fragments는 DOM에 별도의 노드를 추가하지 않고 하나의 컴포넌트 안에 여러 요소(자식)들을 간단하게 그룹화 할 수 있는 기능이다. 요소들을 감싸는 div
태그의 불필요한 생성을 막을 수 있어 유용하게 사용됩니다.
<>
<div className="loginBtn" onClick={() => console.log("click")}>Login</div>
<br />
<div style={{backgroundColor: "grey", height: "10px"}} />
</>