npm 包 imgur-search 使用教程

在前端开发过程中,我们常常需要使用图片来进行展示、配图等操作。图片的选取、管理、搜索等都是比较繁琐的操作,但是现在有一个叫做 imgur-search 的 npm 包可以帮助我们解决这些问题。本文主要介绍如何使用 imgur-search 包进行图片的选取和搜索功能。

环境准备

在开始使用 imgur-search 包之前,我们需要对环境进行一些准备。

  1. 把开发项目的根路径设置为环境变量 NODE_PATH。这可以让我们使用绝对路径引入包,而无需一层层地找到我们要引入的包。
  2. 安装 imgur-search 包。可以使用 npm install imgur-search 命令进行安装。
  3. 创建 imgur app,并获取到对应的 client id。这是我们调用 imgur 搜索接口的必要凭证。

基本使用

选取图片

以下是一个简单的示例代码,用于选取图片并展示在页面上:

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

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

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

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

上述代码中,我们通过调用 imgur 的搜索接口来获取图片信息。解析返回数据后,将第一张图片的链接赋值给 img 标签的 src 属性,从而展示在页面上。

搜索图片

以下是一个简单的示例代码,用于搜索图片并展示在页面上:

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

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

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

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

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

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

上述代码中,我们通过获取输入框中的关键词,调用 imgur 的搜索接口来获取图片信息。我们将搜索结果逐一展示在页面上,并通过动态创建 img 标签的方式实现展示。

优化

上述的示例代码实现了图片的选取和搜索,但是还需要进行优化。下面分别从结果缓存和分页展示两个方面进行优化。

结果缓存

每次搜索图片都需要调用 imgur 的搜索接口,这会造成一些问题:

  1. 搜索过程中会出现卡顿,用户体验不好。
  2. 多次搜索同一关键词,会造成重复的请求。

我们可以对搜索结果进行缓存,这样在后续的搜索操作中就不用再调用 imgur 的搜索接口了。

以下是缓存搜索结果的示例代码:

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

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

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

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

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

上述代码中,我们使用一个 imgurCache 对象来保存搜索结果。在每次搜索前会判断当前关键词对应的搜索结果是否已经包含在 imgurCache 中,如果是的话直接使用缓存结果来展示图片列表,否则调用 imgur 的搜索接口,并将结果保存到 imgurCache 中。

分页展示

当搜索关键词对应的结果较多的时候,需要进行分页展示。我们可以通过传入 offset 和 limit 来实现分页展示效果。

以下是分页展示的示例代码:

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

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

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

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

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

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

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

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

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

上述代码中,我们新增了两个变量 offset 和 limit,并通过 slice 方法对搜索结果进行切片。展示的图片数量就是 limit 的值。同时,我们还通过 prevPage 和 nextPage 两个函数实现了分页展示的效果。在 renderImglist 中我们动态创建了一个按钮组用于翻页操作。

总结

在本文中,我们介绍了如何使用 imgur-search 包进行图片的选取和搜索,以及如何通过结果缓存和分页展示来优化代码。学习这些技巧可以帮助我们更加快速高效地开发前端项目。希望本文对你有所帮助。

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


猜你喜欢

  • npm 包 @types/is-reachable 使用教程

    本文将介绍如何使用 npm 包 @types/is-reachable 来判断一个 URL 是否可达。 简介 @types/is-reachable 是一个 TypeScript 类型定义文件,用于检...

    4 年前
  • npm 包 @keyv/sqlite 使用教程

    简介 @keyv/sqlite 是一个基于 Node.js 的 SQLite3 数据库的 Keyv 存储适配器。 Keyv 是一个非常有用的键值对存储库,而 @keyv/sqlite 适配器让你可以方...

    4 年前
  • npm 包 Appolo-Utils 使用教程

    简介 Appolo-Utils 是一个 npm 包,旨在提供一些常用的工具函数和工具类,以方便前端开发人员进行快速开发。 本教程将介绍如何使用 Appolo-Utils,并提供示例代码,以便读者能够更...

    4 年前
  • npm 包 Apollo 使用教程

    介绍 Apollo 是一个 JavaScript 应用程序的前端解决方案,它允许你轻松地构建 Web 应用程序和组件。通过集成多个工具和框架,Apollo 提供了一个完整的 Web 开发环境,包括路由...

    4 年前
  • npm 包 install-peers 使用教程

    在前端开发中,我们经常会使用 npm 来管理我们的依赖包。但是,有时候我们的依赖包引用了同一个包,而这个包又是 peerDependencies(同级依赖) 类型的,这时候我们需要使用 npm 包 i...

    4 年前
  • npm 包 @types/validatorjs 使用教程

    前言 在前端开发中,我们常常需要进行表单验证,保证用户输入的数据合法且满足业务规则。而 validatorjs 就是一款常用的前端表单验证的库,它提供了丰富的验证规则和自定义规则的支持。

    4 年前
  • npm 包 react-hotkeys 使用教程:

    前端开发涉及到大量的键盘操作,为了提高开发效率,我们通常会使用一些热键工具,比如在 VS Code 中语言提示快捷键 Ctrl + Space,代码折叠快捷键 Ctrl + Shift + [, 等等...

    4 年前
  • npm 包 mobx-react-lite 使用教程

    简介 mobx-react-lite 是一个轻量级的基于 React 的 MobX 绑定库。它提供了一个优雅的方式来连接 React 组件和 MobX 状态管理,具有优秀的性能和易用性,适合用于构建大...

    4 年前
  • npm包 build-plugin-fusion-material 使用教程

    前言 在前端工作中,我们常常需要使用各种 npm 包来实现功能和提高开发效率。在阿里前端的开发实践和项目中,我们推荐使用 build-plugin-fusion-material 这个 npm 包来构...

    4 年前
  • npm 包 ice.js 使用教程

    什么是 ice.js Ice.js 是一个面向企业级前端应用(B2B Web)的前端框架,它采用 React、React Router 以及 Redux 等流行库来实现单页面应用(SPA)。

    4 年前
  • npm 包 build-plugin-moment-locales 使用教程

    简介 在前端开发中使用 moment.js 库进行日期格式化时,由于该库支持全球多种语言的时间格式,且支持按需加载,因此开发者可以根据需要选择加载对应语言包减小包体积。

    4 年前
  • npm 包 build-plugin-fusion 使用教程

    在前端开发过程中,我们常常需要对项目进行构建处理,例如将 ES6 代码转换为 ES5、添加浏览器前缀、压缩代码等等。这些构建工作通常需要通过编写配置文件或调用命令行工具完成,较为繁琐。

    4 年前
  • npm 包 @ice/spec 使用教程

    介绍 在前端开发中,难免遇到需要编写组件、页面、模块等多人协同的场景。此时,规范的使用可以帮助我们更好地沟通合作,提高项目的开发效率和项目质量。 而 @ice/spec 就是一个用于前端规范统一的 n...

    4 年前
  • npm包@alifd/theme-design-pro使用教程

    前端开发不仅需要关心业务逻辑,还需要对页面设计有一定的了解。作为一名前端工程师,我们需要注重用户体验和界面美观。而@alifd/theme-design-pro 就是一个可以帮助我们实现界面美观和功能...

    4 年前
  • npm 包 @antv/data-set 使用教程

    概述 @antv/data-set 是一个基于数据集的可视化数据预处理工具包。它包含了一系列的数据操作和处理方法,能够快速地完成数据异构化、数据加工和数据可视化的流程。

    4 年前
  • npm 包 webpack-preset-accurapp 使用教程

    什么是webpack-preset-accurapp? webpack-preset-accurapp 是一个专为 Accurapp 而开发的 webpack 预设包。

    4 年前
  • npm 包 eslint-config-accurapp 使用教程

    eslint-config-accurapp 是一个针对前端代码规范进行检测的插件,可以帮助开发者在编写代码时尽早地发现潜在的问题,以便优化代码质量和可读性。本文将详细讲解如何安装和使用 eslint...

    4 年前
  • npm 包 babel-preset-accurapp 使用教程

    前言 如果你是一名前端开发工程师,那么你一定知道 Babel,这是一个通过 ECMAScript 2015+ 代码转译为向后兼容的 JavaScript 版本的工具。

    4 年前
  • npm 包 accurapp-scripts 使用教程

    在现代前端开发中,使用 npm 包已经成为了必不可少的一部分。在这里,我们将介绍一个名为 accurapp-scripts 的 npm 包,它可以快速帮助我们创建 React 应用程序,并自动化构建和...

    4 年前
  • npm 包 @types/d3-sankey 使用教程

    介绍 @d3-sankey 是 d3.js 中一个流程图框架,常常被用于可视化工具中。官方提供了 @types/d3-sankey 这个 npm 包,用于 TypeScipt 和 JavaScript...

    4 年前

相关推荐

    暂无文章