codestates / codestates/Bobpago

[๐ŸšจErr Handling] ๋กœ๋”ฉ ๊ตฌ๊ฐ„์—์„œ ํ•„์š”ํ•œ ์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง

Open
#118 0 comments 0 reactions 1 assignee Claimed by @VVSOGI View on GitHub
error 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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.