📅  最后修改于: 2023-12-03 15:34:39.872000             🧑  作者: Mango
react-laag是一个React库,提供可定制的弹出框和提示框,它使用CSS-in-JS的方式,不需要引入额外的依赖,体积较小,使用起来非常方便。
在Shell/Bash中使用npm安装react-laag:
npm install react-laag
react-laag主要提供了两个组件,Popover和Tooltip,它们都可以用于任何React应用。
Popover是一个非常实用的弹出框组件,可以用于显示菜单、提示信息等等。
在你的React应用中使用它非常简单,只需从react-laag导入Popover组件并将内容包裹在它内部即可:
import React from 'react';
import { Popover } from 'react-laag';
const MyButton = () => {
const [isOpen, setOpen] = React.useState(false);
return (
<>
<button onClick={() => setOpen(true)}>Click me</button>
{(isOpen || shouldRender) && (
<Popover
isOpen={isOpen}
onClose={() => setOpen(false)}
content={({ layerProps, isOpen }) => (
<div
ref={layerProps.ref}
style={{ ...layerProps.style, background: 'white', padding: 10 }}
>
Hello! This is a popover.
</div>
)}
placement={{
anchor: 'BOTTOM_CENTER',
autoAdjust: true,
snapToAnchor: false,
}}
arrowProps={{
round: true,
borderWidth: 1,
borderColor: '#EAEAEA',
backgroundColor: 'white',
}}
/>
)}
</>
);
};
Tooltip是一个类似于Popover的组件,它可以在鼠标悬停时弹出提示信息,通常用于解释一个特定功能。
在你的React应用中使用它非常简单,只需从react-laag导入Tooltip组件并将内容包裹在它内部即可:
import React from 'react';
import { Tooltip } from 'react-laag';
const MyButton = () => {
const [isOpen, setOpen] = React.useState(false);
return (
<Tooltip
isOpen={isOpen}
onClose={() => setOpen(false)}
target={<button onMouseEnter={() => setOpen(true)}>Hover me</button>}
content={({ layerProps, arrowProps }) => (
<div
ref={layerProps.ref}
style={{
...layerProps.style,
background: 'white',
padding: '5px 10px',
borderRadius: 3,
boxShadow: '0 0 10px rgba(0, 0, 0, 0.1)',
}}
>
Hello! This is a tooltip.
</div>
)}
placement={{
anchor: 'TOP_CENTER',
autoAdjust: true,
triggerOffset: 5,
}}
arrowProps={{
round: true,
borderWidth: 1,
borderColor: '#EAEAEA',
backgroundColor: 'white',
}}
/>
);
};
react-laag是一个非常实用的React库,可以帮助你快速实现可定制的弹出框和提示框,而且它还提供了很多选项可以让你自定义弹出框的样式和行为。如果你正在寻找这样的库,那么react-laag可能是你需要的。