当前位置:首页 > React

react tooltip 实现

2026-01-26 16:07:47React

React Tooltip 实现方法

使用第三方库 react-tooltip

安装 react-tooltip 库:

npm install react-tooltip

引入并使用:

import React from 'react';
import { Tooltip } from 'react-tooltip';

const App = () => {
  return (
    <div>
      <button data-tooltip-id="my-tooltip" data-tooltip-content="Hello world!">
        Hover me
      </button>
      <Tooltip id="my-tooltip" />
    </div>
  );
};

export default App;

使用 CSS 自定义样式

通过 placevariant 等属性调整位置和样式:

<Tooltip 
  id="my-tooltip" 
  place="top" 
  variant="dark" 
  style={{ fontSize: '14px' }}
/>

动态内容

通过 data-tooltip-content 动态更新内容:

<button 
  data-tooltip-id="dynamic-tooltip" 
  data-tooltip-content={isActive ? "Active" : "Inactive"}
>
  Toggle
</button>
<Tooltip id="dynamic-tooltip" />

自定义组件作为 Tooltip

将 React 组件作为 Tooltip 内容:

const CustomContent = () => <div>Custom <b>HTML</b></div>;

<button data-tooltip-id="custom-tooltip">
  Hover for custom content
</button>
<Tooltip id="custom-tooltip">
  <CustomContent />
</Tooltip>

手动控制显示/隐藏

通过 TooltipisOpensetIsOpen

import { useState } from 'react';

const App = () => {
  const [isOpen, setIsOpen] = useState(false);
  return (
    <div>
      <button onClick={() => setIsOpen(!isOpen)}>
        Toggle Tooltip
      </button>
      <Tooltip 
        id="manual-tooltip" 
        isOpen={isOpen} 
        content="Manual control"
      />
    </div>
  );
};

延迟显示/隐藏

通过 delayShowdelayHide 控制延迟时间(毫秒):

<Tooltip 
  id="delayed-tooltip" 
  delayShow={500} 
  delayHide={200}
/>

无障碍支持

添加 aria-labelledbyaria-describedby 属性:

<button 
  data-tooltip-id="a11y-tooltip" 
  aria-labelledby="a11y-tooltip"
>
  Accessible Button
</button>
<Tooltip id="a11y-tooltip" content="Accessible tooltip" />

注意事项

  • 确保为每个 Tooltip 分配唯一的 id
  • 动态内容需通过 data-tooltip-content 或子组件更新。
  • 复杂样式建议通过 style 或 CSS 类名覆盖。

react tooltip 实现

标签: reacttooltip
分享给朋友:

相关文章

react 如何继承

react 如何继承

在React中,组件继承并非推荐的设计模式(官方更推崇组合优于继承),但技术上仍可通过以下方式实现类似效果: 使用ES6类继承 通过extends关键字继承父组件类,子组件可访问父组件的生命周期方…

react native如何启动

react native如何启动

如何启动 React Native 项目 安装 Node.js 和 npm 确保已安装 Node.js(建议版本 16 或更高)和 npm(Node.js 自带)。可通过以下命令检查版本: node…

如何react页面

如何react页面

创建 React 页面 使用 create-react-app 快速初始化项目: npx create-react-app my-app cd my-app npm start 基础页面结构 在…

react如何销毁

react如何销毁

React 组件销毁的机制 在 React 中,组件的销毁通常由 React 的生命周期管理。当组件从 DOM 中移除时,React 会自动触发销毁相关的生命周期方法。以下是关键点: 组件的销毁通…

react性能如何

react性能如何

React 性能特点 React 通过虚拟 DOM(Virtual DOM)和高效的 diff 算法优化性能。虚拟 DOM 减少了直接操作真实 DOM 的开销,仅在必要时更新变化的部分。React 的…

react如何读

react如何读

React 的发音 React 的发音为 /riˈækt/(音标),读作“瑞-艾克特”。其中: “Re” 发音类似英文单词 “read” 的开头部分。 “act” 发音与英文单词 “act” 一致。…