npm 包 @atlaskit/popper 使用教程

在前端开发中,常常需要使用到弹出框、工具提示等界面元素。而在实现这些元素的浮动效果时,需要使用到 popper.js 这个库。随着 React 在前端开发中的应用越来越广泛,@atlaskit/popper 这个基于 popper.js 的轻量级 React 组件库也越来越受到开发者的青睐。本篇文章将为你详细介绍 @atlaskit/popper 的使用方法,帮助你快速实现浮动效果。

安装

在开始使用 @atlaskit/popper 之前,你需要先安装相关的依赖。打开命令行工具,在项目中使用以下命令进行安装:

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

除了 @atlaskit/popper 之外,还需要安装 popper.jsreactreact-domstyled-components 这几个依赖。其中,popper.js 是用来实现浮动效果的重要库,而 reactreact-dom 则是需要用到的 React 库,styled-components 则是为了方便实现组件样式的工具。

简介

@atlaskit/popper 的主要目的是简化 popper.js 的使用流程,实现更加方便、快捷的浮动效果。在使用 @atlaskit/popper 时,你可以直接使用 Popup 组件实现浮动效果,无需再手动创建 popper.js 实例。

使用

使用 @atlaskit/popper 实现的 popup 具有以下特点:

  • 支持多种浮动方向。
  • 支持定时自动关闭和手动关闭。
  • 支持浮动框的大小和位置自定义。
  • 支持浮动框和触发元素之间的各种关联方式。

基本用法

使用基本的 Popup 组件非常简单。只需要 import 组件,并将相应的控制参数作为 props 传递给组件即可。

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

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

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

在上面的例子中,我们定义了一个名为 App 的 React 组件,并在其中使用 Popup 组件来实现浮动效果。其中,我们使用 useState 钩子来绑定 isOpen 状态,确保当 isOpen 发生变化时,Popup 组件是否弹出也能做出相应的改变。在这里我们使用了一个 button 元素来触发 isOpen 状态的变化,当点击按钮时,isOpen 将会被设置为 true,弹出浮动框;当点击浮动框上的关闭按钮时,isOpen 将被设置为 false,浮动框将被关闭。

Popup 组件中,我们将 isOpen 设置为 true 以显示弹出框。属性 position 则用来指定弹出框的浮动位置,其取值范围包括 bottomtopleftright 等。onClose 属性用于绑定 Popup 关闭事件。此外,需要在 Popup 中嵌入内容。

支持更多属性

Popup 的基础上,@atlaskit/popper 还为开发者额外提供了很多属性和方法。以下简要介绍了其中一部分:

  • placement

placement 属性主要用于控制浮动框的方向,其取值范围包括 bottom, top, left, right, top-start, top-end, bottom-start, bottom-end, left-start, left-end, right-startright-end。需要注意的是,当 Popup 无法在屏幕上正常展示时,会根据 placement 自动调整 Popup 的位置,触发回调函数并将新的位置信息传递给开发者。

  • usePortal

这个属性用于控制弹出框中是否使用 portal。如果开启了 portal,则 Popup 会在外层节点的子级中创建一个新的 div 容器,用来渲染弹出框的内容。如果不开启,则弹出框的内容将直接添加到 Popup 的父元素中。

  • content

这个属性用于定义 Popup 的内容。你可以使用文本内容、HTML 标记甚至 React 组件来定义弹出框中的内容。

  • mountTo

当使用 usePortal 属性插入弹出框时,需要将弹出框渲染到不同的元素中。 mountTo 属性用于指定需要将弹出框插入的元素。默认值为 document.body

  • unmountOnExit

当属性值为 true 时,Popup 关闭时会销毁弹出框的 DOM 节点。这有助于减少内存使用量。

  • innerRef

这个属性用于获取 Popup 节点的引用,可以用于实现一些高级功能,如手电筒效果。

示例

现在让我们来看一个完整的 Popup 组件的使用示例,该示例能够实现一组浮动菜单的功能。

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

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

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

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

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

在这个例子中,我们创建了一个名为 Menu 的组件,该组件包括三个名为 MenuItem 的子组件。通过样式设置,我们定义了 Menu 的显示效果和 MenuItem 的鼠标悬停效果。然后在 App 组件中,我们使用 Popup 组件和 Menu 组件一起实现了一组浮动菜单的效果。当用户点击按钮时,菜单会在指定的位置浮动显示;当用户关闭菜单时,菜单会自动关闭。

总结

通过本文的介绍,你已经掌握了如何使用 @atlaskit/popper 组件库实现 React 中的浮动效果。你也了解了该组件库提供的一些基本属性和方法。希望这篇文章对你在开发前端应用时有所帮助。

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


猜你喜欢

  • npm 包 appolo-event-dispatcher 使用教程

    在前端开发过程中,我们常常需要对事件进行管理和处理。对于多维度和复杂的应用程序,我们需要一个可靠的事件管理框架,这时候 npm 包 appolo-event-dispatcher 可能会成为你的一个好...

    4 年前
  • NPM 包 Apollo-Route 使用教程

    如果你是一个前端开发者,你一定不会对 Apollo-Route 这个 NPM 包感到陌生。它是一个非常流行的路由管理工具,帮助开发者更轻松地管理页面路由,提高开发效率。

    4 年前
  • npm 包 appolo-agent 使用教程

    在现代Web开发中,构建高效的应用程序以及保持其性能和稳定性已经成为了开发人员的首要目标。为了实现这一点,使用工具来分析和监视应用程序是很重要的。Appolo Agent是一个优秀的npm包,可以帮助...

    4 年前
  • npm包 @appolo/events使用教程

    简介 @appolo/events是一款轻量级的事件库,能够在前端和后端应用中实现事件驱动程序的设计模式。 安装 通过npm安装: --- ------- -------------- ------初...

    4 年前
  • npm包@appolo/inject使用教程

    在前端开发中,使用npm包已经成为了非常常见的操作。在依赖管理方面,npm是所有前端开发者最常用的工具之一。在本文中,我们将介绍npm包中的一个重要组件:@appolo/inject,包含详细的使用教...

    4 年前
  • npm 包 @appolo/utils 使用教程

    前言 在前端开发中,我们经常会使用到各种各样的工具库,这些工具库可以极大的提升我们的开发效率,@appolo/utils 就是一款非常优秀的工具库,它包含了很多实用的函数,可以帮助我们快速的完成一些常...

    4 年前
  • npm 包 appolo-cache 使用教程

    appolo-cache 是一个简单易用的缓存管理工具,可以轻松地在你的前端应用中使用。本文将为你介绍 appolo-cache 的使用方法,包括安装、配置、API 等方面。

    4 年前
  • npm 包 @appolo/helpers 使用教程

    前言 在前端开发中,npm 是一个不可忽略的工具,它为我们提供了无数实用的 JavaScript 包来完成我们的开发任务。本文主要介绍 @appolo/helpers 这个工具包的使用,它是一个为 N...

    4 年前
  • npm 包 appolo-engine 使用教程

    在现代的前端开发中,很多网站和应用都使用了 React、Angular 和 Vue 等框架。这些框架提供了很多的功能和工具,但是我们还需要一些额外的工具,来帮助我们构建更好的应用。

    4 年前
  • npm 包 tracium 使用教程

    前言 tracium 是一个基于 Chrome DevTools 的性能分析工具。它可以为您的页面生成一份资源使用情况的报告,内容详细而全面。本文将为您详细介绍如何使用 tracium。

    4 年前
  • npm 包 estimo 使用教程

    前言 在前端开发中,我们会使用一些第三方库或框架来提高开发效率和代码质量,但是这些库或框架背后的实现机制我们并不一定清楚。而使用 estimo 可以让我们了解代码性能方面的一些细节,更好地优化我们的代...

    4 年前
  • npm 包 @size-limit/time 使用教程

    什么是 @size-limit/time? @size-limit/time 是一个 npm 包,可以用于计算 JavaScript 代码运行时间。可以在前端测量整个页面或者用户交互的一部分的性能,也...

    4 年前
  • npm 包 import-global 使用教程

    在前端开发中,我们常常需要使用一些第三方的工具包或者库来帮助我们快速地完成开发任务。而 npm 是 JavaScript 开发中使用最广泛的一个依赖包管理器,能够方便地帮助我们查找、安装和使用各种 J...

    4 年前
  • npm 包 @alib/build-scripts 使用教程

    简介 @alib/build-scripts 是一个构建工具集,包含多个插件,可以帮助前端开发者快速构建前端项目。@alib/build-scripts 已经在阿里巴巴内部广泛使用,在性能、体验等方面...

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

    在前端开发中,我们经常会使用 build 工具来编译和打包我们的代码,因此很多开发者都能够熟练地使用一系列的 build 工具和插件。在这篇文章中,我将介绍如何使用 npm 包 build-plugi...

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

    介绍 build-plugin-ice-core 是一个用于修改 buildConfig 的 ice-scripts 插件。通过这个插件,你可以自定义冰体系项目的打包配置,从而满足你的项目需求。

    4 年前
  • npm 包 @antv/hierarchy 使用教程

    在前端开发中,数据可视化是一个十分重要的领域,而 @antv/hierarchy 是一个非常棒的 npm 包,可以帮助我们实现树形数据的可视化。本文将详细介绍该 npm 包的使用方法和具体示例,并希望...

    4 年前
  • npm 包 @alifd/babel-preset-next 使用教程

    什么是 @alifd/babel-preset-next @alifd/babel-preset-next 是阿里前端团队 Ant Design 开发的用于转译 JavaScript 代码的 Babe...

    4 年前
  • 前端技术文章:npm 包 build-plugin-ice-helpers 使用教程

    简介 在前端开发中,构建工具是非常必要的,可以帮助我们自动完成编译、优化、部署等任务。而今天要介绍的 npm 包 build-plugin-ice-helpers 就可以帮助我们简化开发过程中的一些操...

    4 年前
  • npm 包 @antv/util 使用教程

    本文介绍了如何使用npm 包 @antv/util,帮助前端开发人员更好的快速开发和定制自己的交互数据可视化应用。 简介 @antv/util 是一个 AntV 数据可视化库的工具集,提供了许多有用的...

    4 年前

相关推荐

    暂无文章