import React, { useState } from "react";

function Counter() {
  const [count, setCount] = useState(10); // 초기값을 10으로 설정

  return (
    <div>
      <p>현재 숫자: {count}</p>
      <button onClick={() => setCount(count - 1)}>감소</button>
    </div>
  );
}

export default Counter;
import React, { useState } from "react";

function Counter() {
  const [isChecked, setIsChecked] = useState(false); // 초기값을 false로 설정

  return (
    <div>
      <label>
        <input
          type="checkbox"
          checked={isChecked}
          onChange={() => setIsChecked(!isChecked)}
        />
        체크박스
      </label>
      <p>현재 상태: {isChecked ? "선택됨" : "선택 안 됨"}</p>
    </div>
  );
}

export default Counter;
import React, { useState } from "react";

function Counter() {
  const [text, setText] = useState(""); // 상태 변수를 빈 문자열로 초기화

  return (
    <div>
      <input
        type="text"
        value={text} // 입력 필드의 값과 상태를 연결
        onChange={(e) => setText(e.target.value)} // 입력 변경 시 상태 업데이트
        placeholder="텍스트를 입력하세요"
      />
      <p>입력한 내용: {text}</p> {/* 상태 값을 화면에 표시 */}
    </div>
  );
}

export default Counter;
import React, { useState } from "react";

function Counter() {
  const [todos, setTodos] = useState([]); // 할 일 목록을 저장하는 상태 변수
  const [inputValue, setInputValue] = useState(""); // 입력 필드의 값을 저장하는 상태 변수

  const addTodo = () => {
    if (inputValue.trim() !== "") {
      setTodos([...todos, inputValue]); // 새로운 할 일을 목록에 추가
      setInputValue(""); // 입력 필드 초기화
    }
  };

  const removeTodo = (index) => {
    const newTodos = todos.filter((_, i) => i !== index); // 해당 인덱스의 아이템 제거
    setTodos(newTodos); // 상태 업데이트
  };

  return (
    <div>
      <input
        type="text"
        value={inputValue} // 입력 필드의 값과 상태를 연결
        onChange={(e) => setInputValue(e.target.value)} // 입력 변경 시 상태 업데이트
        placeholder="할 일을 입력하세요"
      />
      <button onClick={addTodo}>추가</button>
      <ul>
        {todos.map((todo, index) => (
          <li key={index}>
            {todo}
            <button onClick={() => removeTodo(index)}>삭제</button>{" "}
            {/* 아이템 삭제 기능 */}
          </li>
        ))}
      </ul>
    </div>
  );
}

export default Counter;
import React, { useState } from "react";

function Counter() {
  const [isDarkMode, setIsDarkMode] = useState(false); // 초기값을 false로 설정

  const toggleTheme = () => {
    setIsDarkMode(!isDarkMode); // 상태를 토글하여 모드 전환
  };

  const themeStyles = {
    backgroundColor: isDarkMode ? "#333" : "#FFF", // 다크 모드면 어두운 배경, 아니면 밝은 배경
    color: isDarkMode ? "#FFF" : "#000", // 다크 모드면 밝은 글자색, 아니면 어두운 글자색
    padding: "20px",
    textAlign: "center",
    height: "100vh",
  };

  return (
    <div style={themeStyles}>
      <h1>{isDarkMode ? "다크 모드" : "라이트 모드"}</h1>
      <button onClick={toggleTheme}>모드 전환</button>
    </div>
  );
}

export default Counter;
import React, { useState } from "react";

function CustomCounter() {
  const [count, setCount] = useState(0);
  const [increment, setIncrement] = useState(1);

  const handleIncrementChange = (e) => {
    setIncrement(Number(e.target.value));
  };

  const increaseCount = () => {
    setCount(count + increment);
  };

  return (
    <div>
      <h2>현재 카운트: {count}</h2>
      <input
        type="number"
        value={increment}
        onChange={handleIncrementChange}
        placeholder="증가할 값을 입력하세요"
      />
      <button onClick={increaseCount}>증가</button>
    </div>
  );
}

export default CustomCounter;