변수는 function scope를 가지므로 React에서도 다른 function 내에 있는 변수를 가져다 쓸 수 없다.
function App (){
let [btn, setBtn] = useState(['바로가기', '더보기', '다운로드']);
return (
<div>
<Button/>
</div>
)
}
function Button(){
return (
<button>{ btn }</button
)
}
위는 btn 변수가 define되지 않았다고 뜬다.
props
변수(state)를 가져다 쓰는 것이 자식 컴포넌트 → 부모 컴포넌트나 형제관계컴포넌트엔 불가능하지만,
부모 컴포넌트 → 자식 컴포넌트 관계인 경우에는 가능하다.
부모 컴포넌트 → 자식 컴포넌트 state 전송하는 법
- 부모에서 자식컴포넌트 사용하는 곳에 <자식컴포넌트 작명={state이름}>
- 자식컴포넌트 만드는 함수에 props 파라미터 등록 후 props.작명 넣기
(작명은 보통 state이름과 동일하게 한다)
function App (){
let [btn, setBtn] = useState(['바로가기', '더보기', '다운로드']);
return (
<div>
<Button btn={btn}></Button> //작명={btn}
</div>
)
}
function Button(props){
return (
<button>{ props.btn[0] }</button //props.작명[0]
)
}
state 뿐 아니라 변수, 함수, 일반 문자도 전송이 가능하며 한 번에 여러개 props를 전송할 수 있다.
<자식컴포넌트 작명={state이름} 작명2={변수명} 작명3="일반텍스트" />
(이해가 안된다면) 여기서 부모/자식의 의미...
위 코드는 아래처럼 읽혀지는 모양이다. 이렇게 보면 자식→부모, 형제관계도 이해가 쉽다.
function App (){
let [btn, setBtn] = useState(['바로가기', '더보기', '다운로드']);
return (
<div>
function Button(props){
return (
<button>{ props.btn[0] }</button //props.작명[0]
)
}
</div>
)
}
출처 : 코딩애플 https://codingapple.com/
'⚛️ React > 개념' 카테고리의 다른 글
React : 프로젝트생성/bootstrap 연결/이미지경로 연결/public폴더 (0) | 2023.05.17 |
---|---|
React : 옛날 class문법 (0) | 2023.05.15 |
React : map 사용해서 div 반복생성하기 (0) | 2023.05.02 |
React : 동적인 UI 만들기 (현재 상태, 조건문 삼항연산자) (0) | 2023.05.02 |
React : 복잡한 html을 한 단어로 치환하는 Component 문법 (0) | 2023.05.02 |