해당 정보가 유니크한 것이라는 것을 구분할 수 있어야만, 이를 Cache에 저장할 수 있다. ( 기본 : id )
1. 기본으로 사용되는 방법
ex ) 1번째 사용자의 이름을 불러옴
// 쿼리
user {
id
username
}
// 캐시
User : 1 {
id: 1
username: "jinho"
}
ex) 1번째 사용자의 사진을 불러옴
// 쿼리
user {
id
photo
}
// 캐시
User : 1 {
id: 1
username: "jinho"
photo: "http://photo.img"
}
// Apollo가, id를 비교하여 기존의 정보에 새로운 정보를 자동으로 추가해준다.
2. 새로운 식별자 만들기 ( 정보의 유니크함을 구별해주는 정보 사용 )
Apollo Client에 식별자 추가하기
const client = new ApolloClient({
cache: new InMemoryCache({
// 새로운 식별자 추가
typePolicies: {
// user객체를 저장한다.
User: {
// 객체의 username을 식별자로 사용한다.
keyFields: (obj) => `User:${obj.username}`,
},
},
}),
});
식별자 사용해 정보 불러오기
// 쿼리
user {
username
photo
}
// 캐시
User : jinho {
username: "jinho"
photo: "http://photo.img"
}
// Apollo가, username로 객체를 구분한다
반응형