5. 기본 UI 만들기(5) - [ 버튼 누르면 바운스 하는 글자, 칼로리 계산기 로직 아웃소싱 , Animate.css 를 module.css 와 같이 사용하기]
1. 버튼을 눌러, 제출하면, 계산이 완료되고, 튀어오르는 숫자 애니메이션 만들기 ** Animate.css 를 module.css 와 같이 사용하기 import { FormEvent, useEffect, useRef, useState } from "react"; const EstimateBMR = () => { const [buttonStyle, setButtonStyle] = useState( `${styles.answer_section_totalCal} animate__animated animate__bounce` // 1. 시작은 바운스 );// Animate.css , module.css 의 결합 useEffect(() => { setButtonStyle( `${styles.answer_sect..
2022. 12. 29.
4. 기본 UI 만들기(4) - [ Redux-toolkit ] 버튼을 누르면, 해당 컴포넌트가 렌더되는 페이지 만들기
프로세스 및 워크플로우 [일단 파츠(부위)별 컴포넌트를 전부 만든다.] "HowToWorkOut Page" 는 "Choose Part 컴포넌트" , "Descripion 컴포넌트" 로 구성 "Choose Part 컴포넌트" 는 기본적으로 "디폴트 Description" 이 같이 렌더 "Choose Part 컴포넌트" 에서 "해당 부위의 버튼을 누르면" " 해당 부위의 Description"이 "렌더된다." [리덕스]를 이용하여, 리덕스를 이용하여, State 를 만들어서, "Choose Part 컴포넌트"에서, 버튼을 누르면, "HowToWorkOut Page" 에서, 받아, 다른 것을 렌더하는 형식으로 하자 [ Descripion 이 바뀔때는, React-Transition-Group 을 사용하여] 마..
2022. 12. 28.
10. 유저별 랜덤 선택기 구현하기
유저별 랜덤 선택기는, 기존의 랜덤 선택기와는 달리, 데이터 페치를 해온 FavoritesArray Data 안에 있는 food id 들을 사용하여, for 과 find 를 이용하여, 다시, 모든 Data가 들어있는 FoodData 형태로 바꾸어, 데이터를 사용하는 코드가 필요했습니다. 또한, 로그인이 반드시 되어있어야 하므로, useEffect 를 사용하여, status 가 바뀔때에, 변환을 하게 만들었습니다. useSession 의 session Data가 필요한데, useSession 의 생명주기로 인하여, useEffect 없이 전역코드에 session 을 사용했다가는, 참조오류가 나오게 됩니다. 1. 음식들 ID 로, DATA 형태의 객체 배열로 변환하기 useEffect(() => { if (..
2022. 12. 3.
9. 개인 유저 별 찜 기능을 구현해보자
찜 기능은 페이지의 핵심 기능으로, 주변에 있거나, 먹고 싶은 음식들을 찜 해서, 칼로리와, 영양성분을 파악하고, 고민되는 날, 랜덤선택기로 음식 하나를 랜덤으로 선택 할 수 있습니다. 음식 아이디를 동적 페이지로 생성했습니다. 계획 상으로, 음식의 디테일 페이지 내에 찜 기능을 구현하고, 어떤 음식을 보여줄 것인지, 어떤 음식을 찜 할 것인지, 데이터를 보내야 하기 때문에, 동적 페이지를 만들어, 각 유저별로, 음식의 ID 값을 DB 에 저장합니다. 1. 우선 빠른 UX 를 위해, getStaticProps 로 사전 데이터 페칭을 진행하고 데이터를 페이지 내에 가져옵니다. 2. 만약 로그인을 했다면, 로그인 정보에서, Favorites Array 데이터가 있는지 파악합니다. 3. 로그인을 했고, Fav..
2022. 12. 3.