(1-1) Hook 특징
(1-2) Hook 사용규칙
(1-3) 사용 예 - (함수 컴포넌트)
import React, { useState } from 'react'; // 1
const Test = () => {
// useState Hook을 최상위로 호출한 경우
const [color, setColor] = useState('red'); // 2
if(5 > 3){
console.log("true");
};
return (
<div>Hello!</div>
);
};
export default Test;
🚨 Hook 사용시 주의사항)
import React, { useState } from 'react';
const Test = () => {
// useState Hook을 최상위에서 호출한 경우
const [color, setColor] = useState("red"); // O
// useState Hook을 조건문에서 호출한 경우
if(5 > 3){
const [color, setColor] = useState('red'); // X (Error)
};
return (
<div>Hello!</div>
);
};
export default Test;
-> 함수 컴포넌트에 조건문, 반복문, 중첩된 함수내에선 Hook을 호출해서 사용하게 될시에 에러가 발생하므로 반드시 함수 컴포넌트의 최상위에서 호출해줘야 한다.
(2-1) State 사용
예시코드)
import React from "react";
import { useState } from "react";
const Parent = () => {
const [color, setColor] = useState("red"); // 4~5
return (
<>
<h1 style={{ color: color }}>여기는 메인페이지입니다.</h1> // 1~3
<button onClick={() => setColor("pink")}>색상 바꾸기</button>
</>
);
};
export default Parent;
요약)
순서 요약)
1. 먼저 return문에 h1 태그의 인라인 스타일을 적용한다. (<h1 style={}>)
2. 여러 스타일 속성 중에 변경하고자 하는 것은 Font Color이므로, color를 적용해준다.
(<h1 style={color: ""}>)
3. 만약 color의 value로서 정적인 값이 들어가게 된다면, font 색상을 동적으로 활용할 수 없기 때문에 color : color와 같이 미리 선언한 state 값을 넣어야 한다.
4. 그렇다면 처음 화면이 렌더링될 때 useState hook의 초기값인 “red”에 따라 h1 태그의 첫 배경색은 빨간색으로 그려지게 된다.
5. 만일 예를 들어 useState(’blue’)로 초기값을 변경 했을때 화면에 그려지는 Font Color 또한 파란색으로 변경되어 표시하게 된다.
참고사항 - onClick 이벤트)
(3-1) Props 사용 법
예시코드)
import React from "react";
import Child from "./Child"; // 1
const Parent = () => {
const food = "떡볶이"; // 2
return (
<div>
<h1>여기는 Parent 페이지 입니다.</h1>
<p>{food}</p>
<Child koreanFood={food} foodEnglishName="ricecake" /> // 3
</div>
);
};
export default Parent;
👍 코드 요약
예시 코드)
import React from "react";
const Child = (props) => { // 1
console.log(props); // 2
return (
<div>
<h2>여기는 Child 페이지 입니다.</h2>
<p>{props.koreanFood}</p> // 3
<p>{props.foodEnglishName}</p> // 4
</div>
);
};
export default Child;
👍 코드 요약
예시 코드)
import React from "react";
import Child from "./Child";
const Parent = () => {
const testConsole = () => { // 1
console.log("테스트 입니다.");
};
return (
<div>
<h1>여기서는 Parent 페이지 입니다.</h1>
<button onClick={testConsole}>버튼</button> // 2
<Child test={testConsole} /> // 3
</div>
);
};
export default Parent;
import React from "react";
const Child = (props) => { // 1
console.log(props);
return (
<div>
<h1>이곳은 Chlid 페이지 입니다.</h1>
<button onClick={props.test}>버튼</button> // 2
</div>
);
};
export default Child;
👍 코드 요약
prop과 관련하여 구조분해할당을 좀 더 이해하면 쉽게 접근할 수 있다.