Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

브이로그

2024년 5월 16일 React-List 본문

React

2024년 5월 16일 React-List

황수환 2024. 5. 17. 01:58

1. UserList.js

import React from "react"

function User({user}){
    return(
        <div>
            <b>{user.username}</b><span>({user.email})</span>
        </div>
    )
}

function UserList({users}){
    return (
        <div>
            {
                users.map((user, index) => (
                    <User user={user} key={user.id}/>
                ))
            }
        </div>
    )
}

export default UserList

 

2. ArrayList.js

import React from "react";
function CreateUser({username, email, onChange, onCreate}){
    return (
        <div>
            <input name="username" placeholder="아이디" onChange={onChange} value={username}/>
            <input name="email" placeholder="이메일" onChange={onChange} value={email}/>
            <button onClick={onCreate}>등록</button>
        </div>
    )
}
export default CreateUser;

 

3. App.js

import React, { useState, useRef } from "react";
import UserList from "./UserList";
import ArrayList from "./ArrayList";

function App() {
  const [inputs, setInputs] = useState({
    username: '',
    email: ''
  })

  const {username, email} = inputs

  const onChange = e => {
    const {name, value} = e.target
    setInputs({
      ...inputs,
      [name]: value
    })

  }

  const [users, setUsers] = useState([
      {
        id:1,
        username: 'apple',
        email: 'apple@apple.com'
    },
    {
        id:2,
        username: 'banana',
        email: 'banana@banana.com'
    },
    {
        id:3,
        username: 'orange',
        email: 'orange@orange.com'
    }
  ])

  const nextId = useRef(4)

  const onCreate = () => {
    const user = {
      id: nextId.currnt,
      username,
      email
    }

    setUsers([...users, user])

    setInputs({
      username:'',
      email:''
    })

    nextId.currnt += 1
  }

  return (
    <>
      <ArrayList username={username} email={email} onChange={onChange} onCreate={onCreate}/>
      <UserList users={users}/>
    </>
  );
}

export default App;

'React' 카테고리의 다른 글

2024년 5월 17일 React-Effect(2)  (0) 2024.05.18
2024년 5월 17일 React-Effect  (0) 2024.05.18
2024년 5월 16일 React-Counter  (0) 2024.05.17
2024년 5월 13일 React  (0) 2024.05.14