동적인 UI란 유저가 조작시 형태가 바뀌는 모달창 탭 서브메뉴 툴팁 경고문 등으 UI들을 의미함
1. html css로 미리 UI 디자인 구현
2. UI의 현재 상태를 state로 저장
3. state에 따라 UI가 어떻게 보일지 조건문 작성
Function Modal(){
return(
...
)
}
let [modal, setModal] = useState(false);
function App (){
let [modal, setModal] = useState(false);
return (
저 state가 true면 <Modal></Modal>
false면 아무것도 보여주지마세요
)
}
이런식으로 코드짜면 될 듯
근데 jsx에서는 if조건문이 아닌 삼항연산자를 써야 함
조건식 ? 조건식 참일 때 실행할 코드 : 조건식 거짓일 때 실행할 코드
3 > 1 ? console.log('맞음') : console.log('아님')
예를 들어 이렇게 쓰면 3 > 1 이게 참이기 때문에 '맞음'이 출력됨.
function App (){
let [modal, setModal] = useState(false);
return (
<div className="app">
(생략)
{
modal == true ? <Modal></Modal> : null
}
</div>
)
}
삼항연산자를 이용해서 작성했음.
null은 아무 html도 남기기 싫을때 쓰는 자료임
function App (){
let [modal, setModal] = useState(false);
return (
<div>
(생략)
<button onClick={ ()=>{ setModal(true) } }> {글제목[0]} </button>
{
modal == true ? <Modal></Modal> : null
}
</div>
)
}
<h4 onClick = { ()=> {setodal(!modal) }}>글제목</h4>
!modal을 하면 modal의 값을 반대로 바꿔줌