将阿波罗查询结果存储在本地状态?

时间:2019-06-11 12:43:23

标签: vue.js apollo apollo-client vue-apollo

假设我有一个带有用户ID的缩小商品列表。 通过单击它们,我想通过阿波罗查询来延迟加载数据,展开并显示接收到的数据,例如用户名,地址等。 因此,我应该如何在本地“缓存”或存储此数据,以便能够重新加载+追加新用户数据,并还可以从本地状态显示已加载的用户,而不是从服务器重新加载

具有假设行为的假设查询:

export default {
    apollo: {
        getUser: {
            query: gpl`query getUser($id: Int!) {
                getUser(id: $id) {
                    username
                    address
                }
            }`,
            onDataLoaded: data => this.storedUsers.concat(data) // smthg lk ths
        }
    },
    data () {
        return {
             storedUsers: []
        }
    }
}

或者这可能是一个不好的方法?

1 个答案:

答案 0 :(得分:0)

Apollo客户端具有InMemoryCache,除非您这样说,否则不会重新加载数据。 看到 https://www.apollographql.com/docs/react/caching/cache-configuration/