첫 시작인 월요일이다! 오늘도 회고조 조원분 덕에 수월하게 복습할 수 있어서 감사했다 :3
1.1. 조건부 렌더링
- JS 객체 합성의 함정에 유의하기 (스타일 확장: className, style, restProps)
- 클래스, 스타일, 그리고 남은 객체를 합성하는 방법에 대하여 공부했다.
- skip to Content(Links): focusable 상태일 때 볼 수 있다. (평소에는 눈에 보이지 않는다.)
1.2. className
${classes.demo} ${className}
모듈에서 불러온 스타일 클래스와 클래스를 합칠 때 사용한다. .trim()은 앞뒤 공백을 자를 때 사용한다. 특히 합칠 때 클래스 사이의 공백을 잊지 말자.
1.3. style
- 스타일을 합칠 때에는 언제나 default styles를 먼저 쓰고, 그 이후에 custom styles를 작성한다. 컴포넌트 개발자가 설정한 기본 스타일 객체 이후에 컴포넌트 사용자가 설정한 스타일 객체를 작성해야 한다.
- 위 이미지처럼
filter: blur(4px)
이 두 스타일 둘다 겹칠 경우 사용자가 설정한 스타일 객체가 뒤에서 나와야 무사히 상속되기 때문에 뒤에 써주어야 한다.
- 순서를 꼭 기억하자!
1.4. restProps
- 단어 그대로 남은 객체들을 가져오기 위해서 사용한다. 가져온 classNames, styles, 그리고 남은 객체들을 선언하기 위해서 가져온다.
2.1. StoryBook
스토리북
3.1. 이벤트 핸들링
3.2. HTML VS JSX
- HTML 속성 이름이 모두 소문자 (onclick) vs. JSX는 on* 시작하는 camelCase 포멧 (onClick)
- HTML 속성 값은 문자(="print()") vs. JSX는 이벤트 prop 값은 이벤트 핸들러(함수) 참조(={print})
- 이벤트 전파 중지(stop propagation: e.stopPropagation())
- 이벤트 전파 중지로 두 버튼 중 하나를 클릭하더라도 div에 연결된 이벤트 핸들러가 실행되지 않는다. 직접 div 요소를 클릭했을 때만 연결된 이벤트 핸들러가 실행된다.
3.3. 이벤트 핸들러에 인수 지정
- (JS, Closure: (payload) => (e) => {})
4.1. 상태 관리
- 상태란: 시간에 따라 변하는 값
- 재조정이란? 무언가 변경되었는지 확인하고 다시 그림
- 다음 시간에 더 자세히