ReactJS 蓝图覆盖组件
BlueprintJS 是一个基于 React 的 Web UI 工具包。该库非常适合构建用于桌面应用程序的复杂数据密集型接口。 Overlay组件为用户提供了一种将覆盖内容呈现在其兄弟姐妹之上或整个应用程序之上的方法。 我们可以在 ReactJS 中使用以下方法来使用 ReactJS Blueprint Overlay 组件。
叠加道具:
- autoFocus:用于指示overlay在首次打开时是否应获取应用程序焦点。
- backgroundClassName:用于表示应用于背景元素的 CSS 类名称。
- backgroundProps:用于表示背景元素的 HTML 道具。
- canEscapeKeyClose:用于指示按下 ESC 键是否应该调用 onClose。
- canOutsideClickClose:用于指示在覆盖元素外部单击是否应调用onClose。
- className:用于表示以空格分隔的类名列表,以传递给子元素。
- enforceFocus:用于指示叠加层是否应防止焦点离开自身。
- hasBackdrop:用于指示是否应在内容后面渲染跨容器的背景元素。
- isOpen:用于切换叠加层及其子项的可见性。
- lazy:当设置为 true 和 usePortal={true} 时,第一次打开覆盖时创建包含子项的门户并将其附加到 DOM。
- onClose:是一个回调函数,当用户交互导致覆盖层关闭时触发,例如点击覆盖层或按下 ESC 键。
- onClosed:它用于表示在 CSS 关闭过渡结束之后但在子元素从 DOM 中删除之前调用的生命周期方法。
- onClosing:它用于表示在 CSS 关闭过渡开始之前调用的生命周期方法。
- onOpened:用于表示在 CSS 打开过渡结束后立即调用的生命周期方法。
- onOpening:它用于表示在将子元素挂载到 DOM 之后但就在 CSS 打开转换开始之前调用的生命周期方法。
- portalClassName:如果 usePortal 为真,则用于表示应用于 Portal 元素的以空格分隔的类名字符串。
- portalContainer:用于表示当 usePortal 为 true 时覆盖层将其内容呈现到其中的容器元素。
- transitionDuration:用于指示叠加层的进入/离开转换需要多长时间,以毫秒为单位。
- transitionName:用于表示内部 CSSTransition 的过渡名称。
- usePortal:用于指示是否应将叠加层包装在 Portal 中,Portal 将其内容呈现在附加到 portalContainer prop 的新元素中。
创建 React 应用程序并安装模块:
第 1 步:使用以下命令创建一个 React 应用程序:
npx create-react-app foldername
第 2 步:创建项目文件夹(即文件夹名称)后,使用以下命令移动到该文件夹:
cd foldername
- 第 3 步:创建 ReactJS 应用程序后,安装 必需的 模块使用以下命令:
npm install @blueprintjs/core
项目结构:它将如下所示。
示例:现在在App.js文件中写下以下代码。在这里,App 是我们编写代码的默认组件。
App.js
import React from 'react'
import '@blueprintjs/core/lib/css/blueprint.css';
import { Overlay, Classes, H3, Button } from "@blueprintjs/core";
function App() {
// Open state
const [isOpen, setIsOpen] = React.useState(false)
return (
ReactJS Blueprint Overlay Component
I am sample Content of Overlay
);
}
export default App;
运行应用程序的步骤:从项目的根目录使用以下命令运行应用程序:
npm start
输出:现在打开浏览器并转到http://localhost:3000/ ,您将看到以下输出:
参考: https://blueprintjs.com/docs/#core/components/overlay