지금까지 배웠던 리액트 기초 개념을 적용하고 응용하여 훨씬 React
스러운 미니 프로젝트 Monster 과제!
useEffect()
훅을 통해 data fetching 등 컴포넌트 렌더링 이후 필요한 다양한 side effect(부수효과)를 일으킬 수 있다.fetch()
함수를 사용해 API 호출을 할 수 있다.Array.map()
함수를 통해 component를 재활용할 수 있다.props
를 사용해 단방향(부모 컴포넌트 > 자식 컴포넌트)으로 데이터를 전달할 수 있다.Array.filter()
를 통한 검색기능을 구현할 수 있다. (Optional!)Monster 과제를 통해서 foundation 기간동안 배웠던 것들을 한번씩 복습해볼 수 있어서 좋았습니다.또한 추가 과제를 통해서 filter 메소드를 쓰는 방법을 알게 되었습니다. filter 메소드는 처음 써봐서 공식문서를 참고해도 이해가 어려웠는데,동기분이 해당 메소드를 익힐 때 본인이 직접 예제를 만들어 이해했던 방식을 공유해 준 덕분에 과제를 수월하게 해결할 수 있었습니다.도움을 받는 데에 그치지 않고, 저 역시도 남들에게 도움을 줄 수 있을 만큼 더 노력 해야겠다고 다짐하였습니다.
삼항 연산자를 써서 필터링 로직을 구현할 수 있다는 동기분의 말씀에 따라 연습해 보았습니다.머릿속으로는 해당 로직이 이해됐지만, 생각하는 대로 코드를 작성하는 데에 어려움을 느꼈습니다. 동기들과 같이 해당 로직에 대해 같이 고민해보고 여러 방법을 적용해보며 기능 구현하는데 성공할 수 있었습니다.
삼항연산자를 통해 구현할 때 의존성 배열을 빈배열 형태로 적어두었더니 input 값을 아무리 적어도 화면이 바뀌지 않았습니다.console.log로 확인해봤더니 콘솔창에서는 필터링 기능은 제대로 구현되고 있었습니다. 다시 useEffect의 기능을 생각해보니 의존성 배열을 빈배열로 두면 페이지가 처음 렌더될 때 딱 한번 렌더되고 변경에 따른 재렌더는 이루어지지 않는다는 것이 떠올랐습니다.의존성 배열에 input 창에 값이 변경될 때의 state 값을 넣어 해당 오류를 해결할 수 있었습니다.