엘리스 SW 엔지니어 트랙 58일차
실시간 강의날
Redux로 CRUD
setState 배운지도 얼마 안된 참이라
Redux가 더욱 편하게 해준다고 이해가 쉽게 잘 안되지만
props로 넘겨주는 일을 하고 있지 않은 것이 좋네
Redux는 어플리케이션의 심장 같은 녀석이라고 한다
좋은 엔진을 얻었다고 생각하라고도 하신다
Redux 없이 만든다면
props drilling 을 해야할 수도 있다
React에서 Redux 사용 방법
<Provider>
이걸로 감싸줘야 이 안에서 redux를 사용할 수 있다
<Provider store={store}>
<div>
<h1>Root</h1>
</div>
</Provider>
읽을 때
useSelector 훅
useSelector는 함수를 매개변수로 받는다
function selectorHandler(state) {
return state.number;
}
const number = useSelector(selectorHandler);
상태 변경시
useDispatch 훅
const dispatch = useDispatch();
return (
<div>
<h5>Right4</h5>
<input
type="button"
value="+"
onClick={() => {
dispatch({ type: "INCREASE" });
}}
></input>
</div>
);
react-redux 사용하면 subscribe가 필요없다
알아서 렌더링 되네?
테스트
디버깅이 중요하다
코딩 과정에서 테스트
Test Driven Development: TDD
테스트 중심 개발
JEST라는 걸로 테스트 해본다
describe
테스트 돌리면 describe에 적히 내용이 분류 이름이 된다
test
test(이름, 테스트 내용)
expect
테스트할 변수나 값
toBe
앞에 있는 변수나 값이 다음 값이라 같은지 확인
toEqual
배열 내부 값도 모두 확인
describe("테스트 묶음", () => {
test("1 + 1", () => {
expect(1).toBe(1)
})
test("1 != 2", () => {
expect(1).not.toBe(2)
})
})
beforeEach
매 테스트 수행 전에 먼저 수행되는 함수
beforeEach 예시
describe("테스트 묶음 2", () => {
beforeEach(() => {
temp = 1
})
test("temp * 5 = 5", () => {
temp *= 5
expect(temp).toBe(5)
})
test("temp = 1", () => {
expect(temp).toBe(1)
})
})
afterEach
매 테스트 후에 시행되는 함수
참고 링크
Recoil - 상태 관리
=> https://ui.toast.com/weekly-pick/ko_20200616
상태 관리 통계 npm 다운로드 수
=> https://www.npmtrends.com/recoil-vs-redux-vs-mobx
Git 3 way merge 생활코딩 강의
=> https://www.opentutorials.org/course/2708/15307
React test act 문서
=> https://reactjs.org/docs/testing-recipes.html#act
Notionpolios
=> https://www.notion.so/customers/personal-websites
=> https://anabelli.notion.site/Anabella-Spinelli-a42a2aaf9a434729b442165ff531d2d8
=> https://www.redgregory.com/notion/2021/7/15/17-clean-websites-built-with-notion-to-inspire
'Web Dev > ELICE' 카테고리의 다른 글
60 :: 테스팅, TDD, React 테스팅, jest (0) | 2022.01.15 |
---|---|
59 :: Redux, 구조, React와 Redux, 비동기 처리 (0) | 2022.01.14 |
57 :: 상태 관리, Flux Pattern, 상태 관리 Hooks (0) | 2022.01.12 |
56 :: Redux, 상태 관리, Context API (0) | 2022.01.11 |
55 :: Promise, async/await, 리액트 심화 (0) | 2022.01.08 |