탭메뉴를 구성하여 클릭 시 탭메뉴 색상 변경 및
해당 컨텐츠로 스크롤 이동되게 만들기

map함수를 이용하여 button, content 레이아웃을 잡고
useState를 이용하여 탭메뉴 색상 변경과 자동스크롤을 구현하고자 했다.

tab01을 설정해두었다.삼항연산자를 이용하여 스타일 속성에서activeTab = tab.id 해당아이디에 해당하는 탭을 선택했다면(?)조건문이 참일때 true의 결과값이 실행되고
조건문이 거짓일때 false의 결과값이 실행된다.
조건문
?true:false
const [activeTab, setActiveTab] = useState('tab01');
<div className="tab-title">
{tabContent.map((tabs)=>(
<button
key={tabs.id}
style={
backgroundcolor: activeTab === tabs.id ? `#ccc` : `#fff`,
color: activeTab === tab.id ? '#000' : '#333',
}
>
<span>{tabs.title}</span>
</button>
))}
</div>
handleTabClicktabId를 받아와 setActiveTab을 호출하여 activeTab의 상태를 업데이트 한다.element를 만들어서 주어진 tabId를 가진 html 요소를 할당해준다.element가 존재한다면 해당 하는곳으로 이동한다.handleTabClick 핸들러함수에 해당 id부여하고 onclick 등록 
<div className="tab-title">
{tabContent.map((tabs)=>(
<button
key={tabs.id}
style={{}}
onClick={() => handleTabClick(tabs.id)}
>
<span>{tabs.title}</span>
</button>
))}
</div>
🔎 content에 <컴포넌트명 /> 넣어서 유지보수성 높이기
string 비어있을 경우 <component />를 불러오는 로직을 구성하였다.
방법은 간단한다
typeo 으로 content의 내용이 문자열인지 확인 한뒤content의 내용을 렌더링 한다.React.Fragma으로 content을 한번 더 감싼뒤 렌더링한다.피연산자의 데이터 타입을 문자열로 반환한다.
{typeof tabs.content === 'string' ? (
tabs.content
) : (
<React.Fragment key={tabs.id}>{tabs.content}</React.Fragment>
)}

🔎 해당컨텐츠 내용마다 tab-menu가 존재할 것