You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
셀렉박스와 서치박스를 프론트로 구현하느냐, 백엔드로 구현하느냐에 많은 고민을 했다.
지금 생각하면 전체 게시물을 받아온 다음, 리덕스 store에 저장을 해두고
프론트에서 select value 나 search value 와 일치하는 리스트를 필터링하는 게 더 낫지 않나 싶다.
<RowclassName="g-2"style={{marginBottom:50}}><Colmd><FloatingLabelcontrolId="floatingInputGrid"label="Search"><Form.Controltype="text"placeholder="검색하세요"value={searchValue}onChange={onChangeSearch}/></FloatingLabel></Col><Colmd><FloatingLabelcontrolId="floatingSelectGrid"label="Select"><Form.Selectaria-label="Select"onChange={onChangeSelect}value={selectValue}><optionvalue="latestOrder">최신순</option><optionvalue="viewOrder">조회순</option><optionvalue="heartOrder">인기순</option><optionvalue="whatIWrote"disabled={!signin}>내가 쓴 글</option><optionvalue="whatILike"disabled={!signin}>내가 좋아한 글</option></Form.Select></FloatingLabel></Col></Row>
2. getForums
유저가 셀렉박스, 서치박스를 사용할 때마다 useEffect로 getForums 요청을 보낸다.
😎 결과
2022-08-31.7.38.16.mov
💭 내 생각
셀렉박스와 서치박스를 프론트로 구현하느냐, 백엔드로 구현하느냐에 많은 고민을 했다.
지금 생각하면 전체 게시물을 받아온 다음, 리덕스 store에 저장을 해두고
프론트에서 select value 나 search value 와 일치하는 리스트를 필터링하는 게 더 낫지 않나 싶다.
🔑 작업과정
프론트 - formList.tsx
1. 서치박스 및 셀렉박스 생성
2. getForums
유저가 셀렉박스, 서치박스를 사용할 때마다 useEffect로 getForums 요청을 보낸다.
백엔드
3. routes > forums.js
프론트에서 getForums 요청을 보내면 백엔드는 getForums > getNewForums 순으로 동작하여 응답한다.
4. controller > forums.js
getForums - 유저정보와 하트를 조인하여 전체 게시물을 get
getNewForums - 셀렉박스 value 또는 서치박스 value 가 있을 경우, value 값과 일치하는 게시물만 걸러낸다.