1. 프로그래머스 JS
Lv0. 배열뒤집기
num_list[i] = num_list[arrLength - f]
가 서로 같은 수 일 때 이후로는 순서가 바뀌지 않음..for문 이용
const reverse = []; for(let i=arr.length-1; i >= 0; i--) { reverse.push(arr[i]); }
reverse()
[...arr].reverse()
다른 풀이들을 다 보니 접근은 잘 한 것 같은데 내 방식이 좀 복잡했음!! 프로그래머스 매일 풀어야지..
2. React, Redux, Toolkit, Typescript
- Udemy react 강의
포털
{ReactDOM.createPortal()}
은 jsx를 사용하는 곳 어디에서든 쓸 수 있다.useRef()
setEnteredName("")
대신name_input.current.value = ""
localStorage를 활용한 로그인, 로그아웃 관리
localStorage.setItem("isLoggedIn", "1");
localStorage.removeItem("isLoggedIn");
useEffect로 이메일, 비밀번호 유효성 검사를 한 번에 하기
useEffect 훅은 sideEffect를 처리하기 위해 존재
useEffect 안에서 setTimeout과 cleanUp 함수
Reducer 함수, react context 사용 전에 redux 강의로 넘어감
리덕스는 리액트 뿐만 아니라 다른 언어에서도 사용할 수 있다.
npm init -y
npm install redux
리액트 앱에서 redux 쓰기
index.js
에서 provider로 store를 제공하는 이유class 기반 component에서는 hook을 사용하지 못하기 때문에 {counter}
를 이용해야 한다.
npm install react-redux
npm install @reduxjs/toolkit
둘 모두 설치해줘야 함
리덕스를 사용할 때는 기존 값을 절대 변경하지 않고 복사해와서 사용해야 하기 때문에 counter, showCounter를 재정의해줘야 했지만
firebase로 data 저장하기
fetch()
npx tsc with-typescript.ts
3. Typescript Quiz
enum
타입 지정 오류
let v1: {name:string};
으로 타입을 정의해주니 오류 사라짐!함수의 인자, value의 타입이 number지만 return이 if문에 따라 number | string
일 때
number | string
이어야 한다.