이번 과제는 팀과제로 검색어를 추천 해주는 기능을 만들고 모양은 기존의 홈페이지를 클론코딩하는 식으로 진행됩니다. 요구사항에 Redux를 사용하라는 내용이 있었기에 우선 Redux(리덕스)에 대해서 알아보겠습니다.
우선 리덕스를 사용하는 이유에는 props문법을 쓰기가 귀찮을때와 state변경 관리를 할때 사용합니다.
보통의 리액트 스타일의 웹개발은 컴포넌트 단위로 나누어 하나의 페이지를 조립하는 식으로 만들게 되는데 이때 사용하는 데이터들을 연결해주기 위해서 상위에서 아래의 컴포넌트에 props를 이용하여 데이터 값을 주고 useState를 이용하여 변경된 값을 전달하는 식으로 개발이 됩니다.
위의 컴포넌트가 매우많이 중첩이 되어있고 가장 상위의 데이터를 가장 하위의 컴포넌트에 전달하기 위해서는 그 중간에 있는 모든 컴포넌트들에게 props를 통해서 전달해 주어야 하는데 이는 굉장히 비효율적인 방식입니다.
이때 사용하는 라이브러리가 리덕스입니다.
하나의 파일을 따로 만들어 그곳에 변수를 저장한 후에 다른 컴포넌트들에서 필요할때마나 따로 만들어둔 변수 파일에서 끌어다가 쓰면 위의 귀찮고 복잡해질수 있는 props를 쓰지 않고 가져다가 쓸수 있게 됩니다.
상태를 관리하는곳에 사용하게 된다면 변경되는 부분은 검색어 부분과 키보드의 화살표를 통해서 선택하는 부분을 사용할수 있을까? 라는 생각이 든다.