ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • React/material-ui
    Language/React 2022. 8. 2. 16:01

     

    1. material-ui

    $ yarn add @mui/material @emotion/react @emotion/styled
    $ yarn add @mui/icons-material
    $ yarn add @emotion/css (추가??)

     

    2. 주요소스 정리

    - SignIn.js

    import React from 'react';
    import Avatar from '@mui/material/Avatar';
    import Button from '@mui/material/Button';
    import CssBaseline from '@mui/material/CssBaseline';
    import TextField from '@mui/material/TextField';
    import FormControlLabel from '@mui/material/FormControlLabel';
    import Checkbox from '@mui/material/Checkbox';
    import Link from '@mui/material/Link';
    import Grid from '@mui/material/Grid';
    import Box from '@mui/material/Box';
    import LockOutlinedIcon from '@mui/icons-material/LockOutlined';
    import Typography from '@mui/material/Typography';
    
    function Copyright(props) {
        return (
          <Typography variant="body2" color="text.secondary" align="center" {...props}>
            {'Copyright © '}
            <Link color="inherit" href="https://github.com/dchkang83">
              Your Website
            </Link>{' '}
            {new Date().getFullYear()}
            {'.'}
          </Typography>
        );
      }
      
      const SignIn = () => {
        const handleSubmit = (event) => {
          event.preventDefault();
          const data = new FormData(event.currentTarget);
          console.log({
            email: data.get('email'),
            password: data.get('password'),
          });
      
          // alert('Dialog 커스터 마이징 후 사용');
          window.location.href = '/dashboard/Dashboard';
        };
      
        return (
          <>
            <Box
              sx={{
                marginTop: 8,
                display: 'flex',
                flexDirection: 'column',
                alignItems: 'center',
              }}
            >
              <Avatar sx={{ m: 1, bgcolor: 'secondary.main' }}>
                <LockOutlinedIcon />
              </Avatar>
              <Typography component="h1" variant="h5">
                Sign in
              </Typography>
              <Box component="form" onSubmit={handleSubmit} noValidate sx={{ mt: 1 }}>
                <TextField
                  label="Email Address"
                  margin="normal"
                  required
                  fullWidth
                  id="email"
                  name="email"
                  autoComplete="email"
                  autoFocus
                  value={"dchkang83@naver.com"}
                />
                <TextField
                  label="Password"
                  margin="normal"
                  required
                  fullWidth
                  name="password"
                  type="password"
                  id="password"
                  autoComplete="current-password"
                  value={"test1234"}
                />
                <FormControlLabel
                  label="Remember me"
                  control={<Checkbox value="remember" color="primary" />}
                />
      
                <Button
                  type="submit"
                  fullWidth
                  variant="contained"
                  sx={{ mt: 3, mb: 2 }}
                >Sign in</Button>
      
                <Grid container>
                  <Grid item xs>
                    <Link href="#" variant="body2">
                      Forgot password?
                    </Link>
                  </Grid>
                  <Grid item>
                    <Link href="#" variant="body2">
                      {"Sign Up"}
                    </Link>
                  </Grid>
                </Grid>
              </Box>
            </Box>
            <Copyright sx={{ mt: 8, mb: 4 }} />
          </>
        );
      }
      
      export default SignIn;

    App.js

    import React from 'react';
    import SignIn from '~/views/components/sign/SignIn'
    
    function App() {
      return (    
        <React.Suspense>
          <SignIn />
        </React.Suspense>
      );
    }
    
    export default App;

     

     

     

     

    'Language > React' 카테고리의 다른 글

    React/redux & react-redux & redux-saga & etc  (0) 2022.08.04
    React/router & Layout  (0) 2022.08.04
    React/TypeScript - 절대경로 지정  (0) 2022.08.02
    React/JSX - 절대경로 지정  (0) 2022.08.02
    React/프로젝트 생성  (0) 2022.08.02

    댓글

Designed by Tistory.