当前位置:首页 > React

React如何实现通知

2026-01-15 09:57:12React

React 实现通知的方法

使用状态管理 在 React 组件中通过 useStateuseReducer 管理通知状态,触发状态更新时显示通知。适合简单场景,无需额外依赖。

import { useState } from 'react';

function Notification() {
  const [show, setShow] = useState(false);

  return (
    <div>
      <button onClick={() => setShow(true)}>Show Notification</button>
      {show && <div className="notification">Message</div>}
    </div>
  );
}

使用第三方库 借助成熟的库如 react-toastifynotistack 快速实现功能丰富的通知系统。支持自定义样式、自动关闭和队列管理。

import { ToastContainer, toast } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';

function App() {
  const notify = () => toast("Notification sent!");
  return (
    <div>
      <button onClick={notify}>Trigger</button>
      <ToastContainer />
    </div>
  );
}

结合 Context API 通过 React Context 全局共享通知状态,跨组件触发显示。适合中大型应用需要多处调用通知的场景。

const NotificationContext = createContext();

function Provider({ children }) {
  const [notifications, setNotifications] = useState([]);

  const addNotification = (message) => {
    setNotifications([...notifications, message]);
  };

  return (
    <NotificationContext.Provider value={{ addNotification }}>
      {children}
      <div className="notifications">
        {notifications.map((msg, i) => <div key={i}>{msg}</div>)}
      </div>
    </NotificationContext.Provider>
  );
}

自定义 Hook 封装 将通知逻辑抽象为自定义 Hook,实现复用和统一管理。例如封装显示时长、动画效果等配置。

function useNotification() {
  const [notification, setNotification] = useState(null);

  const show = (message, duration = 3000) => {
    setNotification(message);
    setTimeout(() => setNotification(null), duration);
  };

  return { notification, show };
}

样式与动画优化 通过 CSS 或动画库(如 Framer Motion)增强视觉体验。添加滑动、淡入淡出等效果提升交互友好度。

.notification {
  position: fixed;
  bottom: 20px;
  right: 20px;
  animation: fadeIn 0.3s;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

React如何实现通知

分享给朋友:

相关文章

如何实现vue表格联动

如何实现vue表格联动

实现 Vue 表格联动的方法 数据绑定与响应式更新 通过 Vue 的响应式特性,将多个表格的数据绑定到同一个数据源或计算属性。当一个表格的数据发生变化时,另一个表格会自动更新。例如: data()…

vue如何实现默认页面

vue如何实现默认页面

Vue 实现默认页面的方法 在 Vue 项目中,通常需要设置一个默认页面(如首页或登录页)作为用户访问时的初始页面。可以通过路由配置实现。 配置路由默认跳转 在 Vue Router 中,使用 r…

vue实现通知

vue实现通知

Vue 实现通知功能 在 Vue 中实现通知功能可以通过多种方式,以下是几种常见的方法: 使用第三方库 Vue 生态中有许多专门用于通知的第三方库,如 vue-notification 或 ele…

vue如何实现单选

vue如何实现单选

使用原生 HTML 单选按钮 在 Vue 中可以直接使用 HTML 的原生单选按钮,通过 v-model 绑定数据。 <template> <div>…

h5如何实现蜡烛点亮

h5如何实现蜡烛点亮

实现蜡烛点亮的H5方法 在H5中实现蜡烛点亮效果,可以通过CSS动画、Canvas绘图或结合JavaScript交互来实现。以下是几种常见的方法: 使用CSS动画和JavaScript 通过CSS…

vue如何实现图

vue如何实现图

Vue 实现图表的方法 Vue 中实现图表可以通过多种方式,常见的有使用第三方库或自定义实现。以下是几种常见的方法: 使用 ECharts ECharts 是一个功能强大的图表库,支持多种图表类型…