2021. 12. 19. 15:06ใWEB Dev/ToyProject
๐ท CloneTodo โ - Todomate Clone Project | Team CloneMate
CloneTodo : ๋ง์ ์ฌ๋๋ค์ด ์ฌ๋ํ๋ ํฌ๋๋ฉ์ดํธ๋ฅผ ํด๋ก ํ์ฌ ์น ์๋น์ค๋ฅผ ๋ฐฐํฌํด๋ณด๋ ํ๋ก์ ํธ
์ฌํ๋์ ๋ฆฌ์กํธ๋ฅผ ๋ง์ง์ง ๋ชปํ๋ค. ํ์ฌ ์ผ์ด ๋ง์์ ์ง์ ์ค๋ฉด ์ง์ณ ์ฐ๋ฌ์ง ๐
์ค๋ ํ ์ผ์ ์ต๋ํ ๋ง์ ํ์ด์ง ๊ตฌํํ๊ธฐ!
๋งํฌ์ ๊ณผ CSS๋ ๋์์ ๋ง์ง๋, CSS๋ ์์ฃผ ๊ฐ๋จํ๊ฒ ๊ตฌ์ฑ๋ง ์ก๋ ๊ฒ์ผ๋ก ํ๊ณ ์ถํ SCSS ๋ฅผ ์ ์ฉํด๋ณผ๊น ํ๋ค.
MUI๊ฐ ๊ธฐ๋ณธ์ ์ธ CSS๋ ์ก์์ฃผ๊ธฐ ๋๋ฌธ์ ๋ ์ด์์๋ง ์์ ํ๋ฉด ๋ ๊ฒ ๊ฐ์๋ฐ..
์ค๋์ todo
โก ๊ฐ์ ํ๊ธฐ ์ปดํฌ๋ํธ
โก ๊ธฐ๋ณธ NavBar ์ปดํฌ๋ํธ
โก ๋ฉ์ธ NavBar ์ปดํฌ๋ํธ
โก ๋ฉ์ธ Feed ์ปดํฌ๋ํธ
โ ๊ฐ๋ฅํ๋ฉด ๊นํ ํธ์คํ ์ผ๋ก ๋ฐฐํฌ๊น์ง
1. ๊ฐ์ ํ๊ธฐ ์ปดํฌ๋ํธ
1) ์ปดํฌ๋ํธ ๋ง๋ค๊ธฐ
๊ฐ์ ํ๊ธฐ ์ปดํฌ๋ํธ์๋ Join ์ด๋ผ๋ ์ด๋ฆ์ด ์๊ธฐ ๋๋ฌธ์ ํ์ผ๋ช ์ Join.js๋ก ๋ง๋ค์ด์ค๋ค.
import React from 'react';
function Join(){
}
export default Join;
2) ๋ผ์ฐํฐ์ ์ฐ๊ฒฐ
Join์ App.js์ ๊ฐ์ ํ๊ธฐ ๋ฒํผ์ ์ฐ๊ฒฐํด์ค๋ค.
import React from "react";
import "../stylesheets/App.css";
import { Button } from "@mui/material";
import { ThemeProvider, createTheme } from "@mui/material/styles";
import { Switch, Route, useHistory } from "react-router-dom";
import Signin from "./Signin";
import Join from "./Join";
const theme = createTheme({
status: {
danger: "#e53e3e",
},
palette: {
primary: {
main: "#0971f1",
darker: "#053e85",
},
neutral: {
main: "#64748B",
contrastText: "#fff",
},
btn: {
main: "#f2f2f2",
contrastText: "#111",
},
},
});
function App() {
let history = useHistory();
return (
<ThemeProvider theme={theme}>
<Switch>
<Route exact path="/">
<div className="App">
<div className="header">
<img className="main_img" src="images/todomate.jpg" />
<h1>todo mate</h1>
<h3>ํ ์ผ์ ์์ฑ, ๊ณํ, ๊ด๋ฆฌํ์ธ์.</h3>
</div>
<div className="start_btn">
<Button
className="join_btn"
color="btn"
variant="contained"
onClick={() => {
history.push("/join");
}}
>
๊ฐ์
ํ๊ธฐ
</Button>
<Button
className="signin_btn"
color="btn"
variant="contained"
onClick={() => {
history.push("/signin");
}}
>
๋ก๊ทธ์ธ
</Button>
</div>
</div>
</Route>
<Route exact path="/join">
<Join />
</Route>
<Route exact path="/signin">
<Signin />
</Route>
</Switch>
</ThemeProvider>
);
}
export default App;
์ด๋ ๊ฒํ๋ฉด /join์ ํตํด์ join ํ์ด์ง๋ฅผ ํ์ธํ ์ ์๋ค.
3) Join ์ปดํฌ๋ํธ ๋ง๋ค๊ธฐ
์ฌ์ค ํ์๊ฐ์ ํ์ด์ง๋ ์ ๋ฒ์ ๋ง๋ ๋ก๊ทธ์ธ ํ์ด์ง์ ๋ ์ด์์์ด ์์ ํ ๊ฐ๋ค..!
๊ทธ๋์ ๋ก๊ทธ์ธ ํ์ด์ง์ ์ฝ๋๋ฅผ ๊ฐ์ ธ๋ค๊ฐ ํ๋จ์ ํ ์คํธ๋ง ๋ณ๊ฒฝํ๋ฉด ๋๋ค.
์ ๋ฒ์ ๋ง๋ Signin.js ํ์ด์ง์ ์ฝ๋๋ฅผ ๊ทธ๋๋ก ๊ฐ์ง๊ณ ์จ๋ค (CSS๋ ๋์ผํ๊ฒ ์ ์ฉํ ์ ์์)
๊ทธ๋ฆฌ๊ณ ํ์๊ฐ์ ํ์ด์ง์ ๋ง๊ฒ ํ ์คํธ๋ฅผ ์์ ํด์ค๋ค.
์ด์ฉ์ฝ๊ด๊ณผ ๊ฐ์ธ์ ๋ณด ์ ์ฑ ์ Link ๋ก ๋ค๋ฅธ ํ์ด์ง์ ์ฐ๊ฒฐ๋ ์ ์๋๋ก ํ๋ค. (๋์ค์ ๋ง๋ค ํ์ด์ง ์ด๋ฆ์ด text๋ผ text๋ก ์ฐ๊ฒฐ๋ ์ ์๋๋ก ๋ฏธ๋ฆฌ ์ง์ )
import React from 'react';
import { useState } from "react";
import { useForm } from "react-hook-form";
import '../stylesheets/Signin.css';
import { TextField } from '@mui/material';
import { Link } from 'react-router-dom';
function Join(){
const { register, handleSubmit } = useForm();
const [result, setResult] = useState("");
const onSubmit = (data) => setResult(JSON.stringify(data));
return (
<form onSubmit={handleSubmit(onSubmit)}>
<TextField
{...register("Email")}
id="standard-email-input"
label="์ด๋ฉ์ผ"
type="email"
autoComplete="current-email"
variant="standard"
helperText="Please enter Email"
margin="dense"
fullWidth
/>
<TextField
{...register("Password")}
id="standard-password-input"
label="๋น๋ฐ๋ฒํธ"
type="password"
autoComplete="current-password"
variant="standard"
helperText="Please enter Password"
margin="dense"
fullWidth
/>
<input className="join_btn" type="submit" value={"ํ์ธ"}/>
<div className='join_txt'>
<p>
๊ฐ์
ํ๋ฉด: <br />
• ๋ค๋ฅธ ๊ธฐ๊ธฐ์์ ๋ก๊ทธ์ธ ๊ฐ๋ฅํฉ๋๋ค.<br />
• ๋ค๋ฅธ ์ฌ์ฉ์๋ค๊ณผ ํจ๊ป ํ ์ ์์ต๋๋ค.
</p>
<p>๊ฐ์
์ ๋ค์ ์ฌํญ์ ๋์ํ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค.
<Link to="/text" className='termOfUse'>์ด์ฉ์ฝ๊ด</Link>๊ณผ <Link className='policy' to="/text">๊ฐ์ธ์ ๋ณด ์ ์ฑ
</Link>
</p>
</div>
</form>)
}
export default Join;
์ด๋ ๊ฒ ํด์ฃผ๋ฉด ํ์๊ฐ์ ํ์ด์ง๋ ์์ฑ!
ํ์๊ฐ์ ๊ฐ๋จํด์ ์ข๋น!
* ์ถ๊ฐ๋ก ํ์ํ ์ฌํญ ์ฐธ๊ณ ์๋ฃ
๋ฆฌ์กํธ ํด๋๋ฅผ ์กฐ๊ธ ๋ ์ธ๋ถํํด์ 2๋ช ์ด ๋๋ ์ ์ ๋ฌด๋ฅผ ๋ถ๋ฐฐํ ์ ์๋๋ก ๋ง๋ค๊ธฐ..!
'WEB Dev > ToyProject' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 13 (0) | 2021.12.19 |
---|---|
[ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 12 (0) | 2021.12.19 |
[ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 10 (0) | 2021.12.15 |
[ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 09 (0) | 2021.12.14 |
[ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 08 (0) | 2021.12.13 |