# @douyinfe/semi-site-banner 中文文档

规范地址：https://npmcn.com/package/%40douyinfe/semi-site-banner/

版本：0\.1\.5
npm 元数据更新时间：2025-08-26T04:14:54.466Z
中文译文更新时间：2026-11-13T01:47:17.837Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40douyinfe/semi-site-banner
原文对照：https://npmcn.com/package/%40douyinfe/semi-site-banner/?lang=original

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：20.2 kB，16 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：6 个
- peer 依赖：react \>=16\.10\.2，react-dom \>=16\.10\.2
- 首次发布：2021-10-25T18:19:17.298Z
- 最新版本发布：2024-04-19T07:22:02.370Z
- 近 30 天下载量：2589（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：12（近 12 个月 0 个）

## 中文简介

半站点横幅

## 安装

```sh
npm install @douyinfe/semi-site-banner
```

也可以使用：`pnpm add @douyinfe/semi-site-banner`、`yarn add @douyinfe/semi-site-banner`、`bun add @douyinfe/semi-site-banner`

## README

### Semi site banner

used in [Semi Design](https://semi.design/)

## 安装

```shell
npm i @douyinfe/semi-site-banner
```

## 使用

UMD 版本由于 SSR 原因，没有将样式内联进去，因此 CSS 需要单独引入。

```jsx
import React from 'react';
import SemiSiteReactBanner from '@douyinfe/semi-site-banner';
import '@douyinfe/semi-site-banner/dist/index.css';

class App extends React.Component {
  render() {
    const data = {
      zh: {
            "title": "抖音系企业应用设计系统 Semi Design 开源啦 🎉",
            "href": "https://bytedance.feishu.cn/docx/doxcnuCrjVb0zQEnqpzYzsisXkc#doxcnCaqWgw0oOgGumcwu58G47f"
      },
      en: {
            "title": "Build sensible web app with Semi Design, now is open-sourced 🎉",
            "href": "https://bytedance.feishu.cn/docx/doxcnuCrjVb0zQEnqpzYzsisXkc#doxcnCaqWgw0oOgGumcwu58G47f"
      },
    };
  
    return (
      <div style={{ backgroundColor: '#FFF', padding: 20 }}>
        <SemiSiteReactBanner type="default" />
        <br />
        <SemiSiteReactBanner type="default" icon={null} />
        <br />
        <SemiSiteReactBanner data={data} icon={<IconGift style={{ color: '#FBCD2C' }} />} />
        <br />
        <SemiSiteReactBanner type="blue" />
        <br />
        <SemiSiteReactBanner type="colour" />
        <br />
        <SemiSiteReactBanner type="black" />
      </div>
    );
  }
}
```

## Data 配置

data 用于配置 banner 显示内容，可以选择直接通过 prop 配置和通过 TCC 配置。推荐使用 TCC 配置，可以动态更新。

-   通过 TCC 进行配置可以动态更新banner内容，用户点击关闭后如果 TCC 数据没有更新则不再打开；
-   通过 data prop 直接进行配置，用户关闭后 7 日内不会再显示。

# API 参考

| 参数名 | 说明 | 类型 | 默认值 |
| --- | --- | --- | --- |
| data | 通过 data prop 配置 banner | BannerData | null |
| type | 预设的几种背景色，可选 default、blue、colour、black | string | default |
| icon | 自定义通知icon，type 为default有默认icon | ReactNode | \- |
| closeIcon | 自定义关闭按钮 | ReactNode | `<IconClose />` |
| className | 自定义类名 | string | \- |
| style | 自定义样式 | CSSProperties | \- |
| onClose | 点击关闭按钮时的回调 | Function | () => {} |

```tsx
type BannerData = 
    BaseBannerData | // 直接通过 prop 配置
    ({ [x: string]: BaseBannerData;}); // 通过 TCC 配置

interface BaseBannerData {
  zh?: DataItem;
  en?: DataItem;
  style?: React.CSSProperties;
}

interface DataItem {
  title?: string;
  href?: string; // 完整的 url 链接
  path?: string; // 没有域名的 url 链接，用于站内跳转
}
```

## 常见问题

### @douyinfe/semi-site-banner 是什么？

半站点横幅

### 如何安装 @douyinfe/semi-site-banner？

在项目目录运行 npm install @douyinfe/semi-site-banner，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（\>=16\.10\.2）、react-dom（\>=16\.10\.2）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @douyinfe/semi-site-banner 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @douyinfe/semi-site-banner 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @douyinfe/semi-site-banner 可以商用吗？

@douyinfe/semi-site-banner 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @douyinfe/semi-site-banner 的下载量有多少？

根据 npm 官方下载统计，@douyinfe/semi-site-banner 在 2026/10/13 – 2026/11/11 这 30 天内被下载 2,589 次，日均约 86 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @douyinfe/semi-site-banner 还在维护吗？

最新版本 0\.1\.5 发布于 2024/04/19（2 年前）；至今共发布 12 个版本，其中过去 12 个月发布了 0 个；首次发布于 2021/10/26。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

