- Loading...
-
- Error: {{ error.message }}
-
-
- -
- {{ user.firstname }} {{ user.lastname }}
-
-
-
-```
-
-如果与组件相关的数据嵌套在查询中,这将非常有用:
-
-```js
-const { result } = useQuery(gql`
- query getMessages {
- currentUser {
- messages {
- id
- text
- }
- }
- }
-`)
-
-const messages = useResult(result, null, data => data.currentUser.messages)
-```
-
-`useResult` 的另一个好处是,挑选函数会让其内部的错误静音。例如,如果 `result.value` 是 `undefined`,你不必添加额外的检查:
-
-```js
-// 你不需要这样做!
-const messages = useResult(result, null, data => data && data.currentUser && data.currentUser.messages)
-
-// 而是这样做:
-const messages = useResult(result, null, data => data.currentUser.messages)
-```
-
-::: tip
-不要忘记,在查询成功完成之前,`messages.value` 仍然可以是 `null`!
-:::
-
-证明 `useResult` 非常有用的另外一个用例是当结果数据上有多个对象时:
-
-```js
-const { result } = useQuery(gql`
- query getUsersAndPosts {
- users {
- id
- email
- }
-
- posts {
- id
- title
- }
- }
-`)
-
-const users = useResult(result, null, data => data.users)
-
-const posts = useResult(result, null, data => data.posts)
-```
-
-看看我们是怎样将结果数据干净地分成两个不同的 `Ref`!
-
-### 自动挑选
-
-如果在数据中只有一个对象,`useResult` 将尝试自动挑选该对象:
-
-```js{12}
-const { result, loading } = useQuery(gql`
- query getUsers {
- users {
- id
- firstname
- lastname
- email
- }
- }
-`)
-
-const users = useResult(result)
-```
-
-这里的 `users.value` 将是从服务器中检索到的 `users` 数组。
-
-### 默认值
-
-假设我们想根据用户的姓氏进行排序:
-
-```vue{2,19-21,24,34,35}
-
-
-