s e o p p o r t . l o g

Today I Learned

2024.01.23 TIL

Seo Ji Won 2024. 1. 23. 20:38

 

개인과제 Growth

컴포넌트 분리하기

task의 isDone 상태에 따라서 영역과 버튼 요소를 다르게 출력하는 코드이다.

// Layout 컴포넌트

<div className="tasks-wrap">
                    <div>
                        <div className="in-progress-tag">
                            <div className="in-progress-circle"></div>In progress
                        </div>
                        <Tasks tasks={tasks} setTasks={setTasks} isDone={false} />
                        {/* isDone이 false인것들만 filter돼서 렌더링 */}

                    </div>

                    <div>
                        <div className="done-tag">
                            <div className="done-circle"></div>Done
                        </div>
                        <Tasks tasks={tasks} setTasks={setTasks} isDone={true} />
                    </div>
                </div>
//Tasks 컴포넌트

return tasks.filter((item) => {
        return item.id !== 0 && item.isDone === isDone; //여기서 task들 필터링
    }).map((item) => {
        return (
            <div key={item.id} className="task-box">
                <div className="title-in-task-box">{item.title}</div>
                <hr className="hr2"></hr>
                <div className="memo-in-task-box">{item.memo}</div>
                <div className="btn-wrap">
                    {isDone ?
                        <>
                            <button
                                className="task-progress-btn"
                                onClick={() => returnButtonClickHandler(item.id)}
                            >되돌리기</button>
                            <button
                                className="task-progress-btn"
                                onClick={() => delButtonClickHandler(item.id)}
                            >삭제</button>
                        </>
                        : <>
                            <button
                                className="task-progress-btn"
                                onClick={() => doneButtonClickHandler(item.id)}
                            >완료</button>
                            <button
                                className="task-progress-btn"
                                onClick={() => delButtonClickHandler(item.id)}
                            >삭제</button>
                        </>
                    }
                </div>
            </div>
        )
    })

 

mapped 요소 키값 부여하는 방식 

1. 마지막 요소 id + 1

2. crypto.randomUUID() 함수 이용하기

3. UUID, shortid 라이브러리 사용하기

 

vercel 배포 참고페이지

https://daily-life-of-bigone.tistory.com/40

 

[Next.js] Vercel로 프론트 배포하기 (도메인 변경)

🟡 1. Vercel이란? vercel은 Next.js에서 공식적으로 제공하는 호스팅 사이트입니다. Next.js에 최적화되어 있다 보니 이번에 만든 포트폴리오 사이트를 vercel을 통해서 배포해보겠습니다. 🟡 2. 배포하

daily-life-of-bigone.tistory.com

 

'Today I Learned' 카테고리의 다른 글

2024.01.25 TIL  (1) 2024.01.25
2024.01.24 TIL  (1) 2024.01.24
2024.01.22 TIL  (0) 2024.01.22
2024.01.19 TIL  (0) 2024.01.19
2024.01.18 TIL  (0) 2024.01.18