TIL

24. 06. 28 TIL

효ㄷi 2024. 6. 28. 12:22

useState 기초 과제 풀기

 

1. 카운터 만들기

문제

import React from 'react';

function Counter() {
  return (
    <div>
      <p>Count: 0</p>
      <button>Increment</button>
    </div>
  );
}

 

쓴 코드

더보기

 

import { useState } from 'react';

const App = () => {
  const [num, setNum] = useState(0);
  return (
    <div>
      <p>{`count: ${num}`}</p>
      <button onClick={() => setNum(num + 1)}>Increment</button>
    </div>
  );
};

export default App;

2. 텍스트 입력 상태 관리

문제

import React from 'react';

function TextInput() {
  return (
    <div>
      <input type="text" />
      <p>Input: </p>
    </div>
  );
}

 

쓴 코드

더보기
const App = () => {
  const [inputValue, setInputValue] = useState('');

  const inputText = (e) => {
    setInputValue(e.target.value);
  };
  return (
    <div>
      <input type="text" onChange={inputText} />
      <p>{`input: ${inputValue}`} </p>
    </div>
  );
};

3. 토글스위치

문제

import React from 'react';

function ToggleSwitch() {
  return (
    <div>
      <p>Status: OFF</p>
      <button>Toggle</button>
    </div>
  );
}

 

쓴 코드

더보기
const App = () => {
  const [toggle, setToggle] = useState(false);

  return (
    <div>
      <p>{`status: ${toggle ? 'ON' : 'OFF'}`}</p>
      <button onClick={() => setToggle(!toggle)}>Toggle</button>
    </div>
  );
};

 

4. 항목 목록 관리

문제

import React from 'react';

function ItemList() {
  return (
    <div>
      <input type="text" />
      <button>Add Item</button>
      <ul>
        {/* 항목 목록이 표시될 곳 */}
      </ul>
    </div>
  );
}

 

쓴 코드 ☆

더보기
const App = () => {
  const [inputText, setInputText] = useState('');
  const [inputList, setInputList] = useState([]);

  const addInput = () => {
    setInputList([...inputList, inputText]);
    setInputText('');
  };

  return (
    <div>
      <input
        type="text"
        value={inputText}
        onChange={(e) => setInputText(e.target.value)}
      />
      <button onClick={addInput}>Add Item</button>
      <ul>
        {inputList.map((i, index) => {
          return <li key={index}>{i}</li>;
        })}
      </ul>
    </div>
  );
};

5. 테마 색상 변경

문제

import React from 'react';

function ThemeChanger() {
  return (
    <div style={{ padding: '20px' }}>
      <button>Light Blue</button>
      <button>Light Green</button>
      <button>Light Pink</button>
    </div>
  );
}

 

쓴 코드

더보기
  const [backColor, setBackColor] = useState('white');

  return (
    <div style={{ padding: '20px', backgroundColor: backColor }}>
      <button onClick={() => setBackColor('lightblue')}>Light Blue</button>
      <button onClick={() => setBackColor('lightgreen')}>Light Green</button>
      <button onClick={() => setBackColor('lightpink')}>Light Pink</button>
    </div>
  );
};