--- order: 8 title: 从 v4 到 v5 --- 本文档将帮助你从 antd `4.x` 版本升级到 antd `5.x` 版本,如果你是 `3.x` 或者更老的版本,请先参考之前的[升级文档](/docs/react/migration-v4-cn)升级到 4.x。 ## 升级准备 1. 请先升级到 4.x 的最新版本,按照控制台 warning 信息移除/修改相关的 API。 ## 5.0 有哪些不兼容的变化 ### 设计规范调整 - 基础圆角调整,由统一的 `2px` 改为四级圆角,分别为 `2px` `4px` `6px` `8px`,分别应用于不同场景,比如默认尺寸的 Button 的圆角调整为了 `6px`。 - 主色调整,由
`#1890ff` 改为 `#1677ff`。 - 整体阴影调整,由原本的三级阴影调整为两级,分别用于常驻页面的组件(如 Card)和交互反馈(如 Dropdown)。 - 部分组件内间距调整。 - 整体去线框化。 ### 技术调整 - 弃用 less,采用 CSS-in-JS,更好地支持动态主题。底层使用 [@ant-design/cssinjs](https://github.com/ant-design/cssinjs) 作为解决方案。 - 所有 less 文件全部移除,less 变量不再支持透出。 - 产物中不再包含 css 文件。由于 CSS-in-JS 支持按需引入,原本的 `antd/dist/antd.css` 也已经移除,如果需要重置一些基本样式请引入 `antd/dist/reset.css`。 - 移除 css variables 以及在此之上构筑的动态主题方案。 - 移除 `lib` 产物,只提供 `dist` 和 `es` 产物。 - 不再支持 `babel-plugin-import`,CSS-in-JS 本身具有按需加载的能力,不再需要插件支持。Umi 用户可以移除相关配置。 ```diff // config/config.ts export default { antd: { - import: true, }, }; ``` ### 兼容性调整 - 不再支持 IE 浏览器。 #### 组件 API 调整 - 组件弹框的 classname API 统一为 `popupClassName`,`dropdownClassName` 等类似 API 都会被替换。 - AutoComplete 组件 - Cascader 组件 - Select 组件 - TreeSelect 组件 - TimePicker 组件 - DatePicker 组件 - Mentions 组件 ```diff import { Select } from 'antd'; const App: React.FC = () => ( ); export default App; ``` - 组件弹框的受控可见 API 统一为 `open`,`visible` 等类似 API 都会被替换。 - Drawer 组件 `visible` 变为 `open`。 - Modal 组件 `visible` 变为 `open`。 - Dropdown 组件 `visible` 变为 `open`。 - Tooltip 组件 `visible` 变为 `open`。 - Tag 组件 `visible` 已移除。 - Slider 组件 `tooltip` 相关 API 收敛到 `tooltip` 属性中。 - Table 组件 `filterDropdownVisible` 变为 `filterDropdownOpen`。 ```diff import { Modal, Tag, Table, Slider } from 'antd'; const App: React.FC = () => { const [visible, setVisible] = useState(true); return ( <> -