npm 包 apollo-thunk 使用教程

简介

apollo-thunk 是一个 Node.js 的 npm 包,它是基于 Apollo GraphQL 和 Redux Thunk 的一个中间件。通过使用 apollo-thunk,我们可以轻松地将 Apollo GraphQL 和 Redux Thunk 集成到我们的应用程序中,从而更好地管理应用程序的状态和数据。

安装

安装 apollo-thunk 可以使用 npm 或 yarn。

使用 npm:

--- ------- ------------

使用 yarn:

---- --- ------------

用法

使用 apollo-thunk 首先需要创建一个新的 Apollo Link,然后将其添加到 Apollo Client 中。假设我们已经有一个 Apollo Client 实例:

------ - ------------ - ---- ----------------
------ - -------- - ---- -------------------
------ - ------------- - ---- ------------------------

----- ------ - --- --------------
  ----- --- ----------
    ---- -----------------------------
  ---
  ------ --- ----------------
---

要添加 apollo-thunk 中间件,我们需要首先安装 redux-thunk:

--- ------- -----------

---- --- -----------

然后创建一个新的 Apollo Link:

------ - ---------- - ---- --------------
------ - -------------------- - ---- ---------------

----- -------------- - -----------------------

----- ------ - --- --------------
  ----- -----------------
    ---------------
    --- ----------
      ---- -----------------------------
    --
  ---
  ------ --- ----------------
---

然后我们就可以在我们的 Redux action 中使用 apollo-thunk 了。首先创建一个异步的 action:

------ - --- - ---- ---------------
------ - ----------------- - ---- ---------------

----- ------------- - ----
  ----- -
    ----- -
      --
      ----
    -
  -
--

------ ----- --------- - -- -- ---------------------------------

这个 action 返回了一个函数,这个函数会被 Redux Thunk 处理。在这个函数中,我们创建了一个 Apollo Query 并将其封装成一个 apollo-thunk。这个 apollo-thunk 在被调用时会发起网络请求并返回数据,这个数据会被保存在 Redux Store 中。

然后我们就可以使用这个 action 来加载我们的数据了:

------ - ----------- - ---- --------------
------ - --------- - ---- --------
------ - --------- - ---- ------------

-------- ---------- -
  ----- -------- - --------------
  
  ------------ -- -
    ----------------------
  -- ----

  ------ -------- ---- ---- ----------
-

在这个例子中,我们使用了 React 的钩子函数 useDispatchuseEffect 来加载我们的数据。使用 useDispatch 来派发我们的 Redux action,使用 useEffect 来在组件挂载后加载我们的数据。

示例代码

完整的示例代码可以在 GitHub 上找到:https://github.com/apollographql/apollo-thunk-example

总结

通过使用 apollo-thunk,我们可以将 Apollo GraphQL 和 Redux Thunk 集成到我们的应用程序中,从而更好地管理应用程序的状态和数据。在 Redux 中使用 apollo-thunk 可以使我们更好地管理和操作数据,并且可以更好地处理异步操作。这对于大型的 React 应用程序来说是非常有价值的。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60065b43c6eb7e50355dbe1c


猜你喜欢

  • npm 包 mst-cm-fe 使用教程

    介绍 mst-cm-fe 是一个基于 React 和 Ant Design 的组件库,旨在快速构建企业级管理后台。该库集成了大量常用的组件和样式,让开发者能够快速搭建出美观、简洁、易用的管理后台。

    3 年前
  • npm 包 nodejs-state-machine 使用教程

    在前端开发中,我们经常需要处理各种复杂的业务逻辑和状态管理,这时候使用状态机就显得尤为重要。而在 Node.js 中,有一款常用的状态机库就是 nodejs-state-machine。

    3 年前
  • NPM包 React-Native-Keychain-Sensitive-Info 使用教程

    在现代移动应用中,保护用户敏感信息的安全是至关重要的。为了避免数据泄露和用户信息被盗用,开发人员需要将这些信息存储在可靠的、受保护的存储区域中。为此,React Native提供了一个名为react-...

    3 年前
  • npm 包 multichainstream 使用教程

    在前端开发中,我们经常需要处理多个数据流,比如用户输入、WebSocket 数据、定时器等。而 multichainstream 正是为此而生的一个 npm 包。它能够连接多个数据流,并统一处理它们的...

    3 年前
  • npm 包 @pedromsilva/data-either 使用教程

    在前端开发过程中,经常需要处理异常情况,比如 API 请求失败、用户输入错误等等。数据 Either 是一种流行的编程概念,它提供了一种方式来管理这些异常情况。 @pedromsilva/data-e...

    3 年前
  • npm 包 distance-between-points 使用教程

    在前端开发中,计算两个点之间的距离是一项常见的任务。在 JavaScript 中,我们可以使用许多不同的算法来计算这个距离,但有时我们需要一些额外的工具来帮助我们完成这项任务。

    3 年前
  • npm 包 homebridge-mi-ir-remote-electrolux 使用教程

    前言 homebridge-mi-ir-remote-electrolux 是一款基于 Homebridge 平台,使用小米红外遥控器控制 Electrolux 空调的 npm 包。

    3 年前
  • npm 包 @angular-package/change-detection 使用教程

    前言 在前端开发中,为了实现视图和数据的同步更新,Angular 应用框架提供了自己的变更检测机制。不过有时候,这个变更检测机制会出现性能问题,尤其是在数据量较大的情况下。

    3 年前
  • NPM包 @gather-research/react-gather 使用教程

    前言 React是一款流行的前端JavaScript库,它可以快速构建高效且响应式的用户界面。一些第三方库和插件可以进一步提高React的开发效率,而其中之一就是npm包 @gather-resear...

    3 年前
  • npm 包 feelslikehome-client 使用教程

    介绍 feelslikehome-client 是一个前端 npm 包,用于在客户端呈现和渲染从 feelslikehome 服务器获取的数据。它提供了一些强大的组件和工具,用于快速构建定制化的 fe...

    3 年前
  • npm 包 liri_kf 使用教程

    在前端开发中,我们经常需要依赖一些第三方库和插件来提高工作效率,其中 npm 包是非常常用的一种形式。本篇文章将介绍一个 npm 包 liri_kf 的使用教程,包括安装、配置和实际使用场景。

    3 年前
  • npm 包 medisoftware-ion2-calendar 使用教程

    简介 medisoftware-ion2-calendar 是一个基于 Ionic 2 框架的日期选择组件,可以快速地在 Ionic 2 应用中集成日历功能。它提供了日期选择、周视图、月视图和日视图等...

    3 年前
  • npm 包 villageexperts_engine 使用教程

    前言 随着前端技术的不断发展,使用 npm 包已经成为了程序员们日常工作中的一种标配工具。本文将介绍如何使用 villageexperts_engine 这个 npm 包来提高我们的 web 开发效率...

    3 年前
  • npm包@beisen-cmps/ux-platform-paging使用教程

    简介 在前端开发中,经常会遇到需要分页展示数据的需求。而@beisen-cmps/ux-platform-paging就是一个方便快捷的分页组件。该组件在实现分页功能的基础上,还提供了一些自定义展示效...

    3 年前
  • npm 包 react-native-sequenceimage 使用教程

    在使用 React Native 开发移动应用时,我们经常需要使用动画效果来增强用户体验。而图片序列动画是一种常见的动画形式,它通过使用多张图片,在一定时间内按顺序展示,从而产生动态效果。

    3 年前
  • npm 包 seabass 使用教程

    什么是 seabass Seabass 是一个用于构建前端 UI 界面的库,使用 seabass 可以轻松构建出整洁美观的 Web 界面。Seabass 提供了灵活且扩展性强的组件系统,可以帮助您快速...

    3 年前
  • npm 包 videojs-single-tns-counter 使用教程

    简介 videojs-single-tns-counter 是一个用于视频播放器计数的 npm 包,基于video.js的单例组件(singleton)设计,能够方便地在视频播放器中显示播放次数,并根...

    3 年前
  • npm 包 numpads 使用教程

    简介 numpads 是一款实用的 JavaScript 库,它可以为你的应用程序提供虚拟键盘。该库旨在解决一些常见的输入问题,比如用户在移动设备上时使用虚拟键盘输入的不便利性。

    3 年前
  • npm 包 react-big-calendar-now 使用教程

    React 是现今前端开发领域最流行的 JavaScript 框架之一,而 React Big Calendar Now 就是一个功能完备的 React 日历组件。

    3 年前
  • npm 包 samits 使用教程

    在前端开发中,我们经常需要调用各种各样的 npm 包来实现一些功能。其中,samits 作为一种轻量级的 JavaScript 工具包,提供了一些实用的方法和函数。

    3 年前

相关推荐

    暂无文章