인프런 커뮤니티 질문&답변
질문
작성
·
216
0
안녕하세요 제로초님!
게시판에서 검색기능까지는 구현을 했는데 버그를 발견하여 해결이 쉽지 않아서요……
현재 서버에서 받은 데이터를(검색을 해서받은 data) react에서 state로 관리중입니다.문제는
예를들어 검색창에 A 검색 후 두번째로 B를 검색 한 다음 뒤로가기 버튼을 클릭을 하면
A에 관련된 내용으로 랜더링이 되어야 정상이지만 검색해서 받은값은 한 state에서 관리하다 보니 B와 관련된
내용으로 랜더링이 됩니다.
이전 검색어값을 어디에 저장을 하면 될것은 같은데 한~두개정도는 가능할거 같은데 이전검색어가 많다면 복잡할 거 같아서요..혹시 좋은방법이 있는지 궁급합니다! 감사합니다.
답변 5
1
제로초(조현영)
지식공유자
onBackButtonEvent = () => { // 여기 } componentDidMount() { window.onpopstate = this.onBackButtonEvent; }
이렇게 하시면 됩니다.
0
0
0
0
제로초(조현영)
지식공유자
보통 한 번 서버로부터 받은 데이터는 메모리에 캐싱합니다. 캐싱은 직접 구현하셔도 되지만 swr같은 프론트 라이브러리를 쓰시는 게 좋습니다. state로 들고 있는 것은 그렇게 좋지 않습니다. 뒤로가기 같은 브라우저 동작이랑 충돌날 가능성이 높고, 직접 모든 것을 다 구현해야 하니까요.
swr같은 프론트 라이브러리로 프론트에서 캐싱하거나, 서버쪽에서 검색어별로 캐싱해두는 것이 좋습니다. 저는 swr 추천드립니다.





