위젯부분은 특별한 로직이 들어가지 않는다. 다만 UI가 반복되기 때문에 이렇게 반복되는 부분을 커스텀함수로 작성한다.
import React from 'react'
import './Widgets.css'
import InfoIcon from "@material-ui/icons/Info"
import FiberManualRecordIcon from '@material-ui/icons/FiberManualRecord'
function Widgets() {
//본문과 내용을 인자로 받는 커스텀 함수
const newsArticle = (heading, subtitle) => (
<div className="widgets__article">
//뉴스의 아이콘을 구성하는 부분
<div className="widgets__articleLeft">
<FiberManualRecordIcon />
</div>
//뉴스의 제목과 내용을 띄워주는 부분
<div className="widgets__articleRight">
<h4>{heading}</h4>
<p>{subtitle}</p>
</div>
</div>
);
return (
<div className="widgets">
<div className="widgets__header">
<h2>LinkedIn News</h2>
<InfoIcon />
</div>
//커스텀 함수를 이용해 반복되는 부분을 줄여준다
{newsArticle("React by Chanmin", "This is all by myself")}
{newsArticle("New Macro-Hedge Fund", "Bridgewater sells bitcoins")}
{newsArticle("Etherium on Top", "You can sell it at the highest")}
{newsArticle("Only Using JS", "Fullstack Dev with JavaScript")}
</div>
)
}
export default Widgets;
'Projects > React + Firebase 링크드인 클론' 카테고리의 다른 글
#10. 프로젝트를 끝내며 (0) | 2021.06.27 |
---|---|
#9. 작성한 모든 컴포넌트를 합쳐주기 | App.js (0) | 2021.05.31 |
#7. 저장한 글들을 피드에 띄워주기 | Post.js (0) | 2021.05.31 |
#6. 피드와 포스트 입력창 구현 | Feeds, InputOption (0) | 2021.05.31 |
#5. 메인화면 및 사이드바 구현 | Sidebar.js (0) | 2021.05.31 |