-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weโll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[3์ฃผ์ฐจ ๊ธฐ๋ณธ]๐์ค๋์ ์ ๋ฉ์ถ๐ #5
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์๊ณ ๋๋ฌด๋๋ฌด ๋ง์์ด์!!!
์์ฌ๋น์ ๋ธ(?)์ด๋ผ์ ๊ทธ๋ฐ์ง ์ญ์ ๋ฆฌ์กํธ ์ฒ์์ด๋ผ๊ณ ํ๋๋ฐ ์กฐ๊ฑด๋ถ๋ ๋๋ง ํ๋ ์ค๋ ฅ์ด ์ฌ์์น ์์๋ฐ์?!?!?!? ๐ซข
์ฌ์ค ๊ฐ๋ฐ๋์๋ฆฌ์ ์ธ๋ฏธ๋๋ ์๊ฐ์ด ํ์ ์ ์ด๊ธฐ ๋๋ฌธ์ ๋ชจ~~~๋ ๋ด์ฉ์ ๋ค๋ฃจ๋ ๊ฑด ๋ถ๊ฐ๋ฅํ์์์!! ๊ทธ๋ ๊ธฐ์ ์ฃผ์ํ ๋ด์ฉ์ผ๋ก๋ ๋ค๋ค์ง์ง๋ ์์์ง๋ง, ๊ด์ต์ ์ผ๋ก ์ง์ผ์ผํ ๊ท์น ๊ฐ์ ๊ฒ๋ค์ ์ฒ์ ๋ฐฐ์ธ ๋ ๋ชจ๋ฅด๋๊ฒ ๋น์ฐํ๋ฐ์!
๊ทธ๋ฐ ์ง์์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์์ฐ์ค๋ฝ๊ฒ ์ต๋์์ผ์ฃผ๋ ๋ฐฉ๋ฒ์ด ๋ฐ๋ก ๊ฐ์ ๊ณผ์ ๋ฅผ ํ ๋ค๋ฅธ ์น๊ตฌ๋ค์ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ์๋ฌธ์ ํ๊ณ , ๋ฌผ์ด๋ณด๊ณ , ์๋ก ์์๊ฐ๊ณ , ๋ฐฐ์๊ฐ๋ ๊ณผ์
์ด๋ผ๊ณ ์๊ฐํด์!!!!
๊ฒฐ๋ก ์, ์ง๊ธ ์ธ๋ฏธ๋์์ ๋ฐฐ์ด ๋ด์ฉ ์ ์ฉ์ ๋๋ฌด๋๋ฌด ์ํ๊ณ ์๊ณ , ์กฐ๊ธ ๋ ์์ฌ์ ๋ด์ ๊ฐ๋ฐ์ ํด๋ณด๊ณ ์ถ๋ค๋ฉด! ๋ค๋ฅธ ์จ๋น๋ค ์ฝ๋ ์ด๋ฆฌ์ ๋ฆฌ ๊ตฌ๊ฒฝ ๋ค๋๋ฉด์ ์์ํ๊ฑด ๋ฆฌ๋ทฐ ๋ฌ์์ ์ง๋ฌธํ๊ฑฐ๋ ์ฐพ์๋ณด๋ ๋ฑ ์กฐ๊ธ์ฉ ์ถ๊ฐ๋ก ๊ณต๋ถํ๋ ๋ฐฉ๋ฒ์ด ํฐ ๋์์ด ๋ ๊ฑฐ๋ผ๋ ๊ฟํ์ ๋จ๊ธฐ๊ณ ๊ฐ๋๋น!!! (์ ๋ ์์ฆ ๊ทธ๋ฌ๊ณ ์๋๋ฐ ๋๋ฌด ์ ์ตํด์ ๐ )
๋๋ฌด๋๋ฌด ์๊ณ ๋ง์์ด์ โค๏ธโค๏ธโค๏ธ
P.S. PR๋ณด๊ณ ์ด์ง ์ฌํ๋๊ฑฐ. ๋ฏผ์๋ฅผ ๋์์ค ๋ค๋ฅธ OB๋ค์ด ๋๊ตฐ์ง ๋ชฐ๋ผ๋.. ๐ ๋ํํ ๋ ์ง๋ฌธ..ํด์ฃผ๋ผ.. ๋ํํ ๋ ์์ง.. ํด์ฃผ๋ผ..
@@ -0,0 +1,13 @@ | |||
<!DOCTYPE html> | |||
<html lang="en"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1์ฃผ์ฐจ ์ธ๋ฏธ๋ ๊ธฐ์ตํ๊ธฐ!! ์ด์น๊ตฌ ko
๋ก ๋ฐ๊ฟ์ฃผ๋๊ฑฐ ์์ง๋ง์๋น !
week3_assign/public/vite.svg
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๋ณดํต ์ด๋ ๊ฒ ๋ถํ์ํ ํ์ผ๋ค์ ์ฒ์ React ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ , ๊ตฌํ ์์ ์ ์ด๊ธฐ์ธํ
์ ์น ์ง์์ฃผ๊ณ ์์ํ๋ฉด ์ข์์!!
๋์ค์ ์ ์ด ํ์ผ ์๋๋ฐ ์์ผ๋! ํ๋ ๊ฒฝ๊ณ ๋ ์๋ฌ๊ฐ ๋ฐ ์๋ ์๊ณ , ํ์ผ๋ช
์ด๋ ๋ชจ๋๋ช
์ด ๊ฒน์น๋ฉด ๊ณจ์น์ํ์ง ์ ์๊ธฐ ๋๋ฌธ์!
๐ต ์ญ์ด์ ๋ถํ์ํ ํ์ผ ์ญ์
์ด๊ฑฐ ์ ๊ฐ ์ด๋ฒ 4์ฐจ ๊ณผ์ ์์ํ๋ฉด์ ์ด๊ธฐ์ธํ
ํ ๋ ๋ถํ์ํ ํ์ผ๋ค ์ญ์ ํ๊ณ ๊ธฐ๋กํ ์ปค๋ฐ์ธ๋ฐ
์ด๋ฌํ ํ์ผ๋ค์ ์ญ์ ํ๋ฉด ๋๊ตฌ๋ ํ๊ณ ์ฐธ๊ณ ์ฉ์ผ๋ก ๋ด์ฃผ๋ฉด ์ข์ ๊ฒ ๊ฐ์์ฉ!!!
<section> | ||
<MainSectionWrapper></MainSectionWrapper> | ||
</section> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๊ฒ์ ๋ฌถ์ด์ฃผ๊ณ ์๋ section์ ์คํ์ผ์ ์ ์ฉํ์ง๋ ์๊ธฐ ๋๋ฌธ์ ๋ถํ์ํ ์น๊ตฌ๊ฒ ์ฃ ?? ์ง์์ฃผ๊ณ ๋ฐ๋ก MainSectionWrapper ์ปดํฌ๋ํธ๋ฅผ GlobalStyles ์๋์ ์์น์์ผ์ฃผ๋ฉด ์ข์ ๊ฒ ๊ฐ์์!
๊ทธ๋ฆฌ๊ณ , ์ด๋ฒ ๊ณผ์ ์ฝ๋๋ฆฌ๋ทฐํ๋ฉด์ ์จ๋น๋ค์ ์ฝ๋์์ ๋ง์ด ๋ฐ๊ฒฌ๋ ๋ด์ฉ์ธ๋ฐ,
<MainSectionWrapper></MainSectionWrapper>
์ด๋ ๊ฒ ๋ด๋ถ ๋ด์ฉ๋ฌผ์ด ๋น์ด์๋ ํ๊ทธ๋ ์ด๋ฆฐํ๊ทธ, ๋ซํํ๊ทธ๋ฅผ ๋ชจ๋ ์ฌ์ฉํ์ง ์๊ณ <MainSectionWrapper/>
์ด๋ ๊ฒ self closing ํ๊ทธ๋ก ํํํ ์ ์์ต๋๋ค!!
react eslint์ ๊ท์น์๋ ํฌํจ๋์ด์๋ ๋ด์ฉ์ธ๋ฐ์ฉ!!
ํจ์ฌ ๋ ๋์ ๊ฐ๋
์ฑ, ์ง๊ด์ฑ์ ์ํด ์
ํ ํด๋ก์ง ํ๊ทธ ํ์์ ์ฌ์ฉํ๋ ๊ฒ์ ์ต๊ดํํด๋ด
์๋น ๐
return ( | ||
<> | ||
<Header resetStep={resetStep}></Header> | ||
<MainStyle>{Main()}</MainStyle> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ฐ๋ฆฌ๊ฐ JSX ๋ฌธ๋ฒ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ element๋ฅผ ๋ฐํํด์ฃผ๋๊ฑด ๋ง๋๋ฐ, ์ฐ๋ฆฌ๋ ๊ทธ๋ ๊ฒ ํจ์ผ๋ก์จ ํจ์ํ ์ปดํฌ๋ํธ
๋ฅผ ์์ฑํด์ค๊ฑฐ์์์ฉ!? ๋ฐ๋ผ์ ์ผ๋ฐ์ ์ธ ํจ์ ํธ์ถ ๋ฐฉ์์ด ์๋, <์ปดํฌ๋ํธ />
๋ฅผ ์ฌ์ฉํด์ฃผ๋ฉด ๋ฉ๋๋ค!!
์กฑ,
<MainStyle>{Main()}</MainStyle> | |
<Main /> |
๐ JSX ๊ณต์๋ฌธ์
๐ Components ๊ณต์ ๋ฌธ์
<BtnWapper> | ||
<MoveBtn | ||
onClick={() => { | ||
setPreferStage(1); | ||
}} | ||
> | ||
<p1>์์ํ๊ธฐ</p1> | ||
</MoveBtn> | ||
</BtnWapper> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์คํ ๋ฐ๊ฒฌ!! BtnWapper๋ก ์์ฑ๋์ด์๋๋ฐ, ์ฐพ์๋ณด๋๊น ์๋ณธ ์ปดํฌ๋ํธ์์๋ ํ์ผ๋ช
์ BtnWrapper, ์ปดํฌ๋ํธ๋ช
์ BtnWapper๋ก ๋์ด์๋ค์!! ๊ทธ๋ฐ๋ฐ random.jsxํ์ผ์์๋ ๋ BtnWrapper๋ผ๊ณ ์ปดํฌ๋ํธ๋ฅผ ๋ถ๋ฌ์ค๊ณ ์์ด์!!! ๊ทธ๋์ ์๋ง ๋ ๊ตฐ๋ฐ ์ค ํ ๊ณณ์ ์ปดํฌ๋ํธ๊ฐ ์ ๋๋ก ์ ์ฉ๋๊ณ ์์ง ์์ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค๐ค๐ค๐ค
์ด๋ฐ ์ฌ์ํ ์คํ๋ ๊ฐ๋ฐ์๋ฅผ ์ ๋ง ์ง๋์ง๋ํ๊ฒ ๋ง๋๋! ์ค๋ฅ๊ฐ ๋๋๋ฐ, ๋์ฒด ์ด๋๊ฐ ๋ฌธ์ ์ธ์ง ์ฐพ์ง ๋ชปํ๊ฒ ๋ง๋๋ ๊ณจ์นซ๊ฑฐ๋ฆฌ๊ฐ ๋๊ธฐ ์ฝ๊ธฐ ๋๋ฌธ์ ๊ผญ๊ณ ๊ผญ ์ ์ํ๊ธฐ๋ก ํด์!!
์คํ์ ์๋ ค์ฃผ๊ฑฐ๋ ๊ณ ์ณ์ฃผ๋ vscode extension๋ ์์ผ๋๊น ์ฐพ์๋ณด๊ณ ์ค์นํด์ ์ฌ์ฉํ๋ ๊ฒ๋ ์ถ์ฒํฉ๋๋น ๐
<Section> | ||
<Title>์ถ์ฒ๋ฐฉ์</Title> | ||
<BtnSection> | ||
<TypeSelect> | ||
<p>์ทจํฅ๋๋ก ์ถ์ฒํด์ค๊ป</p> | ||
</TypeSelect> | ||
</BtnSection> | ||
<BtnWapper> | ||
<MoveBtn | ||
onClick={() => { | ||
setPreferStage(1); | ||
}} | ||
> | ||
<p1>์์ํ๊ธฐ</p1> | ||
</MoveBtn> | ||
</BtnWapper> | ||
</Section> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ด ํ๊ทธ ๊ตฌ์กฐ๊ฐ ๋๋ถ๋ถ์ ์ปดํฌ๋ํธ์์ ๋์ผ/์ ์ฌํ๊ฒ ์ฌ์ฉ๋๊ณ ์๋ ๊ฒ ๊ฐ์์!!
๋ฏผ์๊ฐ ์ด๋ฒ ๊ณผ์ ์์ ์ปดํฌ๋ํธ ๋ถ๋ฆฌ ๋ฐ ์ฌ์ฌ์ฉ์ฑ์ ์ํด ๋ฐ๋ณต ์ฌ์ฉ๋๋ ๋จ์ ์ปดํฌ๋ํธ๋ค์ ์์ฃผ ์ ๋ถ๋ฆฌํด์คฌ๋๋ฐ์!
์กฐ๊ธ๋ง ๋ ๋ชจ๋ํ๋ฅผ ํด์ฃผ๋ ๋ฐฉ๋ฒ์, ์ด๋ฌํ ๋จ์ ์ปดํฌ๋ํธ๋ค์ด ์กฐํฉ๋๋ ๊ตฌ์กฐ๊ฐ ๋์ผํ๋๊น ํ๋ํ๋ ๋ถ๋ฆฌํด์ฃผ๊ธฐ๋ณด๋ค ๋ฐ๋ณต๋๋ ๊ตฌ์กฐ ์์ฒด๋ฅผ ํ๋์ ์ปดํฌ๋ํธ๋ก ๋ฌถ์ด์ ๋ฐ๋ณต์ฌ์ฉํด์ฃผ๋ฉด, ๋์ฑ ์ถ์ํ ์์ค๊ณผ ์ฌ์ฌ์ฉ์ฑ์ด ๋์์ง๊ฒ ์ฃ ?!
์๋ฅผ ๋ค์๋ฉด
<Section>
<Title>...</Title>
<BtnSection>...</BtnSection>
<BtnWrapper>...</BtnWrapper>
</Section>
์ด๋ ๊ฒ ์๊ธด Layout ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๊ณ , ๋ฐ๋ณต๋๋ ํ๊ทธ ๋ด๋ถ์ ๋ฌ๋ผ์ง๋ ๋ด์ฉ๋ฌผ๋ค์ props ๋ก ๋๊ฒจ์ฃผ๋๊ฑฐ์ฃ !!
์ฒ์๋ถํฐ ๊ทธ๋ ๊ฒ ๋ชจ๋ํํ๋๊ฑฐ ์ฝ์ง ์๊ธฐ ๋๋ฌธ์ ์ด๋ฒ ๊ณผ์ ์์ ํ๊ฒ์ฒ๋ผ ํ๋จ๊ณ์ฉ ๋ฐ๋ณต ์ฌ์ฉ๋๋๊ฑธ ์ปดํฌ๋ํธ ๋ถ๋ฆฌ ํด๊ฐ๋ฉด์ ๊ฐ ์ก์ผ๋ฉด ์ข์ ๊ฒ ๊ฐ์์ฉ ๐
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ ๊ฐ ์ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ๋ชจ๋ํ ํด์ค๋ค๋ฉด ํ์ฌ ํ์ผ์์ ๋ฌด๋ ค 12์ค์ ์ฐจ์งํ๊ณ ์๋ import๋ฌธ๋ค๋ ํ! ๊ฐ์ํ์ํฌ ์ ์๊ฒ ์ฃ ?!
<Section> | ||
<Title>๊ฒฐ๊ณผ</Title> | ||
<ImgSection> | ||
<img src={randomResult.img} alt={randomResult.name} /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
react๋ก ๋์ด์ค๋ฉด์ ์๋งจํฑ ์์ ๊น๋จน๊ธฐ ์ฌ์ด๋ฐ img ํ๊ทธ์ alt ์ฑ๊ฒจ์ค๊ฑฐ ๋๋ฌด๋๋ฌด๋๋ฌด ๋๊ฒฌํ๋ค !!!
return Data[Math.floor(Math.random() * Data.length)]; | ||
}; | ||
|
||
const randomResult = drawRandom(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ด ๋ฐฉ๋ฒ๋ ์์ ์ข๊ณ ! ์๋์์ randomResult.~
๋ก ๊ฐ ํ๋กํผํฐ์ ์ ๊ทผํ๊ณ ์๋๊ฑธ ๊ทธ๋ฅ ํ๋กํผํฐ๋ช
์ผ๋ก ๋ฐ๋ก ์ ๊ทผํ ์ ์๋ ๊ตฌ์กฐ๋ถํดํ ๋น ๋ฐฉ์์ด ์๋ค๋ ์ ๋ ๊ธฐ์ตํ๊ณ ์๊ธฐ!!!!
const randomResult = drawRandom(); | |
const {img, name} = drawRandom(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ง๊ธ ๋ฏผ์๊ฐ First, Second, Third๋ผ๋ ์ธ๊ฐ์ ์ปดํฌ๋ํธ๋ก UI๊ตฌ์กฐ๋ ๋์ผํ์ง๋ง ๋ด์ฉ๋ง ๋ฌ๋ผ์ง๋ ์ธ ๋จ๊ณ๋ฅผ ๊ฐ๊ธฐ ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ก ์์ฑํด์ฃผ๊ณ ์๋๋ฐ์! ์ ์ฝ๋ฉํธ์์ ๋งํ๋ ๊ฒ์ฒ๋ผ ์ด๋ ๊ฒ ๊ตฌ์กฐ๊ฐ ๋ฐ๋ณต๋๋ ๊ฒฝ์ฐ ๊ผญ ๊ณตํต ์ปดํฌ๋ํธ๋ก ๋ชจ๋ํํ ๋ค, ๊ฐ ๋จ๊ณ๋ง๋ค ๋ฌ๋ผ์ง๋ ๋ด์ฉ๋ฌผ๋ค์ ๋ฐฐ์ด ๋ฐ์ดํฐ ๋ฑ์ผ๋ก ๊ด๋ฆฌํ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ์ปดํฌ๋ํธ์ ๋ฐ์ธ๋ฉ(์ ์ฌ์ ์์ ๊ฐ ๋ฃ์ด์ฃผ๊ธฐ)ํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๋ ์ฐ์ต์ ํด๋ณด๋ฉด ์์ฃผ์์ฃผ ์ฑ์ฅํ ์ ์์๊ฑฐ์์ฉ ๐
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๋ค๋ฅธ ์ปดํฌ๋ํธ๋ ๋ค ์ํด์ฃผ์๋๋ฐ ์ Random ๋๋ ํ ๋ฆฌ ์๋์ ์๋ ์ธ ์ปดํฌ๋ํธ ์น๊ตฌ๋ค! ์ด๋ฆ ๋๋ฌธ์๋ก ์์ํ๋๋ก ๋ฐ๊ฟ์ค์๋น!
์ปดํฌ๋ํธ ๋ค์ด๋ฐ์ ์์์น๋ชปํ ์ค๋ฅ๋ฅผ ํผํ๊ธฐ ์ํด ๊ผญ ๋๋ฌธ์๋ก ์์ํด์ค์๋น!
๐ ๊ณต์ ๋ฌธ์
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ญ์๋๊ฐ ๋์๋๋ ๋ง์ ๋ง์ด ๋จ๊ฒจ๋์ด์ ์ถ๊ฐ์ ์ธ ๋ถ๋ถ๋ค๋ง ๋จ๊ฒจ๋์์ด์ !!
์ฒซ ๋ฆฌ์กํธ์ธ๋ฐ ์ผ๋ฌด์ง๊ฒ ์ปดํฌ๋ํธ ๋ถ๋ฆฌํด์ switch-case
๋ก ๋ ๋๋ง ์ฒ๋ฆฌํด์ฃผ๊ณ , prop๋ ์ ๋ถ๊ธฐํด์ ๋ด๋ ค์ฃผ๋ ๋ถ๋ถ ์์ฃผ์์ฃผ ์ํ๋ค๊ณ ์๊ฐํ๋ฉด์ ์ฝ๋ ๋ฆฌ๋ทฐ ํ์ต๋๋ค ! ๐ฅน
์ด์ง์ฉ ๋๋ฒจ๋กญ ์ํฌ ์ ์๋ ๋ถ๋ถ๋ค์ด๋ ์ถํ์ ๋ง์ด ์ฌ์ฉํ๊ฒ ๋ ๋ถ๋ถ๋ค ๊ด๋ จํด์ ๋ฆฌ๋ทฐ ๋จ๊ฒจ๋์์ผ๋ ๋์์ด ๋์์ผ๋ฉด ์ข๊ฒ ์ด์์ค ๐
๊ณผ์ ํ๋๋ผ ์๊ณ ํ์ด์ ๐๐๐
const First = ({ setPreferStage, setFirstChoice, firstChoice }) => { | ||
return ( | ||
<Section> | ||
<QuestionWrapper> | ||
<Question>์ด๋ค ์ฅ๋ฅด๋ฅผ ๋ณด๊ณ ์ถ์ด?</Question> | ||
<Nav>1/3</Nav> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๋ฏผ์ ์ฝ๋์์๋ first, second, third ๋ก ๋จ๊ณ๋ณ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์ด๋์ด์ <Nav>1/3</Nav>
์ด ๊ฐ์ด ๋์ ์ผ๋ก ๋ฐ๋ ํ์๋ ์๊ฒ ์ง๋ง!
์ฌ๊ธฐ์ preferStage setterํจ์ ๋ง๊ณ ๋ preferStage
state๊ฐ ์์ฒด๋ prop์ผ๋ก ๋ฐ์์ค๋ฉด
<Nav>1/3</Nav>
์ด ๋ถ๋ถ์ ํ๋์ฝ๋ฉ๋ ๊ฐ์ด ์๋์ด๋ <Nav>{preferStage}/3</Nav>
์ผ๋ก ๋ฐ๊ฟ ์ ์๊ฒ ์ฃ ?
setSecondChoice={setSecondChoice} | ||
setThirdChoice={setThirdChoice} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ง๊ธ First.jsx
ํ์ผ์ ์ฐธ๊ณ ํด๋ณด๋ฉด ๋ด๋ถ์์ ๋ฐ์์จ Prop์ ์ฌ์ฉํ ๋
const First = ({ setPreferStage, setFirstChoice, firstChoice })
๋ง ์ฌ์ฉํ๊ณ ์์ผ๋ ์ด ๋ ๊ฐ์ง๋ ์ ๋๊ฒจ์ค๋ ๋๊ฒ ์ฃ ?!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ด ํ์ผ์ jsx
๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ง ์์ผ๋ ํ์ฅ์๋ฅผ data.js
๋ก ๋ฐ๊ฟ์ค์๋น !
<ChooseButton | ||
onClick={() => { | ||
setSecondChoice("domestic"); | ||
}} | ||
$isselected={secondChoice === "domestic"} | ||
className={secondChoice === "domestic" ? "selected" : ""} | ||
> | ||
<p>๊ตญ๋ด</p> | ||
</ChooseButton> | ||
<ChooseButton | ||
onClick={() => { | ||
setSecondChoice("oversea"); | ||
}} | ||
$isselected={secondChoice === "oversea"} | ||
className={secondChoice === "oversea" ? "selected" : ""} | ||
> | ||
<p>ํด์ธ</p> | ||
</ChooseButton> | ||
<ChooseButton | ||
onClick={() => { | ||
setSecondChoice("asia"); | ||
}} | ||
$isselected={secondChoice === "asia"} | ||
className={secondChoice === "asia" ? "selected" : ""} | ||
> | ||
<p>์์์</p> | ||
</ChooseButton> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ด ๋ถ๋ถ๋ค์ด first๋ second ์ปดํฌ๋ํธ์์ ๋ฐ๋ณต๋์ ์ฌ์ฉ๋๊ณ ์๋ ๊ฒ ๊ฐ์๋ฐ !
์ด๋ ๊ฒ ๊ฐ์ ์ปดํฌ๋ํธ์ ๋์ผํ ๋ก์ง์ ๊ฐ์ง๊ณ ๋ฐ๋ณตํด์ ๋ ๋๋ง ํด์ผํ๋ ๊ฒฝ์ฐ์๋ map
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์์ฃผ ํธ๋ฆฌํ๊ฒ ๊ตฌํํด๋ณผ ์ ์๋ต๋๋ค !
์๋ฅผ ๋ค์ด
const Second = ({ setPreferStage, setSecondChoice, secondChoice }) => {
const CHOICE_DATA = ["domestic", "oversea", "asia"];
const CHOICE_BTN_TEXT = ["๊ตญ๋ด", "ํด์ธ", "์์์"];
return (
...
<BtnSection>
{CHOICE_DATA.map((item, idx) => {
<ChooseButton
key = {idx}
onClick = {() => {setSecondChoice(item)}}
$isselected = {secondChoice === item}
className = {secondChoice === item ? "selected" : ""}
>
<p>{CHOICE_BTN_TEXT[idx]}</p>
</ChooseButton>
})}
</BtnSection>
...
์ ๊ฐ์ด ๊ตฌํํด๋ณผ ์ ์๊ฒ ์ฃ ! ์ด๋ ๊ฒ ํ๋ฉด ์ค๋ณต๋ ์ฝ๋๋ฅผ ์ค์ฌ์ ์ฌ์ฉํ ์ ์์ด์ !
๊ด๋ จ ์ํฐํด ์ฒจ๋ถํ๊ณ ๊ฐ๋๋ค ! ใ
ใ
๋ฐ๋ณต๋ ์ปดํฌ๋ํธ map์ผ๋ก ๊ด๋ฆฌํ๊ธฐ!
โจ ๊ตฌํ ๊ธฐ๋ฅ ๋ช ์ธ
๐ฑ ๊ธฐ๋ณธ ์กฐ๊ฑด
๐งฉ ๊ธฐ๋ณธ ๊ณผ์
[์ทจํฅ๋๋ก ์ถ์ฒ]
๋ต๋ณ ์ ํ
์ด์ ์ผ๋ก, ๋ค์์ผ๋ก(๊ฒฐ๊ณผ๋ณด๊ธฐ) ๋ฒํผ
์๋ฌด๊ฒ๋ ์ ํ๋์ง ์์์ ์ ๋ฒํผ์ ๋นํ์ฑํ ์ํต๋๋ค.
โ ๋๋ฌ๋ ์๋ฌด ๋์ X
โ ๋นํ์ฑํ์ผ ๋ ์คํ์ผ์ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํฉ๋๋ค.
์ด์ ์ผ๋ก
๋ฒํผ์ ๋๋ฅด๋ฉด ์ด์ ๋จ๊ณ๋ก ์ด๋ํฉ๋๋ค.๋ค์์ผ๋ก
/๊ฒฐ๊ณผ๋ณด๊ธฐ
๋ฒํผ์ ๋๋ฅด๋ฉด ๋ค์ ๋จ๊ณ๋ก ์ด๋ํฉ๋๋ค.๋ฒํผ ํธ๋ฒ์ ์คํ์ผ ๋ณํ๊ฐ ์์ต๋๋ค.
๊ฒฐ๊ณผ
[ ๋๋ค ์ถ์ฒ ]
[ ๊ณตํต ]
๋ค์ํ๊ธฐ
๋ฒํผโ ๋๋ค์ถ์ฒ์ด๋ฉด
๋๋ค ์ถ์ฒ start
ํ๋ฉด์ผ๋ก, ์ทจํฅ๋๋ก ์ถ์ฒ์ด๋ฉด์ทจํฅ๋๋ก ์ถ์ฒ start
ํ๋ฉด์ผ๋ก ๋์๊ฐ๋๋ค.โ ๋ชจ๋ ์ ํ ๊ธฐ๋ก์ ๋ฆฌ์ ๋ฉ๋๋ค.
๐ ์ฌํ ๊ณผ์
theme + Globalstyle ์ ์ฉ
์ ๋๋ฉ์ด์
ํค๋
์ฒ์์ผ๋ก
๋ฒํผโ ์ถ์ฒ ์ข ๋ฅ ์ ํ ํ๋ฉด์ผ์ ํด๋น ๋ฒํผ์ด ๋ณด์ด์ง ์์ต๋๋ค.
โ ์ฒ์ ์ถ์ฒ ์ข ๋ฅ ์ ํ ํ๋ฉด์ผ๋ก ๋์๊ฐ๋๋ค.
โ ๋ชจ๋ ์ ํ ๊ธฐ๋ก์ ๋ฆฌ์ ๋ฉ๋๋ค.
[ ์ทจํฅ๋๋ก ์ถ์ฒ ]
๋จ๊ณ ๋ ธ์ถ
์ด์ ์ผ๋ก ๋ฒํผ
useReducer
,useMemo
,useCallback
์ ์ฌ์ฉํ์ฌ ๋ก์ง ๋ฐ ์ฑ๋ฅ์ ์ต์ ํํฉ๋๋ค.๐ PR Point
๐ assets
name
,category
,img
ํํ๋ก ๊ฐ์ฒด๋ฅผ ๋ง๋ค์์ต๋๋ค๐ components
๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ปดํฌ๋ํธ๋ค๊ณผ ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ฑํ๋ ์ปดํฌ๋ํธ๋ค๋ก ์ด๋ฃจ์ด์ ธ์์ต๋๋ค.
๐ MainSectionWrapper
๐ Prefer
-prefer.jsx
filter๋ฌธ์ ํตํด์ ์ ํ๋ ์ ํ์ง๋ง์ ๋ค์ ํํฐ๋งํ ์ ์๊ฒ ํ์์ต๋๋ค.
switch case
๋ฌธ์ผ๋ก ๋จ๊ณ๋ฅผ ์ฒ๋ฆฌํ์ด์!๐ steps
๊ฐ๊ฐ์ ๋จ๊ณ์ ํด๋น ํ๋ ํ์ด์ง๋ค๋ก ๊ตฌ์ฑ๋์ด์์ต๋๋ค.
๐Random
๋๋ค ์ถ์ฒจ ์ ํ์ ๋ํ๋๋ ์ปดํฌ๋ํธ์ ๋๋ค.
์นด์ดํธ๋ค์ด ๋๋ ๋ถ๋ถ์ผ๋ก
useEffect
์ฌ์ฉํด์ ๊ตฌํํ์ต๋๋ค.-random.jsx
๐ App.jsx
์ ์ญ์คํ์ผ์ ์ ์ฉํฉ๋๋ค.
๐ฅบ ์์ ์๊ฐ, ์ด๋ ค์ ๋ ์
์ ์์์
์ค๋ฅ ๋๋ ๋ถ๋ถ๋ค์์๋ OB๋ถ๋ค์ ๋์์ ๋ฐ์ ํด๊ฒฐํ์ต๋๋ค๐ญ
๐ ๊ตฌํ ๊ฒฐ๊ณผ๋ฌผ
๐ฌ๋ฐฐํฌ๋งํฌโค๏ธ
https://github.com/DO-SOPT-WEB/MinseoKang/assets/111034927/6c4c3095-1c60-4256-b39d-14b8e1bf2256
-> ์ถ์ฒ์ ํ, ์ฒ์์ผ๋ก ์ด๋์ ๋ชจ๋ ์ ํ ์ด๊ธฐํ, ์ด์ ์ผ๋ก ์ด๋์ ์ ํ๋์ด์์
https://github.com/DO-SOPT-WEB/MinseoKang/assets/111034927/1a25589e-0f69-4eb5-bc27-981a05a9c59c
-> ๋๋ค์ ํ