바닐라 JS만을 이용해 📄노션을 클로닝📄합니다.
기본적인 레이아웃은 노션과 같으며, 스타일링, 컬러값 등은 원하는대로 커스텀합니다.
해당 프로젝트는 크게 문서 목록과 편집기 두가지 부분으로 구성되어있다.
+
버튼을 클릭하면 하위 문서로 새 문서를 생성하고 편집화면에 보여준다.데브코스 첫번째 프로젝트인 📄노션을 클로닝 프로젝트📄 이다.
JS만을 이용하여, Fetch API를 이용해 API 서버의 데이터를 주고 받으면서, History API를 이용해 SPA 형태로 만들면서 노션과 비슷한 편집기를 구현하면서 JS의 기본기를 다진다.
설계
문서 목록
+
버튼을 클릭하면 하위 문서로 새 문서를 생성하고 편집화면에 보여준다.편집기
- API를 불러오는 것 부터 어려움을 겪었으나, 여러가지 고민과 시도끝에 API.js로 모듈을 따로 생성하여 이제는 자신감있게 원하는 데이터를 불러오고 내보낼 수 있게 되었다.
- History API를 이용해 SPA 형태로 구현하면서, 사용자의 편의성을 높이는데 중요함을 깨달았다.
- 문서들을
<ul> <li>
태그로 묶어서 표현을 하고, 하위 문서 추가시 재귀함수를 이용해<li>
태그안에 또<ul>
태그안에 추가하는 방식으로 구현하였다. 재귀를 이용했다는 것에 뿌듯하였다.
- 첫날이라 그런지 집중이 잘 되었고 무엇인가 만드는 재미가 쏠쏠했다.🔥
- 문서삭제버튼을 누르면, 태그안의 태그를 넣다보니 하위문서 삭제시 접근이 잘 되지 않았다.(하위 폴더 삭제시 상위폴더도 삭제)
🔧임시방편
- 삭제버튼
-
을 만들어 놓기만 하였고, 계속해서 방법을 생각해 보았다.