반복문을 연습해 보도록 하겠습니다.
데이터 파일과 로고 이미지 파일입니다. 압축을 해제하고 src폴더에 넣으세요
데이터와 로고 이미지는 행정안전부의 내고장알리미 서비스르 이용하여 취합했습니다.
내고장알리미
지자체 대표 누리집 지자체 대표 누리집(홈페이지)으로 바로가는 서비스입니다.
www.laiis.go.kr
https://www.laiis.go.kr/lips/mlo/lcl/cultureTourismList.do
내고장알리미
지자체 문화관광 지자체의 특색있는 문화관광 정보를 알아볼 수 있습니다.
www.laiis.go.kr
LocalGovernment.js 파일을 만듭니다.
|
import './App.css'
const LocalGovernment = ({name, list})=>{
return (
<>
{
list.map((g)=>{
const clickHandler = (e)=>{
window.location.href = g.link;
}
const src = `./sido/images/img_logo_${g.code}.png`;
return (
<div className='gov' onClick={clickHandler} style={{width:"100px",borderRadius:"25px"}} key={g.code}>
<img src={src} alt={g.code} width={50} height={50}/><br/>
{g.name}
</div>
)
})
}
</>
);
}
export default LocalGovernment;
|
App.css 파일을 만듭니다.
|
.gov {
padding: 5px;
margin: 3px;
text-align: center;
float: left;
cursor: pointer;
border: 1px solid gray;
background-color:#E8E8E8;
}
|
App.js 파일을 만듭니다.
|
import LocalGovernment from "./LocalGovernment";
import GOV from "./sido/data/sidoLists";
import './App.css'
import { useEffect } from "react";
const App = ()=>{
// favicon 설정 : public 폴더에 favicon.ico 을 원하는 favicon 파일로 변경하면 됩니다.
// 윈도우 타이틀 변경하기
useEffect(()=>{
const titleElement = document.querySelector("title");
titleElement.innerText = `자치단체별 홈페이지 가기`
},[]);
return (
<>
{
GOV.map((g)=>{
const clickHandler = (e)=>{
window.location.href = g.link;
}
const src = `./sido/images/img_logo_${g.code}.png`;
let style = {textAlign:"left", border : "none", backgroundColor:"white", width:"600px"};
return (
<div key={g.code}>
<div className="gov" onClick={clickHandler} style={style}>
<img src={src} alt={g.code} width={50} height={50} style={{float : "left"}}/>
<h1>{g.name}</h1>
</div>
<br style={{clear:"both"}}/>
<LocalGovernment name={g.name} list={g.list}/>
<br style={{clear:"both"}}/>
<br/>
</div>
)
})
}
</>
);
}
export default App;
|
index.js 파일을 만듭니다.
|
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
const root = ReactDOM.createRoot(document.querySelector("#app"));
root.render(
<React.StrictMode>
<App/>
</React.StrictMode>
);
|
결과 화면 입니다.

'Front End > React' 카테고리의 다른 글
| [React Exam 34] map()을 이용한 10간(十干)/ 12지(十二支) 나열하기 (0) | 2024.11.01 |
|---|---|
| [React Exam 33] map()을 이용한 3.1 혁명 민족 대표 보기 (3) | 2024.11.01 |
| [React Exam 31] map() 사용 시 key에 index를 사용하면 안되는 이유 (0) | 2024.10.31 |
| [React Exam 30] map() 사용 시 올바른 key 사용법 (0) | 2024.10.31 |
| [React Exam 29] map()을 이용한 반복 렌더링 (0) | 2024.10.31 |