codestates / codestates/Bobpago
[๐จErr Handling] ๋ก๋ฉ ๊ตฌ๊ฐ์์ ํ์ํ ์กฐ๊ฑด๋ถ ๋ ๋๋ง
- Dominant language
- TypeScript
- Stars
- 5
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Description
> ํด๊ฒฐ๋ ์๋ฌ๋ผ๋ฉด ๋ผ๋ฒจ์ 'Complete' ๋ฅผ ๋ฌ์์ฃผ์ธ์.
> ๋ฏธํด๊ฒฐ๋ ์๋ฌ๋ผ๋ฉด ๋ผ๋ฒจ์ 'In progress' ๋ก ๋ณ๊ฒฝํด์ฃผ์ธ์.
### ์ด๋ค ์๋ฌ์ธ๊ฐ์?
- ํ์ด์ง ๋ ๋๋ง์ด ์ค๋นํ ๋์๋ณด๋ค ๋นจ๋ฆฌ๋ฌ์ ๊ฒฝ์ฐ์ ์ ๋์ ๊ฑธ ์ ์๋ ๋ก์ง์ ์์ฑํด์ผ ํ๋๋ฐ useEffect๋ฅผ ์ด์ฉํ๋ ค๋ฉด ์ด์ง ๋ณต์กํ๋ค.
- ์ฐ๋ฆฌ๊ฐ ๋น๋๊ธฐ๋ก async await์ ๋์์ํค๋ ๊ฒ ์ฒ๋ผ useEffect๋ฅผ ์ฐ๊ฒฐ์์ผ์ ํด๊ฒฐํ๋ค.
- ๊ฑฐ๊ธฐ์ ๋๋ถ์ด์ useEffect๊ฐ ์ฒ์์ ๋น ๋ฅด๊ฒ ๋์ํ๋ฉด์ ๋ชจ๋ ๊ฒ๋ค์ ๋ ๋๋ง ํ๋ ค๊ณ ํ๋๋ฐ ๊ทธ๋ฐ ๊ฒฝ์ฐ๋ฅผ ๋ง๊ธฐ ์ํด์
- useEffect์์์ ์กฐ๊ฑด์ ์ค์ผ๋ก์จ ์กฐ๊ฑด๋ถ ๋ ๋๋ง์ผ๋ก ์๋ฌ๋ฅผ ํธ๋ค๋ง ํ๋ค.
### ์๋ฌ ๋ฉ์์ง
```bash
$ ํฐ๋ฏธ๋์ ์๋ฌ ์ฝ๋๋ฅผ ์ฌ๊ธฐ ๋ฃ์ด์ฃผ์ธ์.
```
### ์๋ฌ ํธ๋ค๋ง ๋ฐฉ๋ฒ
- ํธ๋ค๋ง ๋ฐฉ๋ฒ์ ๋ํด์ ๊ฐ๋จํ๊ฒ ๊ธฐ๋กํด๋ณด์ธ์.
```js
// ์ฝ๋๊ฐ ๋ค์ด๊ฐ๋ ์ข์์!
useEffect(() => {
handlePageData();
}, []);
useEffect(() => {
}, [handlePageData]);
useEffect(() => {
if (recipeData !== null) {
gsap.registerPlugin(ScrollToPlugin, ScrollTrigger);
setLoading(false);
return () => {};
}
}, [recipeData]);
useEffect(() => {
if (loading === false) {
dispatch({ type: SET_DETAIL_DATA, payload: recipeData });
setStart(true);
const totalLength = recipeData.recipe.descriptions.length;
const moveRatio = 100 / totalLength;
const goToSection = (i: number, anim?: any) => {
gsap.to(window, {
scrollTo: { y: i * window.innerHeight, autoKill: false },
duration: 0.5,
});
const image = document.body.querySelector(
".image"
) as HTMLParagraphElement;
const rightScroll = document.body.querySelector(
".rightScroll"
) as HTMLParagraphElement;
const topBox = document.body.querySelector(
".topbox"
) as HTMLParagraphElement;
const leftBox = document.body.querySelector(
".leftbox"
) as HTMLParagraphElement;
const rightBox = document.body.querySelector(
".rightbox"
) as HTMLParagraphElement;
const main = document.body.querySelector(
".main"
) as HTMLParagraphElement;
const sub = document.body.querySelector(".sub") as HTMLParagraphElement;
const totalMap = document.body.querySelectorAll(
".totalMap"
) as NodeListOf;
[...totalMap].map((item: any) => {
if ([...item.classList].includes(String(i))) {
item.classList.add("mapActive");
} else {
item.classList.remove("mapActive");
}
});
if (
rightScroll &&
topBox &&
leftBox &&
rightBox &&
image &&
main &&
sub
) {
rightScroll.style.transform = `translateY(${i * -262}px)`;
topBox.style.transform = `translateY(${i * -100}%)`;
leftBox.style.transform = `translateX(${i * -moveRatio}%)`;
rightBox.style.transform = `translateX(${
moveRatio - 100 - moveRatio * -i
}%)`;
image.style.transform = `translateY(${i * -100}%)`;
main.style.transform = `translateY(${i * -100}%)`;
sub.style.transform = `translateY(${i * -100}%)`;
}
if (anim) {
anim.restart();
}
};
```
### ์๋ฌ ํธ๋ค๋ง์ ์ํด ์ฐธ๊ณ ํ ๋ ํผ๋ฐ์ค ๋งํฌ
[๋งํฌ]()
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.