2초 뒤에 사라지는 alert 만들기
풀이 - 바닐라 js 버전
import { useEffect } from "react"
function Detail(props){
useEffect(()=>{
setTimeout(()=>{ document.querySelector('.alert-warning').style.display = 'none' },2000)
});
return (
<div className="container">
<div className="alert alert-warning">
2초 이내 이벤트로 이동하세요
</div>
</div>
)
}
풀이 2 - react 스타일 버전
import { useEffect, useState } from "react"
function Detail(props){
let [alert, setAlert] = useState(true);
useEffect(()=>{setTimeout(()=>{ setAlert(false) },2000)});
return (
<div className="container">
{alert && <Alert />}
</div>
)
}
function Alert(){
return (
<div className="alert alert-warning">
2초 이내 이벤트로 이동하세요
</div>
)
}
풀이 3 - react useEffect & cleanup function 버전
import { useEffect, useState } from "react"
function Detail(props){
let [alert, setAlert] = useState(true);
useEffect(()=>{
let timer = setTimeout(()=>{ setAlert(false) },2000)
return ()=>{ clearTimeout(timer) }
}, []);
return (
<div className="container">
{alert && <Alert />}
</div>
)
}
function Alert(){
return (
<div className="alert alert-warning">
2초 이내 이벤트로 이동하세요
</div>
)
}
출처 : 코딩애플 https://codingapple.com/
'⚛️ React > 문제풀기 (코딩애플: React)' 카테고리의 다른 글
React : 더보기 버튼 누르면 ajax axios로 상품 더 가져오기 (1) | 2023.05.31 |
---|---|
React : 숫자가 아닌 걸 치면 alert 뜨는 input 만들기 (0) | 2023.05.26 |
React : 가나다정렬되어도 끄떡없는 상세페이지 불러오기 (useParams, find()) (0) | 2023.05.22 |
React : 데이터 바인딩해서 컴포넌트로 뿌리기 (템플릿 리터럴 Template literal) (0) | 2023.05.18 |
React : input에 글 쓰면 게시글 추가하기 (onChange, 매개변수, trim, splice) (0) | 2023.05.11 |