-
Notifications
You must be signed in to change notification settings - Fork 77
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
[15팀 정채은] [Chapter 1-1] 프레임워크 없이 SPA 만들기 #7
base: main
Are you sure you want to change the base?
Conversation
src/main.js
Outdated
import LoginPage from "./pages/loginPage"; | ||
import MainPage from "./pages/mainPage"; | ||
|
||
const pagenation = () => { |
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.
테스트 코드 보시면 goTo라는 함수가 "popstate" 커스텀 이벤트를 디스패치 하고 있는게 보이실 거에요:) 그 이벤트 핸들러를 통해서 동적으로 문서를 수정해주셔야 할거 같습니다!
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.
popstate 이벤트에 대해서는
https://developer.mozilla.org/ko/docs/Web/API/Window/popstate_event
이 문서 참고해보시면 좋을거 같아요:)
e.preventDefault(); | ||
localStorage.removeItem("user"); | ||
alert("로그아웃 되었습니다."); | ||
window.location.href = "/login"; |
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.
요기랑 nav에서 href로 이동하는 부분도 작성하신 navigateTo 함수를 사용하는 게 좋을 것 같아요..!
window.location.href를 건드려서 이동하게 되면 새로고침이 일어나서 SPA 방식과는 맞지 않게 될 듯합니당
과제 체크포인트
기본과제
1) 라우팅 구현:
2) 사용자 관리 기능:
3) 프로필 페이지 구현:
4) 컴포넌트 기반 구조 설계:
5) 상태 관리 초기 구현:
6) 이벤트 처리 및 DOM 조작:
7) 기본적인 에러 처리:
심화과제
1) 해시 라우터 구현
2) 라우트 가드 구현
3) 이벤트 위임
과제 셀프회고
그동안은 코드는 고치고 짜 봤지만 프레임워크를 쓰지 않고 웹 페이지를 만드는 것에 대해서는 생각해본 적이 없었다.
document.location.href 를 조작하는 원시적인 방식 이외에도 기본 제공되는 방식을 사용해서
프레임워크 내부의 구현 방식을 직접 해볼 수 있다는 점이 신선했다.
코테와 기존 코드 유지보수에서 벗어나서 본질을 생각해 볼 수 있는 과제였다.
web과 자바스크립트의 기본적인 지식이 부족하다는 것을 느꼈다.
기술적 성장
코드 품질
이것 보다 깔끔하고 보기 쉬운 레이아웃(ex. html을 단순 String이 아닌 html 형식으로 표시하거나...)으로 변경해보았다면 좋았을 것 같다.
학습 효과 분석
후에 시니어가 되면 세팅을 하면서 써볼 수 있지 않을까 생각한다.
과제 피드백
리뷰 받고 싶은 내용
재사용이 어려워진다고 느껴졌습니다. A페이지와 B페이지에서 공용으로 사용하는 컴포넌트(C)가 있다면 A 페이지와 B 페이지에서 사용되는 각각의 메서드들을 다른 회사에서는 어떻게 정리하는 편인지?