📜  Notistack (1)

📅  最后修改于: 2023-12-03 15:33:12.285000             🧑  作者: Mango

Notistack

Notistack 是一个 React 消息通知库,可帮助程序员在应用程序中快速添加可定制的消息通知。它支持多种通知类型,包括成功、警告、错误和信息通知。Notistack 还提供了可自定义样式和行为的 API,使其适应各种项目的需求。

安装

安装 Notistack 很容易,只需使用 npm 或 yarn。

npm install notistack

yarn add notistack
用法

以下是 Notistack 的基本用法:

import React from 'react';
import { SnackbarProvider, useSnackbar } from 'notistack';

function MyComponent() {
  const { enqueueSnackbar } = useSnackbar();

  const handleClick = () => {
    enqueueSnackbar('这是一条通知', { variant: 'success' });
  };

  return (
    <div>
      <button onClick={handleClick}>Show Snackbar</button>
    </div>
  );
}

function App() {
  return (
    <SnackbarProvider>
      <MyComponent />
    </SnackbarProvider>
  );
}

export default App;
API
SnackbarProvider

SnackBarProvider 是 Notisack 的提供器组件。它将 Notisack 与 React 集成,并使其可在整个应用程序中使用。以下是 SnackbarProvider 的使用方法:

import { SnackbarProvider } from 'notistack';

function App() {
  return (
    <SnackbarProvider maxSnack={3}>
      <MyApp />
    </SnackbarProvider>
  );
}
useSnackbar

useSnackbar 是 Notisack 的自定义 hook。使用此 hook,可以轻松地在 React 组件中访问 Notisack API。

import { useSnackbar } from 'notistack';

function MyComponent() {
  const { enqueueSnackbar } = useSnackbar();

  const handleClick = () => {
    enqueueSnackbar('这是一条通知', { variant: 'success' });
  };

  return (
    <div>
      <button onClick={handleClick}>Show Snackbar</button>
    </div>
  );
}
enqueueSnackbar

enqueueSnackbar 是用于添加通知的函数。它接受以下参数:

  • message: string - 通知消息的文本内容。
  • options: object - 配置通知的选项。可选项包括:
    • variant: string - 通知类型。可选值为 'success', 'warning', 'error' 或 'info'。默认值为 'default'。
    • autoHideDuration: number - 自动隐藏通知的持续时间(毫秒)。默认值为 5000。
    • anchorOrigin: object - 通知的位置。默认值为 { vertical: 'bottom', horizontal: 'right' }。
import { useSnackbar } from 'notistack';

function MyComponent() {
  const { enqueueSnackbar } = useSnackbar();

  const handleClick = () => {
    enqueueSnackbar('这是一条通知', { variant: 'success' });
  };

  return (
    <div>
      <button onClick={handleClick}>Show Snackbar</button>
    </div>
  );
}
自定义样式

您可以使用 createMuiTheme 函数自定义主题。此函数返回一个基于 Material-UI 样式的主题对象。

以下是一个示例自定义主题:

import { createMuiTheme } from '@material-ui/core/styles';
import { SnackbarProvider } from 'notistack';

const theme = createMuiTheme({
  palette: {
    primary: {
      main: '#3f51b5',
    },
    secondary: {
      main: '#f50057',
    },
  },
});

function App() {
  return (
    <ThemeProvider theme={theme}>
      <SnackbarProvider maxSnack={3}>
        <MyApp />
      </SnackbarProvider>
    </ThemeProvider>
  );
}
结论

Notisack 是一个简单易用的 React 消息通知库。它提供了大量的配置项,可用于定制各种通知类型的样式和行为。如果您正在构建一个 React 应用程序,并需要添加消息通知功能,请尝试使用 Notistack。