-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
45b1bc1
commit 1c0ecbf
Showing
1 changed file
with
36 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
--- | ||
"@apollo/client": minor | ||
--- | ||
|
||
Introduces data masking into Apollo Client. Data masking allows components to access only the data they asked for through GraphQL fragments. This prevents coupling between components that might otherwise implicitly rely on fields not requested by the component. Data masking also provides the benefit that masked fields only rerender components that ask for the field. | ||
|
||
To enable data masking in Apollo Client, set the `dataMasking` option to `true`. | ||
|
||
```ts | ||
new ApolloClient({ | ||
dataMasking: true, | ||
// ... other options | ||
}) | ||
``` | ||
|
||
You can selectively disable data masking using the `@unmask` directive. Apply this to any named fragment to receive all fields requested by the fragment. | ||
|
||
```graphql | ||
query { | ||
user { | ||
id | ||
...UserFields @unmask | ||
} | ||
} | ||
``` | ||
|
||
To help with migration, use the `@unmask` migrate mode which will add warnings when accessing fields that would otherwise be masked. | ||
|
||
```graphql | ||
query { | ||
user { | ||
id | ||
...UserFields @unmask(mode: "migrate") | ||
} | ||
} | ||
``` |