개인사정으로 하루 결석하여 나중에 추가 예정
App.js
import { useState } from "react";
import Count from "./Count";
import "./styles.css";
export default function App() {
const [count, setCount] = useState(0); // 초기값 설정
const handleClick = () => {
setCount(() => count + 1);
console.log("handleClick 작동");
};
return (
<div className="container">
<div className="banner">
Total Count : {count} {count > 10 ? "🧨" : "💦"}
</div>
<div className="App">
<Count clickFunc={handleClick} total={count} />
{/* 함수명 변경 가능(이벤트 함수 아님) */}
{/* 컴포넌트에 직접 주는게 아니라 props 사용해야 작동 */}
<Count clickFunc={handleClick} total={count} />
</div>
</div>
);
}
Count.jsx
import React, { useState } from "react";
const Count = ({ clickFunc, total }) => {
const [num, setNum] = useState(0);
//useState -리액트에서 제공해주는 유용한 react hook
//const [상태값변수, 상태값을 업데이트하는 함수] = useState(상태초기값)
return (
<div className="counter">
<p className="number">
{num} / <span>{total}</span>
</p>
<p>
<button
className="btn"
onClick={() => {
setNum((prev) => prev + 1);
clickFunc(); // 외부로부터 받아온 onClick 함수 호출
}}
>
+1
</button>
</p>
</div>
);
};
export default Count;
scss