들여쓰기 4칸 은 별로다. → 2칸으로, 커뮤니티 표준.. ***
input 에 “”쓰는 것.. 즉 리액트 내에서 절대 DOM을 직접 관리하면 안된다.
- 이유는 좀 더 찾아보기
ref는 UI작업할때만 쓰고 데이터를 관리하는 코드에서는 쓰면 안된다.
이메일 정규식에 마지막에 2,3이 나오면 문제가 생긴다.
한국어로 검색하면 구린 자료 옛날 자료가 나오기 때문에 구글 + 영어로 검색하기
이메일은 정규식 표준이 있다. → w3c***
이벤트 핸들러에 이벤트 객체는 e.currentTarget을 이용하자.
eventTarget의 경우 이벤트 발생 요소의 자식요소까지 모두 나오게 된다.
리액트는 비동기적으로 작동하기 때문에 preState를 꼭 쓰자
id를 쓰는 경우 → CSS 선택자로 쓰면 안된다.
리액트에서 이미지를 가져오는 방법(강의 한번 더 보기)
컴포넌트 형식으로 불러와서 class를 입혀 이미지의 색을 마음대로 지정할 수 있다.
다크모드 같이 색을 변경시켜야하는 경우 svg 컴포넌트를 이용해서 쉽게 관리할 수 있다.
// src/assets/svgs/index.tsx
export { ReactComponent as BellIcon } from './ic-bell.svg'
export { ReactComponent as CalendarIcon } from './ic-calendar.svg'
export { ReactComponent as CalendarRangeIcon } from './ic-calendar-range.svg'
export { ReactComponent as CancelAlertIcon } from './ic-cancel-alert.svg'
transition 는 0.2 정도 되면 빠르게 좋게 보일 수 있다.
moveActiveBox는 모바일 대응에 따라 바꿔줘야한다.
input 창 같은 경우 브라우저의 input 기본 기능을 꺼버릴 수 있는 기능이 있다.
useClickOutSide라는 custom hook 사용하기 좋다.
react-use 라이브러리***
코드는 확장성 있게 짤 것
innerText를 사용하면 안된다.
preventDefault는 기본 기능이 있는 html의 기본기능을 죽일 때만 쓰기
코드는 간지가 생명
변하지 않는 상수나 리렌더링 되지 않을 함수들은 컴포넌트 밖에 위치시키면 더 좋다.
Slider에서 linear-gradient를 이용해서 바가 차는 걸 설정해주기??
쿼리셀렉터 쓰지말기
컴포넌트 대문자로 짜고(파스칼 케이스)
유틸리티, 변수는 캐멀케이스
토글은 라디오를 이용해서 간단하게 구현할 수 있다.
이메일의 경우 pattern과 validity를 이용해서 참신하게 구현할 수 있다.
data attribute를 이용해서 코드를 개선할 수 있다.