이번 시간에는 React에서 자주 사용하는 기능/디자인들을 Compnent/Api로 제공해서, Reacr 개발시 다양한 UI를 만들어주는 Meterial-ui 에 대해 알아보도록 하겠습니다.
1. Material-UI 시작하기
<설치>
- @material-ui/core
// npm 사용시
npm install @material-ui/core
// yarn 사용시
yarn add @material-ui/core
- @material-ul/icons
// npm 사용시
npm install @material-ui/icons
// yarn 사용시
yarn add @material-ui/icons
meterial에서 제공하는 icon도 다운받아줍니다.
<import>
material-ui을 불러오기위해 아래 명령어른 입력한다.
import React from 'react'
import PropTypes from "prop-types";
import { makeStyles } from "@material-ui/core/styles";
import AppBar from '@material-ui/core/AppBar';
import Tabs from "@material-ui/core/Tabs";
import Tab from "@material-ui/core/Tab";
import Typography from '@material-ui/core/Typography';
import Box from '@material-ui/core/Box';
function TbaPannel(props) {
const {children, value, index,...other} = props
return (
<div
role="tabpanel"
hidden={value !== index}
id={`simple-tabpanel-${index}`}
aria-labelledby={`simple-tab-${index}`}
{...other}
>
{value === index && (
<Box p={3}>
<Typography>{children}</Typography>
</Box>
)}
</div>
);
}
TbaPannel.a11yProps = {
children: PropTypes.node,
index: PropTypes.any.isRequired,
value: PropTypes.any.isRequired,
}
function a11yProps(index) {
return {
id: `simple-tab-${index}`,
'aria-controls' : `simple-tabpannel-${index}`
}
}
const useStyles = makeStyles((theme) => ({
root : {
flexGrow: 1,
backgroundColor: theme.palette.background.paper,
}
}))
export default function SimpleTabs() {
const classes = useStyles();
const [value, setValue] = React.useState(0);
const handleChange = (event, newValue) => {
setValue(newValue);
}
return (
<div className={classes.root}>
<AppBar position="static">
<Tabs value={value} onChange={handleChange} arial-label="simple tabs example">
<Tab label="Item One" {...a11yProps(0)} />
<Tab label="Item Tow" {...a11yProps(1)} />
<Tab label="Item Three" {...a11yProps(2)} />
</Tabs>
</AppBar>
<TbaPannel value={value} index={0}>
Item One
</TbaPannel>
<TbaPannel value={value} index={1}>
Item Two
</TbaPannel>
<TbaPannel value={value} index={2}>
Item Three
</TbaPannel>
</div>
)
}
공식튜토리얼에 나온 간단한 예제입니다.
전 페이지에 MovieApi로 영화 리스트를 불러왔습니다 .이렇게 간단하고 심플한 디자인 메뉴를 만들수 있는 것이 가장 큰 장점입니다.
'프론트 엔드 > React' 카테고리의 다른 글
[heroku] React Heroku 배포하기 (0) | 2021.08.31 |
---|---|
[React] Firebase 배포하기 (0) | 2021.08.31 |
Js와 tsx,ts의 차이점 (2) | 2021.08.31 |