학습 예제 출처: 수코딩
= 아키텍쳐 설계
일단 코린이라 아직까지 깊게는 아키텍쳐 설계를 안해도되지만,
일단 리액트는 이렇게 폴더 구조를 잡는다
🤙🏼 Basic is the best 🤙🏼
node_modules / package-lock.json / env 넣기
CSS-in-JS
: 기존 CSS와는 달리 스타일을 JS코드에서 작성해서, 스타일충돌 방지
1.
npm i styled-components
설치
2. import 필수로 해주기
import styled from "styled-components";
3. 작성하고 return에서 불러오면 끝!
const Button = styled.button`
font-size: 30px;
color: #16a886;
&:focus {
color: violet;
}
}
`;
export default function App() {
return (
<>
<Button>버튼</Button>
</>
);
}
: 부트스트랩 같은 css인데, 러닝커브가 좀 있다 (간단하게라도 공부해보자!)
[공식문서]
https://tailwindcss.com/
프레임워크 가이드에 있는 vite 클릭해서 install 해보자🛠️
아토믹디자인패턴
: 개발적인 요소를 최소한의 단위로 쪼개놓는 아키텍쳐 방법론
ex) Tailwind Css
규칙에 대해서 알아보기
1. 조건 병합 twMerge/twJoin
1-1. twMerge
: 중복제거
const isError = true;```
```js33
<h1
className={twMerge(
"text-red-200 text-3l",
isError && "text-blue-400"
)}
>
하이
</h1>
1-2. twJoin
: 중복 허용
위에서 twMerge
-> twJoin
으로 변경해주면 끝!
2.
tailwindcss-forms
설치
css의 초기화 : 어떤 브라우저에서도 똑같이 보이도록 리셋 ,,,해버리니까 기본 디자인은 적용해주도록 덮어씌우기
3. 프로젝트 만들 때 꿀팁
[= react + tailwind + tailwind-merge ]
나만의 셋팅을 해놓고 github에 올리고나서 클론해서 쓰기
React & Tailwind CSS Starter Pack
or
git clone https://github.com/kisudevel/react-tailwind-stater.git .
구글폰트 클릭
네트워크를 통해서 로드하는 방식임
붙여넣으면 저 클래스 이름
으로 원하는 폰트 지정 가능
전역적
으로 css를 적용하겠다는 뜻이므로, import를 index.css에 해준다
적용완료
📌 Note Code
font-weight
타사이트에서 폰트 다운
받고싶을 때: DFS 알고리즘 방식으로 컴퍼넌트를 생성 & 렌더링한다.
컴퍼넌트란 ?
: 단순히
.js
/jsx
/tsx
파일만 만든다고 컴퍼넌트인게 아니라 return안에서그 파일을 반환시켜야지 컴퍼넌트
가 되는거다!
📌 Note Code
DFS 알고리즘
1- 인라인(inline) 방식
<button onClick={() => { confirm("확인"); }} 클릭 </button> ```
2- 연결만 해도 되면
⭕<button onClick={onClickHandler}>클릭</button>
❌ -> { onClickHandler ( ) } 이거 금지!
<button onClick={onClickHandler()}>클릭</button>
3- 매개변수가 있어서 전달해야하면,
<button onClick={() => onClickHandler()}>클릭</button>
# 순서
1) 먼저 2번 onChange={ onChangeHandler } 로 맞추기
2) 3번 타입으로 변경해주기 onChange={(e) => onChangeHandler(e, 10)}
3) 마우스 가져다대서 타입추론으로 event의 타입 알아보기
4) 함수를 담은 변수에 타입 정의해주기
const onChangeHandler = (e: React.ChangeEvent<HTMLInputElement>,,num:number) => {
console.log(e.target.value);
}
<input type="text" onChange={(e) => onChangeHandler(e, 10)} />
num은 따로임!
📌 Note Code
<button onClick={}>
버튼
</button>
특정문서객체에 addEventListenr
를 사용하여 이벤트 타입과 핸들러를 연결
하는 과정
1) document
= 문서객체 = DOM
2) addEventListenr
= 이벤트 등록 메서드
3) "click"
= 이벤트 타입
4) () => {}
= 이벤트 핸들러
🖐🏻잠깐! 이벤트 용어 정리
1) onMouseEnter
= 마우스 객체에 가져다 대는거
2) onMouseLeave
= 마우스 객체에서 떼는 것
3) onFocus
= 포커스 받았을 때
4) onBlur
= 포커스 해지됐을 때
5) onKeyup
= 키를 눌렀다가 땠을 때 이벤트
이벤트 객체 (e) : 이벤트 발생시 넘겨주는 매개변수
이벤트 타입 : 마우스 가져다대면 타입추론
으로 인해 알려줌!!!!! 그거 가져다 쓰면 됨
1) props란?
: 컴퍼넌트의 값
데이터 출력할 땐 props.item
이런식으로 써주면 됨
└> 💡잊지말자!
<ListItem title="소개" id={1} />
나는 id="1"을 썼는데 자꾸 에러가 나서 number 형식에 안맞는다고 해서 뭐지? 했는데,,,
문자열이 ""
이거고 , 숫자는
jsx방식으론 {}
이렇게 넘긴다고 한다!! 잊지말자!!
** 부족했던 부분 (시행착오/어려운 점)
배운거 복습이 필요해,,,,시간 쪼개서 복습하자
JS 공부 병행
——————————————————————————
본 후기는 본 후기는 [유데미x스나이퍼팩토리] 프로젝트 캠프 : React 2기 과정(B-log) 리뷰로 작성 되었습니다.