Framework/React Framework

(23.01.26.) React ํ”„๋ ˆ์ž„์›Œํฌ : ๋ฆฌ์•กํŠธ์—์„œ JSON ํŒŒ์ผ ๋‹ค๋ฃจ๊ธฐ ๋ฐ ํ•„ํ„ฐ๊ธฐ๋Šฅ

ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜ค์›” 2023. 1. 28.

๋ฆฌ์•กํŠธ์—์„œ JSON ํŒŒ์ผ ๋‹ค๋ฃจ๊ธฐ

 

 

List.js

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
import emps from "./emps.json";
function List()
{
    return
        <>
        <h1>ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ ํ‘œ์‹œํ•˜๊ธฐ</h1>
        <table>
            <thead>
                <tr><th>๋ฒˆํ˜ธ</th><th>์ด๋ฆ„</th><th>์ „ํ™”</th></tr>
            </thead>
            <tbody>
            {  
                emps.list.map((emp)=> 
                <tr key={emp.num}>
                    <td>{emp.num}</td><td>{emp.name}</td><td>{emp.phone}</td>
                </tr> 
                )
            }
            </tbody>
        </table>
        </>
    );
}
export default List;
 
//emps ์ œ์ด์Šจ ์–ด๋ ˆ์ด emp๋Š” ๋ฆฌ์ŠคํŠธ์˜ ํ•˜๋‚˜์˜ ์›์†Œ(์ต๋ช… ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ)
cs

 

1. jsx์—์„  ํ…Œ์ด๋ธ”์˜ ํ—ค๋“œ์™€ ๋ฐ”๋””๊ฐ€ ๊ผญ์žˆ์–ด์•ผ ํ•œ๋‹ค.

 

2. return๋ฌธ์žฅ ์•ˆ์—์„œ๋Š” 1๊ฐœ์˜ ํƒœ๊ทธ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

    h1์˜ ํƒœ๊ทธ์™€, table์˜ ํƒœ๊ทธ 1๊ฐœ ์ด 2๊ฐœ๊ฐ€ ์žˆ๋Š”๋ฐ, <>์ด๋ฆ„์—†๋Š” ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ 2๊ฐœ์˜ ํƒœ๊ทธ๋ฅผ 1๊ฐœ๋กœ ๋ฌถ์–ด์ค€๋‹ค

 

 

emps.json

1
2
3
4
5
6
7
8
{
    "list":[
    { "id":11, "num":11, "name":"Smith", "phone":"010-2149-3214", "dept":20},
    { "id":12, "num":12, "name":"Lora", "phone":"010-2547-5498", "dept":20},
    { "id":13, "num":13, "name":"Jone", "phone":"010-2193-2594", "dept":30},
    { "id":14, "num":14, "name":"Scott", "phone":"010-2368-95474", "dept":40}
    ]
}
cs

 

 

 

App.js

1
2
3
4
5
6
7
8
9
10
11
12
13
import Input from './comp/Input.js'
import ShowArr from './comp/ShowArr.js'
import List from './comp/List.js'
function App(){
  return(
  <div className='App'>
    <Input/>
    <ShowArr/>
    <List/>
  </div>
  );
}
export default App;
cs

 

 

 

์‹คํ–‰๊ฒฐ๊ณผ  :

{emp.num}   >   ๋™์ ์ธ ๊ฐ’

 

 

 


ํ•„ํ„ฐ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๊ฐ’๋งŒ ์‚ฐ์ถœํ•˜๊ธฐ

 

filter๊ธฐ๋Šฅ ์‚ฌ์šฉ  -  emp.dept ๊ฐ€ 20์ธ ์‚ฌ๋žŒ๋งŒ ์ถ”์ถœํ•˜๊ธฐ

 

List.js

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
import emps from "./emps.json";
function List()
{
    const filtered = emps.list.filter(emp=>emp.dept==20)
    return
        <>
        <h1>ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ ํ‘œ์‹œํ•˜๊ธฐ</h1>
        <table>
            <thead>
                <tr><th>๋ฒˆํ˜ธ</th><th>์ด๋ฆ„</th><th>์ „ํ™”</th></tr>
            </thead>
            <tbody>
            {  
                filtered.map((emp)=> 
                <tr key={emp.num}>
                    <td>{emp.num}</td><td>{emp.name}</td><td>{emp.phone}</td>
                </tr> 
                )
            }
            </tbody>
        </table>
        </>
    );
}
export default List;
//ํ•จ์ˆ˜๋„ ๊ฐ์ฒด๋กœ์„œ ๋ณด๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜์•ˆ์— ๋˜ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค. 
cs

list ๋Œ€์‹  filtered ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์–ด์ค€๋‹ค.

 

 

 

์‹คํ–‰ ๊ฒฐ๊ณผ : 

 


ํ•จ์ˆ˜ ์•ˆ์— ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•˜์—ฌ ์ต๋ช…์„ ํ•จ์ˆ˜ ๋ง๊ณ  ํ•จ์ˆ˜๋ช…์„ ๋ถˆ๋Ÿฌ ๋ฐ์ดํ„ฐ ๋‚˜ํƒ€๋‚ด๊ธฐ

 

 

 

List.js

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
31
32
33
34
35
import emps from "./emps.json";
function List()
{
    const filtered = emps.list.filter(emp=>emp.dept==30)
 
    /* ์ปดํฌ๋„ŒํŠธ ์•ˆ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ํ•จ์ˆ˜ (ํ•จ์ˆ˜ ์„ ์–ธ ์ด์œ  : ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด) */
    function GetTr(emp){
        return(
            <tr key={emp.num}>
                <td>{emp.num}</td><td>{emp.name}</td><td>{emp.phone}</td>
            </tr>
        );
    }
    /* ํ•จ์ˆ˜ ๋ */ 
 
    return
        <>
        <h1>ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ ํ‘œ์‹œํ•˜๊ธฐ</h1>
        <table>
            <thead>
                <tr><th>๋ฒˆํ˜ธ</th><th>์ด๋ฆ„</th><th>์ „ํ™”</th></tr>
            </thead>
            <tbody>
            {  
                filtered.map((emp)=> 
                GetTr(emp)
                )
            }
            </tbody>
        </table>
        </>
    );
}
export default List;
 
cs

 

 

 

์‹คํ–‰ ๊ฒฐ๊ณผ : 

 

 

 


useEffect()ํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ

 

 

-์ƒํƒœ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋ฉด ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜

-์ƒํƒœ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋œ ํ›„์— ํ›„์† ์กฐ์น˜๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์— ํ™œ์šฉ

 

1
2
const[num,setNum] = useState(0);
 
cs

 

-์ƒํƒœ๋ณ€์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ๊ทธ ๋ณ€์ˆ˜๋ฅผ ํ™”๋ฉด์— ์ž๋™์œผ๋กœ ์ถœ๋ ฅํ•ด์ค€๋‹ค.

<div>{num}</div>

 

 

useEffect(ํ•จ์ˆ˜,[num]) :

- ํ•จ์ˆ˜ : ์‚ผํƒœ๋ณ€์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๋Š” ํ•จ์ˆ˜

- [] : ์˜์กด์„ฑ ๋ฐฐ์—ด (์ฐธ์กฐํ•  ์ƒํƒœ๋ณ€์ˆ˜)

- ์˜์กด์„ฑ ๋ฐฐ์—ด์ด ๋นˆ ๋ฐฐ์—ด์ธ ๊ฒฝ์šฐ : ์‹œ์ž‘ํ•  ๋•Œ ํ•œ๋ฒˆ๋งŒ ์‹คํ–‰

 

 

1
2
3
4
5
6
7
useEffect(function()){
 
       //์„œ๋ฒ„์— ์ ‘์†ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ
 
},[]);
 
 
cs

useEffect(function()){

       //์„œ๋ฒ„์— ์ ‘์†ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ

},[]);

 

 

 

 

 

 

 

 

๋Œ“๊ธ€