React Component
1. React Component
- component : HTML을 반환하는 함수
- react application 하나에 하나의 component만 rendering 가능하다.
- 부모 component에 자식 component 추가하는 방식
- 추가 component는 모두 [App component] 안에 넣기
- Function Component, Class Component 두가지 방식이 있다.
- JSX 사용 권장!!
1 | // function Component |
2. Component 특징
- JSX
- Component Props
- State
1. JSX방식 Component 생성
- Return 될 HTML은 JSX방식으로 사용한다.
JSX : REACT에서만 사용하는 개념 (HTML + javascript)
<div class="a">
X<div className="a">
O<label for="a">
X<label htmlFor="a">
O- JSX문법 안에서 javascript를 사용하고 싶을 경우 : { } 사용하기
- ./src/App.js : Function Component 생성
1 | import React from "react"; |
- ./src/index.js : virtual DOM 위치 선언 (component)
1 | import React from "react"; |
2. Component Props
- component간의 data 공유가 가능하다.
단방향 : 부모 -> 자식 만 가능하다.
1
2
3
4
5
6
7function Hello(props) {
return <div>This is {props.name}</div>;
}
function App() {
return <Hello name="react" />;
}
- component는 유일해야 한다. 중복 X
component 재활용시에 자주하는 실수
=> key 속성을 통해 고유의 component 값을 생성해준다.key props는 하위 coponent로 값 전달 X
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15const arr = ["react", "vue"];
function Hello(props) {
return <div>This is {props.name}</div>;
}
function App() {
return (
<div>
{arr.map((data, index) => (
<Hello name={data} key={index} />
))}
</div>
);
}
3. State (동적인 data)
- Class Component에서 State를 사용할 수 있다.
- State는 Object이다.
- SetState : state 변경시 사용하는 method
- STATE를 직접 변경하여도, Class Component의 render method는 refresh되지 않음
=> setState Method를 통해 render Method를 refresh 함! (변경된 state data를 재 redering하는 것) - setState를 통해 State를 값을 추가할 수 있다!
- STATE를 직접 변경하여도, Class Component의 render method는 refresh되지 않음
- ./src/App.js : Class Component 생성
1 | //App Class는 react Class Component로부터 properties를 상속받음 |
state가 필요 없는 경우에는 굳이, Class Component를 사용하지 않는다..
React Hook 추가되면서 function Component에서도 state를 사용할 수 있다!