SweetAlert2
μ΄μ©νμ¬ Modal, Alertμ°½ μΆκ°
- μΈμλ‘ λ€μ΄κ° μ»΄ν¬λνΈμ μ΄λ€ propsκ° λ€μ΄κ°λμ§ νμΈνκ³ ,
μ λ ₯λλ λͺ¨λ propsμ μ κ· κ°μ νμΈν λ€ μ΄λ₯Ό κΈ°μ‘΄ props κ°κ³Ό λΉκ΅νλλ‘ λ¦¬μ‘νΈμκ² μ λ¬ν¨- props κ°μ΄ λ°λ κ²½μ°μλ§ μ»΄ν¬λνΈλ₯Ό μ¬μ€ν λ° μ¬νκ°νκ² λ¨
- λΆλͺ¨ μ»΄ν¬λνΈκ° λ³κ²½λμμ§λ§ κ·Έ μ»΄ν¬λνΈμ props κ°μ΄ λ°λμ§ μμλ€λ©΄ μ»΄ν¬λνΈ μ€νμ skip
export default React.memo(DemoOutput);
μ»΄ν¬λνΈ μ€ν μ λ°μ κ±Έμ³ ν¨μλ₯Ό μ μ₯ν μ μκ² νλ ν
μ¦, λ§€λ² μ€νν λλ§λ€ ν΄λΉ ν¨μλ₯Ό μ¬μμ±ν νμκ° μλ€λκ±Έ μ릴 μ μμ
π λμΌν ν¨μ κ°μ²΄κ° λ©λͺ¨λ¦¬μ λμΌν μμΉμ μ μ₯λλ―λ‘ λΉκ΅ μμ μ΄ κ°λ₯ν΄μ§
- μ°λ¦¬κ° μ νν ν¨μλ₯Ό 리μ‘νΈ λ΄λΆ μ μ₯곡κ°μ μ μ₯ν΄μ ν¨μ κ°μ²΄κ° μ€νλ λλ§λ€ μ΄λ₯Ό μ¬μ¬μ©ν μ μκ² ν΄μ€
const toggleParagraphHandler = useCallback(() => {
setShowParagraph((prevShowParagrah) => !prevShowParagrah);
}, []);
useMemo()
useCallback()
κ³Ό μ¬μ©λ², μν μ΄ λΉμ·νμ§λ§ λͺ¨λ μ’ λ₯μ λ°μ΄ν°λ₯Ό μ μ₯ν μ μμ
const sortedList = useMemo(() => {
return items.sort((a, b) => a - b);
}, [items]);
μ»΄ν¬λνΈ μλͺ
μ£ΌκΈ°
componentDidMount()
useEffect(...,[])
componentDidUpdate()
useEffect(..., [someValue])
componentWillUnmount()
useEffect(() => { return () => {...}}, [])
SweetAlert2 μ μ©
κΈ°λ³Έ alertμ°½μ΄ λ무 μ μλ»μ modalμ΄λ alertμ°½μ μλ‘ λ§λ€λ €κ³ μ°Έκ³ ν λ§ν λμμΈλ€μ μ°Ύμ보λ€κ° SweetAlertλΌλ λͺ¨λ¬ λͺ¨λμ μ¬μ©νλ©΄ νΈλ¦¬ν κ² κ°μμ μ¬μ©ν΄λ³΄μλ€!
npm install sweetalert2
π SweetAlert2 곡μλ¬Έμ
μ¬λ¬ κΈ°λ³Έ μμ΄μ½λ λ£μ μ μμ΄μ λ³΄λ€ λ μμ? Alertμ°½ ꡬν κ°λ₯ :>
Swal.fire({
icon: "success",
text: "리뷰λ₯Ό μμ νμμ΅λλ€.",
button: "νμΈ",
}).then(() => {
window.location.reload();
}); // then()μ ν΅ν΄ Alertμ°½μμ νμΈλ²νΌμ λλ₯΄λ©΄ μλ‘κ³ μΉ¨μ΄ λλλ‘ ν μ μλ€.
// then() μμ΄ κ·Έλ₯ μλ‘κ³ μΉ¨ ν¨μλ₯Ό νΈμΆνλ©΄ Alertμ°½μ΄ λ³΄μ΄κΈ°λ μ μ μλ‘κ³ μΉ¨μ΄ λμ΄λ²λ¦°λ€..
νμΈ, μ·¨μ λ²νΌμ΄ μλ λͺ¨λ¬μ°½
π [μ°Έκ³ μλ£] How do I change text color in SweetAlert2?
import Swal from "sweetalert2";
Swal.fire({
icon: "warning",
title:
"<p style='font-size:18px'>" + "ν΄λΉ 리뷰λ₯Ό μμ νμκ² μ΅λκΉ?" + "</p>",
// κΈμ ν¬κΈ°κ° λ무 컀μ μ€μΌ λ°©λ²μ μ°Ύλ€κ° μ΄λ κ² νλκΉ μ μ©μ΄ λμλ€!
showCancelButton: true,
confirmButtonText: "νμΈ",
cancelButtonText: "μ·¨μ",
confirmButtonColor: "#AD8B73",
cancelButtonColor: "#BEBCBA",
}).then((result) => {
if (result.isConfirmed) {
onRemovePost();
}
});
κΈ°λ³Έ Alertμ°½λ³΄λ€ μμ Toastμ°½
κΈ°λ³Έ λͺ¨λ¬μ°½μ λ체μ μΌλ‘ ν¬κΈ°κ° ν°λ° κ°λ¨ν alertμ°½μ μνλ κ²½μ° toast μμ±μ μ¬μ©νλ©΄ Toastμ²λΌ 컀μ€ν μ΄ κ°λ₯νλ€.
import Swal from "sweetalert2";
const Toast = Swal.mixin({
toast: true, // <- here!!
position: "top", // μμ μμΉνλλ‘
showConfirmButton: false, // νμΈ λ²νΌ μλλ‘
timer: 3000, // 3μ΄ νμ μ¬λΌμ§λλ‘
timerProgressBar: true, // μκ° μ§νλ° μ§μ
width: "400px", // λλΉ μ§μ
didOpen: (toast) => {
toast.addEventListener("mouseenter", Swal.stopTimer);
toast.addEventListener("mouseleave", Swal.resumeTimer);
},
});
export default Toast;
μ½ν μ°μ΅κ²Έ μ½ν λ₯Ό λ΄λ΄€λλ° μμλ μ½ν λ μ΄λ ΅λ€.. 첫문μ λ§ ν΅κ³Ό,,
μ½ν μ€λ ₯μ μΈμ λλ €λ~ π₯²