Be well coding/Learn more
Apollo Cache
be well
2019. 8. 8. 23:04
what is Apollo Cache
아폴로는 Query 요청을 할 때 먼저 Cache 를 확인한다. 처음 Query 요청 시 Cache 에 Query , variables 데이터를 자동적으로
Cache에 저장한다. 처음 페이지가 렌더 될 때 로딩이 걸리지만 다음 번 그 페이지를 방문할 때 바로 렌더 되는 이유는 첫 요청에서는
요청을 실행하지만 그 다음부터는 Cache 를 참조한다.
problem
그렇지만 단점으로는 데이터가 업데이트되는 Mutation 요청이 진행되었을 때,
페이지에서 새로고침을 하지않는 한 렌더된 데이터가 변하지 않는다. Query 요청을 다시 보내서 새로 DB에서 업데이트 된 데이터를
가져와야하는데 Cache 에 같은 Query 의 이름이 있어서, 기존에 Cache에 있던 데이터만 가져오게 된다.
solution
1. Cache update
Cache에 있는 데이터에 직접적으로 Mutation 이 끝난 후 재요청.
++ refetchQueries 라는 것이 존재한다 -> Mutation이 끝난 후 다시 쿼리를 불러오는 역할.
2. 강제 새로고침
일단 이 방법으로 프로젝트 진행 중. 쿨하지 못한 방법 ㅠㅠ
아직 적용시키지 못한 부분이라 후에 더 공부한 뒤 사용해볼 예정!
DOCS 링크