首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

React 设计模式 0x6:数据获取

, ApolloProvider, gql, useQuery } from "@apollo/client"; const client = new ApolloClient({ uri: "https...# Memoization Memoization 是一种优化技术,主要用于通过存储昂贵函数调用结果,并在再次出现相同输入时返回缓存结果来优化计算机程序。...此外,您可以获取数据并将其存储在 React 应用程序状态中。 # React Query React Query 是一个库,用于处理 React 应用程序中数据获取管理。...它提供了许多有用功能,如数据缓存、自动重试、请求取消突变。 React Query 目标是提供一个简单 API,让数据获取管理变得更加容易,并且可以与现有的代码库集成。...通过使用 React Query,开发者可以快速地处理数据获取管理,同时保持 React 应用程序高性能可伸缩性。

1.2K20

GraphQL在现代Web应用中应用与优势

前端设置(使用Apollo Client)接着,我们需要在前端应用中配置Apollo Client,与我们GraphQL服务器通信:npm install apollo-boost @apollo/client...编写前端组件现在,我们在React组件中使用Apollo Client执行查询变更:// App.jsimport React from 'react';import { gql, useQuery,...客户端代码示例(使用Apollo Client)import { gql, useQuery } from '@apollo/client';const GET_USERS_AND_POSTS = gql...组件中,我们使用useQuery从GraphQL服务器获取数据,并渲染用户和他们帖子信息。...减少错误:客户端定义查询结构,服务器返回预期形状,降低了由于接口不匹配导致错误。更好API设计:强类型系统确保了数据一致性正确性,使得API更加易于理解维护。

3010

为什么我不再用Redux了

React Query 我已经在自己多数个人和工作项目中使用 React Query 几个月了。这个库有一个非常简单 API 几个 hooks,用于管理查询(获取数据)突变(更改数据)。...下面是使用 React Query 实现相同示例: import React from "react"; import { useQuery } from "react-query"; import...https://react-query.tanstack.com/docs/overview 现在,无论需要什么数据,你都可以将 useQuery hook 与你设置唯一键(在本例中为“todos”)...React Query SWR 大约是在同一时间开始开发,并且以积极方式相互影响。在 react-query 文档中也对这两个库进行了彻底比较。...Apollo Client SWR React Query 专注于 REST API,但如果你在 GraphQL 上需要类似的东西,就可以考虑 Apollo Client。

2.5K20

React 中请求远程数据四种方法

另外,如果你使用是 GraphQ L,还可以考虑使用 Apollo 之类其他不错选择。这篇文章假设你正在调用传统 REST API。 方式1:内联 这是最简单,最直接选择。...但是这个示例忽略了加载状态,错误处理,声明设置相关状态等。在现实世界中, HTTP 调用看起来更像这样。...; return users[0].username; } 对于一个简单应用程序,只要发起几个请求,就可以正常工作。但是上面的状态声明 useEffect 都是模版。...如果我要进行许多 HTTP 调用,我不想为每个调用重复维护大约 20 行代码。内联调用让你代码变得很丑。.../services/userService"; import { useQuery } from "react-query"; export default function ReactQueryDemo

4K10

react-query解决你一半状态管理问题

我们可以将刚才例子用React-Query改写: import { useQuery } from 'react-query' function App() { const {data,...2个hook处理: useQuery处理数据查 useMutation处理数据增/删/改 在下面的例子中,点击「创建用户」按钮会发起创建用户post请求: import { useQuery,...queryCache } from 'react-query'; function App() { const {data, isLoading, isError} = useQuery('...所以我们需要告诉React-Query,userData query对应缓存已经失效,需要更新: import { useQuery, queryCache } from 'react-query';...这为我们带来很多好处: 使用通用hook处理请求中间状态 多余请求合并 针对缓存更新/失效策略 Redux等「全局状态管理方案」可以更专注于「前端中间状态」处理 参考资料 [1] SWR: https

2.6K10

React 中请求远程数据四种方法

另外,如果你使用是 GraphQ L,还可以考虑使用 Apollo 之类其他不错选择。这篇文章假设你正在调用传统 REST API。 方式1:内联 这是最简单,最直接选择。...但是这个示例忽略了加载状态,错误处理,声明设置相关状态等。在现实世界中, HTTP 调用看起来更像这样。...; return users[0].username; } 对于一个简单应用程序,只要发起几个请求,就可以正常工作。但是上面的状态声明 useEffect 都是模版。...如果我要进行许多 HTTP 调用,我不想为每个调用重复维护大约 20 行代码。内联调用让你代码变得很丑。.../services/userService"; import { useQuery } from "react-query"; export default function ReactQueryDemo

2.3K30

在小程序框架Taro中使用 vue3+graphqlFrame

但今年由于 vue3 到来对于 typescript应用,我们需要一个能对 typescript + vue3支持较好小程序方案。现在市面对于这个需求支持最好就是 taro3 了。...Graphql client 库选型 Taro 做为小程序实现是比较满足需求,但是 taro3 官方并没有针对 graphql 支持,而社区中主要还是基于 @apollo 库方案比较多一些,还有一些直接是基于...经过反复选型试验,市面能支持我们需求(Vue3+typescript+完善 graphql 实现)最终有两个库可选: URQL urql 用于React、Svelte、Vue或JavaScript...高度可定制通用GraphQL客户端,这个 graphql 最初实现是基于 react,后期已经对各流行库有了完善支持 https://formidable.com/open- source...客户端测试 总结 此次文章中记录了 taro3 + vue3 + graphql 整合方案,评估了 URQLVillus两套方案,最终选用 Villus 改造方案,完成了整套技术结合,并最终在商业应用中完美的使用

85910

React Query 指南,目前火热状态管理库!

你将在本系列中发现更多关于它内容,学习如何使用它,并欣赏其在 React 应用程序中简洁性。 useQuery 第一个核心概念是 useQuery。...通过该关键字,React Query 能够存储结果并在应用程序不同部分中使用它。该关键字用于标识查询,你还可以使用 React Query 客户端通过代码重置查询或更改值。...这个 hook 结果有三个重要属性: data:此属性包含查询函数结果。请注意数据也可能为 undefined;这是因为在第一次调用时,当请求处于等待状态时,data 尚未呈现。...Dev tool 接下来,你将学习如何调试检查 React Query 应用程序中发生一切。...没错,它提供了许多很好功能来调试检查你 React Query 应用程序,并且它是每个使用 React Query 开发者好工具。

2.9K31

使用React-Query解决接口请求麻烦事

在后台更新“过期”数据 知道数据何时“过期” 尽快反映数据更新 性能优化,如分页延迟加载数据 管理内存和服务器状态垃圾收集 使用结构共享记忆查询结果 直到React-Query出现,上面的问题都变得迎刃而解...React-Query React Query 是一个开箱即用,零配置服务端状态管理库,支持RestfulGraphQL两种类型请求,它能帮助你很好获取、同步、管理和缓存你远程数据。...”不会触发,需要使用其返回“refetch”来触发操作 queryFn:全局定义请求方法,其他地方使用时只需要直接传入请求参数 useQuery useQueryReact-Query提供用于请求接口并管理请求状态等信息...onSuccess:接口调用成功后回调 onError: 失败回调 返回数据useQuery基本是相同,这里mutate则是触发更改方法,如果我们想执行useMutation中传入方法...,并在屏幕一角提供一个切换按钮以显示隐藏devtools 在devtools中我们可以直观看到已经缓存下来数据整个项目的配置,以及各个接口状态等。

64430

react-query从拒绝到拥抱

当我第一次开始使用时候,就对他有了偏见,难学!上手并不是很友好,不符合我过去获取数据直觉经验,但奇怪是却极受开发者欢迎。由于过去经验靠表面的直觉差点就让我错过了如此棒库。...获得了{starCount}颗星; } 复制代码 看到以上新增管理loadingerr状态代码,你负担是否大了很多?...最后它会返回一个结果结果里面包含请求数据,加载状态,错误等,这样这个请求就把所有这些状态串联起来,而不是一堆散乱状态,突然逻辑变得清晰了,你只需要根据这些状态处理页面,一切都简单了。...react-query 三大核心概念 Queries useQuery :发起单个请求 useQueries:发起多个请求 useInfiniteQuery:用于无限加载列表,非常强大,让构建无限加载组件变得简单..., useQuery } from "react-query"; import { useQueryClient } from 'react-query'; import { ReactQueryDevtools

2.6K31

写在2021: 值得关注学习前端框架工具库

前言 最近在知乎看到了这么个问题:学完Vue还有必要学习ReactNode吗?..., 有很奇妙感觉,因为我在最开始入门前端时,也是以Vue入门,在“学完”Vue之后, 我也有了类似的疑问,但当时我没多想,觉得“技多不压身”,反正都是前端,以后肯定用得上,那就学呗—— 结果我一路到现在都是处于这么一种状态...XState,不止适用于React,可以Vue/Svelte/Ember这样框架一起,也可以RxJS这样响应式库一起用。...Client Apollo-Client,来自ApolloGraphQL作品,只有React版本是官方团队在维护,Vue版本被挪到Vue团队了(VueUI有一部分就是基于Apollo-Client-Vue...编写,不需要定义Resolver、ObjectType这些东西,因为BlitzJS内部用useQueryuseMutation抹掉了中间调用过程(Apollohooks类似但不完全相同,Apollo

2.8K10

Hooks + TS 搭建一个任务管理系统(六)-- 看板页面展示

util 文件夹内,这个文件夹中 hook 都是一些复用性高页面关系不大 hook 1. useKanbans 这里获取数据方法前面获取项目数据方法一样,我们采用 useQuery 来进行缓存看板数据...映射到了 url 上,我们可以通过解析这个 url 地址来得到当前页面请求项目 id 这里我们采用 react-router 中 hook 来得到 pathname,它格式是这样 /projects...useQuery 时,如果在 2s 之内有相同 queryKey 发出请求的话,就会合并这些请求,只会发出一个 现在我们已经有了每个看板下 Task 数据了,我们只需要遍历渲染即可,这里我们采用还是...,只要调用即可,这里我们在 modal 中,绑定了 onOk 以及 onCancel 方法 这里有个值得注意地方 我们这次采用是 mutateAsync 异步执行,因此我们需要采用 await 进行等待执行结果...了解了 useQuery 用法 对 modal 组件有了更多了解 了解了 react-query 能够优化请求次数

69440

React 应用架构实战 0x5:集成 API 到应用中

# 为什么使用 React Query React Query 是一个很好处理异步远程状态选择主要原因是它可以为我们处理许多事情。...我们可以看到这里有一定量重复代码: 需要定义相同data、error loading 状态 必须相应地更新不同状态 数据在我们离开组件时立即被丢弃 如果使用 React Query,我们可以使用...# 配置 React Query 我们将使用 React Query 默认配置,但是我们需要在应用程序中提供一个 QueryClient 实例,它将用于管理缓存请求。...对于每个 API 请求,我们都将有一个文件,其中包含并导出 API 请求定义函数用于在 React 中使用请求 hook。...现在,我们想用我们刚刚创建真实查询更新操作来替换它们,以便与 API 进行通信。

1.5K20

听说现在都考这些React面试题

目前使用感觉最爽两个hook,都是关于请求。一个是 apollo-client useQuery,一个是 swr。...数据与UI进一步分离,这样也更有利于 SSR 11 react 与 vue 数组中 key 作用是什么 12 react 中 ref 是干什么用,有哪些使用场景 13 如何使用 react/vue...或者封装一个 useModel,如 useUser,usePermission 客户端全局 store,此时可以使用 useReducer useContext 来替代 17 如何实现一个 react...你有没有自己写过一个 可以参考官方文档 https://reactjs.org/docs/hooks-custom.html 自定义一个 hook 仅仅是一个以 use 打头,组合 useState ...hooks 原理是什么 23 redux 解决什么问题,还有什么其他方案 24 为什么不能在表达式里面定义 react hooks 25 redux mobx 有什么不同 26 关于 React

98730

使用React Query做为axios请求库上层封装

,它使 React 程序中获取,缓存,同步更新服务器状态变得轻而易举。...」 对于数据变化尽可能快得做出响应 分页查询懒加载等请求性能优化 管理服务器状态内存垃圾回收 通过结构共享(structural sharing)来缓存查询结果 请求中间态处理 function...会在全局维护一个服务端状态树,根据 Query key 去查找状态树中是否有可用数据,如果有则直接返回,否则则会发起请求,并将请求结果以 Query key 为主键存储到状态树中。...ReactQuery 就将我们所有的服务端状态维护在全局,并配合它缓存策略来执行数据存储更新。...举个例子: import React from "react"; import { useQuery, queryCache } from "react-query"; import ".

2K30
领券