logoAnt Design

⌘ K
  • 设计
  • 研发
  • 组件
  • 博客
  • 资源
  • 国内镜像
5.26.0
  • 组件总览
  • 通用
    • Button按钮
    • FloatButton悬浮按钮
      5.0.0
    • Icon图标
    • Typography排版
  • 布局
    • Divider分割线
    • Flex弹性布局
      5.10.0
    • Grid栅格
    • Layout布局
    • Space间距
    • Splitter分隔面板
      5.21.0
  • 导航
    • Anchor锚点
    • Breadcrumb面包屑
    • Dropdown下拉菜单
    • Menu导航菜单
    • Pagination分页
    • Steps步骤条
    • Tabs标签页
  • 数据录入
    • AutoComplete自动完成
    • Cascader级联选择
    • Checkbox多选框
    • ColorPicker颜色选择器
      5.5.0
    • DatePicker日期选择框
    • Form表单
    • Input输入框
    • InputNumber数字输入框
    • Mentions提及
    • Radio单选框
    • Rate评分
    • Select选择器
    • Slider滑动输入条
    • Switch开关
    • TimePicker时间选择框
    • Transfer穿梭框
    • TreeSelect树选择
    • Upload上传
  • 数据展示
    • Avatar头像
    • Badge徽标数
    • Calendar日历
    • Card卡片
    • Carousel走马灯
    • Collapse折叠面板
    • Descriptions描述列表
    • Empty空状态
    • Image图片
    • List列表
    • Popover气泡卡片
    • QRCode二维码
      5.1.0
    • Segmented分段控制器
    • Statistic统计数值
    • Table表格
    • Tag标签
    • Timeline时间轴
    • Tooltip文字提示
    • Tour漫游式引导
      5.0.0
    • Tree树形控件
  • 反馈
    • Alert警告提示
    • Drawer抽屉
    • Message全局提示
    • Modal对话框
    • Notification通知提醒框
    • Popconfirm气泡确认框
    • Progress进度条
    • Result结果
    • Skeleton骨架屏
    • Spin加载中
    • Watermark水印
      5.1.0
  • 其他
    • Affix固钉
    • App包裹组件
      5.1.0
    • ConfigProvider全局化配置
    • Util工具类
      5.13.0
何时使用
代码演示
基本用法
Hooks 配置
如何使用
基础用法
与 ConfigProvider 先后顺序
内嵌使用场景(如无必要,尽量不做嵌套)
全局场景(redux 场景)
API
App
主题变量(Design Token)
FAQ
CSS Var 在 <App component={false}> 内不起作用

App
包裹组件

提供重置样式和提供消费上下文的默认环境。
使用import { App } from "antd";
源码components/app
文档
编辑此页更新日志
版本自 5.1.0 起支持
文档贡献者
  • Affix固钉ConfigProvider全局化配置

    相关资源

    Ant Design X
    Ant Design Charts
    Ant Design Pro
    Pro Components
    Ant Design Mobile
    Ant Design Mini
    Ant Design Web3
    Ant Design Landing-首页模板集
    Scaffolds-脚手架市场
    Umi-React 应用开发框架
    dumi-组件/文档研发工具
    qiankun-微前端框架
    Ant Motion-设计动效
    国内镜像站点 🇨🇳

    社区

    Awesome Ant Design
    Medium
    Twitter
    yuque logoAnt Design 语雀专栏
    Ant Design 知乎专栏
    体验科技专栏
    seeconf logoSEE Conf-蚂蚁体验科技大会
    加入我们

    帮助

    GitHub
    更新日志
    常见问题
    报告 Bug
    议题
    讨论区
    StackOverflow
    SegmentFault

    Ant XTech logo更多产品

    yuque logo语雀-构建你的数字花园
    AntV logoAntV-数据可视化解决方案
    Egg logoEgg-企业级 Node.js 框架
    Kitchen logoKitchen-Sketch 工具集
    Galacean logoGalacean-互动图形解决方案
    xtech logo蚂蚁体验科技
    主题编辑器
    Made with ❤ by
    蚂蚁集团和 Ant Design 开源社区

    何时使用

    • 提供可消费 React context 的 message.xxx、Modal.xxx、notification.xxx 的静态方法,可以简化 useMessage 等方法需要手动植入 contextHolder 的问题。
    • 提供基于 .ant-app 的默认重置样式,解决原生元素没有 antd 规范样式的问题。

    代码演示

    基本用法

    获取 message、notification、modal 实例。

    CodeSandbox Icon
    codeblock
    codepen icon
    External Link Icon
    expand codeexpand code
    Hooks 配置

    对 message、notification 进行配置。

    CodeSandbox Icon
    codeblock
    codepen icon
    External Link Icon
    expand codeexpand code

    如何使用

    基础用法

    App 组件通过 Context 提供上下文方法调用,因而 useApp 需要作为子组件才能使用,我们推荐在应用中顶层包裹 App。

    tsx
    import React from 'react';
    import { App } from 'antd';
    const MyPage: React.FC = () => {
    const { message, notification, modal } = App.useApp();
    message.success('Good!');
    notification.info({ message: 'Good' });
    modal.warning({ title: 'Good' });
    // ....
    // other message, notification, modal static function
    return <div>Hello word</div>;
    };
    const MyApp: React.FC = () => (
    <App>
    <MyPage />
    </App>
    );
    export default MyApp;

    注意:App.useApp 必须在 App 之下方可使用。

    与 ConfigProvider 先后顺序

    App 组件只能在 ConfigProvider 之下才能使用 Design Token, 如果需要使用其样式重置能力,则 ConfigProvider 与 App 组件必须成对出现。

    tsx
    <ConfigProvider theme={{ ... }}>
    <App>
    ...
    </App>
    </ConfigProvider>

    内嵌使用场景(如无必要,尽量不做嵌套)

    tsx
    <App>
    <Space>
    ...
    <App>...</App>
    </Space>
    </App>

    全局场景(redux 场景)

    tsx
    // Entry component
    import { App } from 'antd';
    import type { MessageInstance } from 'antd/es/message/interface';
    import type { ModalStaticFunctions } from 'antd/es/modal/confirm';
    import type { NotificationInstance } from 'antd/es/notification/interface';
    let message: MessageInstance;
    let notification: NotificationInstance;
    let modal: Omit<ModalStaticFunctions, 'warn'>;
    export default () => {
    const staticFunction = App.useApp();
    message = staticFunction.message;
    modal = staticFunction.modal;
    notification = staticFunction.notification;
    return null;
    };
    export { message, notification, modal };
    tsx
    // sub page
    import React from 'react';
    import { Button, Space } from 'antd';
    import { message } from './store';
    export default () => {
    const showMessage = () => {
    message.success('Success!');
    };
    return (
    <Space>
    <Button type="primary" onClick={showMessage}>
    Open message
    </Button>
    </Space>
    );
    };

    API

    通用属性参考:通用属性

    自 antd@5.1.0 版本开始提供该组件。

    App

    参数说明类型默认值版本
    component设置渲染元素,为 false 则不创建 DOM 节点ComponentType | falsediv5.11.0
    messageApp 内 Message 的全局配置MessageConfig-5.3.0
    notificationApp 内 Notification 的全局配置NotificationConfig-5.3.0

    主题变量(Design Token)

    全局 Token如何定制?

    FAQ

    CSS Var 在 <App component={false}> 内不起作用

    请确保 App 的 component 是一个有效的 html 标签名,以便在启用 CSS 变量时有一个容器来承载 CSS 类名。如果不设置,则默认为 div 标签,如果设置为 false,则不会创建额外的 DOM 节点,也不会提供默认样式。