# Components ## Query components ::: warning WIP You can use the `ApolloQuery` (or `apollo-query`) component to make watched Apollo queries directly in your template: ::: ```html ``` Props: - `query`: GraphQL query (transformed by `graphql-tag`) - `variables`: Object of GraphQL variables - `fetchPolicy`: See [apollo fetchPolicy](https://www.apollographql.com/docs/react/basics/queries.html#graphql-config-options-fetchPolicy) - `pollInterval`: See [apollo pollInterval](https://www.apollographql.com/docs/react/basics/queries.html#graphql-config-options-pollInterval) - `notifyOnNetworkStatusChange`: See [apollo notifyOnNetworkStatusChange](https://www.apollographql.com/docs/react/basics/queries.html#graphql-config-options-notifyOnNetworkStatusChange) - `context`: See [apollo context](https://www.apollographql.com/docs/react/basics/queries.html#graphql-config-options-context) - `skip`: Boolean disabling query fetching - `clientId`: Used to resolve the Apollo Client used (defined in ApolloProvider) - `deep`: Boolean to use deep Vue watchers - `tag`: String HTML tag name (default: `div`) Scoped slot props: - `result`: Apollo Query result - `result.data`: Data returned by the query - `result.loading`: Boolean indicating that a request is in flight - `result.error`: Eventual error for the current result - `result.networkStatus`: See [apollo networkStatus](https://www.apollographql.com/docs/react/basics/queries.html#graphql-query-data-networkStatus) - `result.times`: number of times the result was updated - `query`: Smart Query associated with the component - `isLoading`: Smart Query loading state - `gqlError`: first GraphQL error if any Events: - `result(resultObject)` - `error(errorObject)` ::: warning WIP You can subscribe to more data with the `ApolloSubscribeToMore` (or `apollo-subscribe-to-more`) component: ::: ```html ``` *You can put as many of those as you want inside a `` component.* ## Mutation component ::: warning WIP You can use the `ApolloMutation` (or `apollo-mutation`) component to call Apollo mutations directly in your template: ::: ```html ``` Props: - `mutation`: GraphQL query (transformed by `graphql-tag`) - `variables`: Object of GraphQL variables - `optimisticResponse`: See [optimistic UI](https://www.apollographql.com/docs/react/features/optimistic-ui.html) - `update`: See [updating cache after mutation](https://www.apollographql.com/docs/react/api/react-apollo.html#graphql-mutation-options-update) - `refetchQueries`: See [refetching queries after mutation](https://www.apollographql.com/docs/react/api/react-apollo.html#graphql-mutation-options-refetchQueries) - `tag`: String HTML tag name (default: `div`) Scoped slot props: - `mutate(options = undefined)`: Function to call the mutation. You can override the mutation options (for example: `mutate({ variables: { foo: 'bar } })`) - `loading`: Boolean indicating that the request is in flight - `error`: Eventual error for the last mutation call - `gqlError`: first GraphQL error if any Events: - `done(resultObject)` - `error(errorObject)`