230118 도전! 골든벨

이셀·2023년 1월 18일
0

리덕스의 필요성, 없는 경우 생길 수 있는 문제점

리덕스는 상태관리 라이브러리로 상태관리(업데이트, 상호작용 등)를 효율적으로 해주기 때문에 필요하다

만약에 없다면 state를 효과적으로 관리하기 어렵고 불필요한 렌더링들이 발생할 가능성이 크며 오류가 생겼을 경우 찾기가 어렵다

관리 측면으로 필요하다. 리덕스는 상태(state)관리도구로 props, state를 좀더 잘 관리하게 만들어주며 없다면 prop drilling이 발생한다. = 이런 문제로 인하여 페이스북에서 만든 redux!

Redux에서 현재 상태의 state를 읽어오는 방법(훅)은 무엇인가요? 사용방법은 어떻게 되나요? 화살표 함수와 일반 함수로 각각 구현해주세요.

useSelector

useSelector를 사용함.
const target = useSeletor((state)=> state.target)
function target({
useSelector()
})

화살표함수는 return을 생략할 수 있는데, 습관적으로 사용하다보니 일반 함수 구현하는 것도 필요하다.

const users = useSelector(state ⇒

return state.users) ===⇒ 콜백함수

const users = useSelector(state ⇒ {

state.users

}) ===⇒ return 생략

const user1 = useSelector(function(satae){

return state.users

});

Redux에서 상태(state)를 변경하는 방법은 무엇인가요?

useDispatch를 통해 action을 담아 reducer에 보냅니다. 그리고 action type에 따라 action payload을 활용해 상태를 변경하는 로직을 수행합니다.

redux thunk가 무엇인지 설명해주시고, 단점으로 주요하게 거론되는 점이 있다면 말씀해주세요.

redux thunk는 비동기 작업을 할 때 쓰는 미들웨어의 종류로 보일러 플레이트 설정(꼭 써야하는 코드의 수)이 길고 귀찮다는 단점이 있다(유지보수에 많은 손이 간다).

리액트의 useCallback, useEffect등을 사용할 때 의존성 배열을 받게 됩니다. 이 배열의 역할은 무엇인가요?

배열에 변수명이 들어가고 해당 변수에 변화가 생기는것을 감지해 useCallback, useEffect 와 같은 함수 블록 안에서 로직을 처리하고 리렌더링이 진행됩니다

map 함수를 사용하여 컴포넌트를 그릴 때, key props를 내리는 이유가 뭘까요?

key중점적으로 구분하기 때문에 임의로 할당되기 때문에 key props를 내리는 것. 그래서 버츄얼 돔이 인식할 수 있도록한다.

profile
프론트엔드 개발자! 현재 SQL 뽀개는중;)

0개의 댓글