๋ฆฌ์กํธ์์ 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()){
//์๋ฒ์ ์ ์ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋
},[]);
'Framework > React Framework' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
(23.01.25)React ํ๋ ์์ํฌ : ๋ฆฌ์กํธ ๋ฐฐ์ด ๋ค๋ฃจ๊ธฐ (0) | 2023.01.25 |
---|---|
(23.01.20)React ํ๋ ์์ํฌ : ๋ฒํผ ์ด๋ฒคํธ๋ฆฌ์ค๋ ๋ง๋ค๊ธฐ (0) | 2023.01.24 |
(23.01.19) React ํ๋ ์์ํฌ - ๋ค์ด๋ก๋ ๋ฐ ์ค์น (0) | 2023.01.24 |
๋๊ธ