npm 包 @john-osullivan/react-window-dynamic-fork 使用教程

前言

在前端开发中,列表渲染是非常常见的需求,但是当列表数据过多时,渲染必须非常快才能保证用户体验的流畅性。这时候就需要用到虚拟列表,它只渲染当前可见区域的数据,从而减小了渲染的性能消耗。

在 React 中,用到虚拟列表的情况也很多,react-window 就是一个非常好用的虚拟列表库。但是它本身是以固定的行高来计算滚动位置和可见区域,当列表项高度不统一时,它就无法准确计算滚动位置和可见区域。而 @john-osullivan/react-window-dynamic-fork 就是为了解决这个问题而生的。

安装

在项目中运行以下命令进行安装:

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

使用

  1. 首先,需要从 @john-osullivan/react-window-dynamic-fork 中引入 DynamicSizeList
------ - --------------- - ---- --------------------------------------------
  1. 然后按照 react-window 的用法,设置列表项和计算可见区域的方式。但是需要注意的是,要 new 一个 sizeMap 对象,用来保存每个列表项的高度。
----- ------- - --- ------
----- ---- - -
  -- ------
--

-------- ------------------ -
  ----- ---- - ------------
  -- --------------------- -
    -- ------
    ------------------ --------
  -
  ------ -------------------
-
  1. 最后,渲染列表。需要传递以下参数:
  • DynamicSizeList 组件本身的 props。
  • itemSize:计算每个列表项的高度的函数,必填。
  • itemCount:列表项数量,必填。
  • sizeMap:保存每个列表项高度的 Map 对象,必填。
  • children:列表渲染函数,必填。
----------------
  -----------
  ------------
  ----------------------
  -----------------------
  -----------------
-
  --------- ------- -- -
    -- ----------
  --
------------------

示例代码

下面是一个使用 DynamicSizeList 渲染虚拟列表的示例代码:

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

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

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

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

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

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

结语

@john-osullivan/react-window-dynamic-fork 是一个非常好用的虚拟列表库,它可以支持不同高度的列表项,并且还可以以尽可能小的时间渲染大量数据。在实际开发中,如果遇到了列表项高度不统一的问题,可以尝试使用它。

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


猜你喜欢

  • NPM包 Frontbend 使用教程

    Frontend开发需要不断地引入和使用各种工具和库,NPM(Node Package Manager)成为了前端开发者们的不二选择。NPM上有许多优秀的前端工具和库供我们使用,其中 Frontben...

    4 年前
  • npm 包 @upstatement/prettier-config 使用教程

    Prettier 是一个非常流行的代码格式化工具,用于帮助开发人员生成一致的代码样式。它可以格式化 JavaScript、CSS、HTML 等各种代码,包括自动缩进、空格、引号等规范。

    4 年前
  • npm 包 @iopipe/profiler 使用教程

    前言 在开发前端应用程序时,性能优化是非常重要的。如果应用程序运行缓慢,用户体验将受到影响,可能会导致用户流失。所以,需要使用可靠的工具来帮助我们进行性能优化。 在本文中,我们将介绍一个非常有用的 n...

    4 年前
  • npm 包 ui-infra 使用教程

    简介 ui-infra 是一款专门为前端开发者打造的 npm 包,该包中包含了诸多常用的 UI 组件,比如表单、按钮、输入框等等,从而使得开发者可以更加轻松高效地开发前端应用。

    4 年前
  • npm 包 react-redux-modal-provider 使用教程

    在前端开发中,模态框(Modal)是一种常见的界面交互组件。而 react-redux-modal-provider 正是一款方便快捷的 React 模态框解决方案。

    4 年前
  • npm 包 dnaida-palindrome 使用教程

    什么是 npm 包? npm,即 Node.js 包管理器,是世界上最大的软件注册表之一,可以帮助用户在编写 JavaScript 应用时轻松地安装、分享和分发代码模块。

    4 年前
  • npm 包 tangxiangqi 使用教程

    引言 在 Web 开发领域中,npm 是一个非常重要的工具。它可以让开发人员方便地管理依赖包,从而使项目开发更加高效。在最近的 Web 开发中,tangxiangqi 已经成为了一个非常受欢迎的 np...

    4 年前
  • npm 包 use-lodash-debounce-throttle 使用教程

    前端开发中,我们常常会遇到需要处理频繁触发的事件的场景,比如页面滚动、输入框输入等等。如果这些事件频率过高,会导致页面性能下降,因此我们一般会使用 Debouncing 或 Throttling 技术...

    4 年前
  • npm 包 @nlv8/reconvict 使用教程

    前言 在前端开发中,我们经常需要使用配置文件来管理应用程序的设置。然而,手动编写和维护这些配置文件是一项繁琐且容易出错的任务,因此使用配置管理工具是非常必要的。在 Node.js 中,有许多优秀的配置...

    4 年前
  • npm 包 return-deep-diff 使用教程

    在前端开发中,我们常常需要比较两个对象或数组之间的差异,特别是在进行状态管理或数据更新等领域中。如果我们手动比较这些数据差异,那么很容易出现错误或繁琐的代码。这时候,npm 包 return-deep...

    4 年前
  • npm 包 @jetdoodle/vue-context-menu 使用教程

    前言 前端实现右键菜单的方式有多种,比如使用原生JS、jQuery、Vue等框架,而 @jetdoodle/vue-context-menu 是一个 Vue 插件,能方便地实现右键菜单功能。

    4 年前
  • npm 包 chrome-active-tab 使用教程

    如果你正在开发一个前端项目,并需要获取用户当前浏览的标签页信息,那么 chrome-active-tab npm 包就是一个非常好的选择。 chrome-active-tab 是一个小巧的 npm 包...

    4 年前
  • npm 包 fmtr 使用教程

    什么是 fmtr? fmtr 是一个用来格式化字符串的 npm 包,它基于模板字符串和模板字面量,提供了一种像使用占位符一样格式化字符串的方法。同时,它还支持自定义过滤器,用来转换、过滤和修饰字符串输...

    4 年前
  • npm 包 @mardxmag/ons-core-datetimepicker 使用教程

    在前端开发中,日期选择器是一个经常被使用的基础组件。在本文中,我将向大家介绍一个 npm 包 @mardxmag/ons-core-datetimepicker,它是一款轻量级的日期时间选择器组件。

    4 年前
  • npm 包 gauntface-theme 使用教程

    简介 在前端开发中,使用已有的样式框架是非常恰当的做法,它能够减少开发成本和时间。如果你想打造一个漂亮的网站,那么 gauntface-theme 这个 npm 包就是一个不错的选择,它是一个基于 M...

    4 年前
  • npm 包 xr-wheel 使用教程

    在前端开发中,我们经常会使用许多工具和插件来提高开发效率和质量。而其中的一种常见的工具就是 npm 包。npm 是世界上最大的软件注册表,它允许开发者在自己的项目中方便地添加、更新和卸载代码包。

    4 年前
  • npm 包 react-native-swipe-up-down-fix 使用教程

    简介 react-native-swipe-up-down-fix 是一个 npm 包,用于实现 React Native 应用中的上下滑动手势功能。它可以非常方便地为应用增加类似于“下拉刷新”、“上...

    4 年前
  • npm 包 ng-boxed 使用教程

    什么是 ng-boxed ng-boxed 是一个 AngularJS 指令,用于在 Web 应用程序中创建有边框的容器。 它可以帮助开发者创建可定制的框架来放置应用程序中的元素,包括文本、图片、表格...

    4 年前
  • npm 包 node-service-gen 使用教程

    简介 在前端开发中,我们需要编写很多服务端接口,这些接口的编写需要一定的时间和精力。为了提高开发效率,我们可以借助工具来生成服务端接口的基础代码,这就是本文介绍的 npm 包——node-servic...

    4 年前
  • npm 包 define-cli 使用教程

    随着前端的发展,我们已经不再仅仅只需要写一些简单的静态页面,前端的开发范畴也逐渐扩大化。而随之而来的是对于前端工具包的需求也逐渐增多,其中一个必不可少的工具就是 npm 包。

    4 年前

相关推荐

    暂无文章