디자인 시안을 분석해 최대한 비슷하게 UI 스타일링 해야 합니다. 디자이너는 시안과 결과물이 다를 경우 매우 민감하게 반응합니다. 실제로 디자이너와 개발자 사이에 발생하는 갈등은 이러한 경우가 대부분입니다. 오죽 답답하면 디자이너가 개발자 대신 코딩하겠다며 배우러 올까요? 😩
그러니 제공 된 디자인 시안과 최대한 비슷하게 컴포넌트 스타일을 작성해보길 바랍니다.
DOM API ➕ ES 6+
HTML 하드 코딩 대신, DOM 표준 API를 사용해 동적으로 업로드 버튼 컴포넌트를 브라우저 화면에 렌더링 해봅니다.
// ------------------------------------------------------// 버튼 요소 노드 생성constuploadPendingButton=DOM.createElement(// 요소 이름 (string)'button',// 요소 속성 (object) { type:'button', className:'button button__upload button--pending',onClick() { console.log('파일을 업로드 중입니다...') }, },// 요소의 자식들 (children[])'업로드 중',// ...)// ------------------------------------------------------// DOM 렌더링DOM.render(// 프로그래밍 방식으로 생성 된 요소 노드 uploadPendingButton,// HTML 문서에 하드 코딩 된 실제 DOM 요소 노드document.getElementById('root'))
라이브 예제
클래스 프로그래밍
UploadButton 클래스(class)를 작성해 다음과 같은 API로 작동되도록 구현해봅니다.
import DOM from'./modules/DOM'import UploadButton from'./components/UploadButton'// -----------------------------------------------------------------constuploadButton=newUploadButton({ status:'pending'})// -----------------------------------------------------------------functionrender() {DOM.render(uploadButton.render(),document.getElementById('root'))}
이전 실습 지연으로 수업 시간이 부족할 경우, 클래스로 만드는 학습은 과제로 작성한 후 제출합니다.