props.props명
으로 사용해왔는데, props명 그대로 사용하는 방법이 있음👉🏻 하위 컴포넌트에서 매개변수란에 {props명}
입력하기
function 하위컴포넌트({props명1, props명2, ...}){
return (
console.log(props명1, props명2) //으로 사용가능
)
}
/* 상위 컴포넌트 */
function App(){
let [test, setTest] = useState(0);
return (
(중략)
//Test라는 컴포넌트로 test라는 state 전달하기
<Test test={test} />
)
}
/* 하위 컴포넌트(Test) */
function Test(props){
return (
console.log(props.test)
//props.props명 즉, props.test를 입력해야 값 출력이 가능했음
)
}
👉🏻매번 props.props명
을 입력하자니 매우 귀찮다
/* 상위 컴포넌트 */
function App(){
let [best, setBest] = useState(0)
return (
(중략)
<Best best={best} />
)
}
/* 하위 컴포넌트(Test) */
function Best({best}){
//여러 개면 {best, test, etc...} 가능
return (
console.log(best)
//props명을 그대로 가져올 수 있다 !
)
}
[array자료][array명]
으로 조건문처럼 동적인UI 구현 가능function App(){
let [protab, setProtab] = useState(0)
return (
(중략 / 버튼 클릭할 때마다 proptab 상태 변하는 코드가 있다고 치자)
<TabContent protab={protab} />
)
}
/* 조건문으로 동적UI구현 */
function TabContent({protab}){
if (protab == 0){
return <div>0일때 코드</div>
}
else if (protab == 1){
return <div>1일때 코드</div>
}
......
}
👉🏻 protab이 추가될 때마다 else if
열어줘야 하고, return
을 계속 쓰자니 귀찮다 ...
/* App내용은 동일 */
function App(){
let [protab, setProtab] = useState(0)
return (
(중략 / 버튼 클릭할 때마다 proptab 상태 변하는 코드가 있다고 치자)
<ArrayContent protab={protab} />
)
}
function ArrayContent({protab}){
return [<div>0일때 코드</div>,<div>1일때 코드</div>, ...][protab]
//이 짧은 한 줄로 코드 구현 끝!
}
return
최소화.append
등을 이용하여 수정 용이