일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- React Native
- http
- SasS
- html기초
- 리액트
- 타입스크립트
- 비동기
- redux
- 리덕스
- 프론트엔드
- TypeScript
- JavaScript
- react
- 코딩기초
- 리액트 네이티브
- 코린이
- 깃
- useEffect
- 자바스크립트
- 참조자료형
- 코딩독학
- 사용하는 이유
- 코딩공부
- Vue3
- git
- scss
- 코딩초보
- CSS
- async
- react-router
Archives
- Today
- Total
맨 땅에 프론트엔드 개발자 되기
리액트 React 에서 탭 기능 구현하기 본문
728x90
리액트에서 탭 기능 구현은 state를 이용해서 간단하게 구현할 수 있다.
완성예제
소스코드
import { useState } from "react";
import styles from './scss/tab.module.css';
export default function Tab() {
const data = [
{
id: 0,
title: "HTML",
description: "HTML (HyperText Markup Language) is the most basic building block of the Web. It defines the meaning and structure of web content. Other technologies besides HTML are generally used to describe a web page's appearance/presentation (CSS) or functionality/behavior (JavaScript)."
},
{
id: 1,
title: "CSS",
description: "Cascading Style Sheets (CSS) is a stylesheet language used to describe the presentation of a document written in HTML or XML (including XML dialects such as SVG, MathML or XHTML). CSS describes how elements should be rendered on screen, on paper, in speech, or on other media."
},
{
id: 2,
title: "JavaScript",
description: "JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions. While it is most well-known as the scripting language for Web pages, many non-browser environments also use it, such as Node.js, Apache CouchDB and Adobe Acrobat."
}
];
const [index, setIndex] = useState(0);
return (
<section className={styles.tabContainer}>
<ul className={styles.tabMenu}>
{data.map(item => (
<li
key={item.id}
className={index === item.id ? styles.active : null}
onClick={() => setIndex(item.id)}>{item.title}</li>
))}
</ul>
{data.filter(item => index === item.id).map(item => (
<div className={styles.tabContent}>{item.description}</div>
))}
</section>
)
}
728x90
'코딩 공부 일지 > React JS' 카테고리의 다른 글
CRA로 생성된 프로젝트에 절대경로 설정하기 (0) | 2022.05.06 |
---|---|
styled-components를 이용하여 스타일링 변경이 가능한 컴포넌트 만들기 (0) | 2022.05.03 |
useParams 로 세부 페이지 라우팅 구현하기 (0) | 2022.04.14 |
React useEffect와 addEventListener - window 이벤트 렌더링 규칙 (0) | 2022.04.04 |
React Context API (0) | 2022.03.30 |