๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?
Development/React.js

[nomadcoders_React.js]ToDoApp

by DevIseo 2022. 6. 21.

<์ „์ฒด ์ฝ”๋“œ>

Index.js

import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';


const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);

App.js

import React, { useState } from 'react';
function App() {
  const [toDo,setToDo]=useState("")
  const [toDos,setToDos]=useState([])
  const onChange = (event)=>setToDo(event.target.value)
  const onSubmit = (event)=>{
    event.preventDefault()
    if(toDo===""){
      return
    }
    setToDos((currentArray)=>[toDo,...currentArray])
    setToDo("")
  }
  return( 
  <div>
    <h1>My To Dos ({toDos.length})</h1>
    <form onSubmit={onSubmit}>
      <input onChange={onChange} value={toDo} type="text" placeholder='write your to do...'/>
      <button>Add To Do</button>
    </form>
    <hr/>
    <ul>
      {toDos.map((item,index)=>(
        <li key={index}>{item}</li>
    ))}
    </ul>
  </div>
  )
}

export default App;

 

+Plus

1.

  const onSubmit = (event)=>{
    event.preventDefault()
    if(toDo===""){
      return
    }
    setToDos((currentArray)=>[toDo,...currentArray])
    setToDo("")
  }

์ œ์ถœ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฒŒ ๋˜๋ฉด setToDos function์— ์˜ํ•ด์„œ ํ˜„์žฌ ์ €์žฅ๋œ array์— toDo๊ฐ€ ์ถ”๊ฐ€ ๋œ๋‹ค!

 

2.

    <ul>
      {toDos.map((item,index)=>(
        <li key={index}>{item}</li>
    ))}
    </ul>

map()๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด toDos์— ์ €์žฅ๋œ ๊ฐ’๋“ค์„ ํ•˜๋‚˜์”ฉ ๋ถˆ๋Ÿฌ์™€ ๋ณด์—ฌ์ฃผ๋Š”๋ฐ, item๋งŒ ๋ถˆ๋Ÿฌ์™€ li ํƒœ๊ทธ๋กœ item์„ ํ˜ธ์ถœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋œจ๊ฒŒ ๋œ๋‹ค.

map๋ฉ”์„œ๋“œ๋Š” ๊ฐ item๋งˆ๋‹ค ๋…๋ฆฝ์ ์ธ key ๊ฐ’์„ ๋ถ€์—ฌํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ! ๋”ฐ๋ผ์„œ li์— key๊ฐ’์œผ๋กœ map()๋ฉ”์„œ๋“œ์˜ ๋‘๋ฒˆ์งธ ์ธ์ž์ธ index๋ฅผ ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„์™€ ๋„ฃ์–ด์ฃผ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ํ•ด๊ฒฐ๋œ๋‹ค.

๋Œ“๊ธ€