Element Plus 版本变更日志全解读:从 2.14 新特性到 1.x 演进史的开发者指南 Element Plus 版本变更日志全解读从 2.14 新特性到 1.x 演进史的开发者指南【免费下载链接】element-plus A Vue.js 3 UI Library made by Element team项目地址: https://gitcode.com/GitHub_Trending/el/element-plus本文以仓库根目录的 CHANGELOG.en-US.md 为骨架系统梳理 Element PlusVue 3 UI 组件库从1.0.1-beta.1到2.14.5的完整版本演进脉络如何读懂变更日志的版本号与分类体系、2.14/2.13 等近期版本的 Features 与 Bug fixes 明细、新组件与新 API 的引入时机、Breaking changes 的迁移要点以及背后 monorepo 工程化实践pnpm workspaces、vitest、类型化重构等的源码级印证。读完本文你将能快速从变更日志中定位某个组件或 API 的引入版本、理解版本升级的破坏性风险并掌握查询对应源码如 packages/components 下的组件目录的方法。一、变更日志的阅读方法论版本号、时间与分类体系1.1 版本号规则与迭代节奏Element Plus 采用语义化版本SemVer风格主版本.次版本.补丁版本。从日志可见主版本停留在1.x/2.x其中2.x系列自 2022 年 2 月 7 日发布2.0.0后成为主线在 2.x 内部2.13、2.14等次版本承载新特性Features而2.11.x、2.12.0等补丁/次版本则混合承载 Bug fixes 与少量新特性。发布节奏约为每 14 周一次例如2.14.52026-08-212.14.42026-08-072.14.32026-07-102.13.72026-04-102.13.62026-03-20每个版本条目下都标注了发布日期以下划线包裹的斜体时间和作者by 用户名以及PR 编号#24590形式方便回溯到具体提交与讨论。1.2 标准分类Features / Bug fixes / Refactors日志将每个版本的变更分为三类早期版本另有Breaking changes、Chore、Other等分类含义典型示例Features新增组件、属性、插槽、事件、i18n 语言、构建能力Components [notification] addprogressandpauseOnHoveroptions (#24565)Bug fixes修复缺陷、样式问题、类型错误、内存泄漏、SSR 兼容Components [textarea] prevent autosize scroll reset in Firefox (#24724)Refactors代码重构、类型优化、性能优化行为不变或仅内部变化Components use type-based definitions (#23366)Breaking changes破坏性变更升级需迁移2.2.0中 Button 移除typetext条目前缀还细分了影响范围Components、Directives、Hooks、Theme-chalk样式包、Locale国际化、Utils、Docs、Build、Deps、Types、Style等配合方括号中的组件名如[date-picker]可以精确检索某组件的变更历史。例如搜索a11y/accessibility在日志中出现 25 次反映无障碍改进贯穿始终。二、最新版本深度解析2.14.x 系列2026-05 ~ 2026-082.1 v2.14.5季度选择器与无障碍收尾发布日期 2026-08-21包含 2 个 Features 与 9 个 Bug fixesFeatures[date-picker]新增季度选择器quarter picker扩展了日期面板的类型能力#24490Theme-chalk暴露表单项 margin-bottom 变量#24752便于主题定制Bug fixes节选关键项[form-item]为校验消息添加alert角色#24680改善屏幕阅读器体验[input]向屏幕阅读器暴露字数限制计数#24679[date-picker]保持面板中disabled-date的响应式#24708[textarea]修复 Firefox 中 autosize 滚动位置重置#24724[loading]修复 Chrome 下 spinner 抖动问题#24737[tabs]修复 SSR 环境默认值导致标签闪烁#24742[select]匹配 input 包裹层过渡动画#24709[tree-v2]清空 keys 后同步选中状态#24756源码印证date-picker 组件位于 packages/components/date-picker其 props 定义在 packages/components/date-picker/src/props.ts面板相关的disabled-date响应式逻辑在 packages/components/date-picker/tests/date-picker.test.ts 中亦有测试覆盖该文件同时可检索到singlePanel相关用例。2.2 v2.14.4通知进度条与一系列健壮性修复发布日期 2026-08-07。核心新特性是[notification]新增progress与pauseOnHover选项#24565使通知组件支持进度展示与悬停暂停关闭。值得关注的 Bug fixesDirectives修复repeat-click在 mouseup 后未停止的问题#24573[table]停止直接修改父组件的filtered-value#24594避免数据污染[space]克隆 spacer vnode#24647[input]切换密码可见性时触发change事件#24342[table]表头卸载后避免空theadRef访问#24668[loading]避免 innerHTML 与 children 冲突#24675Refactors规范化各组件的*-class与*-styleprops#24418[popover]以 props 替代 attrs 以获得更好的类型推断#245712.3 版本组合视图2.14.3 ~ 2.14.1版本日期亮点2.14.32026-07-10[transfer]新增虚拟滚动支持#24367Play 启用 bundledDev2.14.22026-06-12[table]新增getHalfSelectionRows方法#24348[tour]保证受控currentprop#196752.14.12026-05-29[tabs]支持触摸滚动#24292[table]组件泛型化重构#242012.14.02026-05-08见下节2.4 v2.14.0季度级功能大版本这是 2.14 系列的功能主干2026-05-08Features 多达 11 项[date-picker]range-picker 支持singlePanel单面板模式#19498[input-number]新增tabindexprop#23582[tree/tree-v2/tree-select]的setChecked支持深层勾选#23591[input-otp]全新组件——一次性密码输入框#23634[input-number]新增formatter与parserprops#23271[select/select-v2]新增end-reached事件#23806[autocomplete]新增popper-options与show-arrowprops#24109[cascader]支持virtual-scroll、fitInputWidth、height、item-size#23877[message-box]向 vnode 传递 action-handlers#23901组件 style properties 支持 Boolean 值#24165源码印证input-otp组件目录为 packages/components/input-otp包含__tests__、src、style子目录与统一入口 packages/components/input-otp/index.ts其文档位于 docs/en-US/component/input-otp.md。该版本的破坏性/工程化变更移除el-teleport#23219[menu-item]的index属性改为必填#20453这是一个潜在破坏性变更构建系统为所有非入口文件生成正确 DTS#24179三、v2.13.x 系列全组件类型化重构浪潮2026-01 ~ 2026-042.13 系列最显著的特征是Refactors 数量暴增核心工程主题是组件改用类型化定义type-based definitions。3.1 v2.13.7 ~ 2.13.5功能补充与构建修复[input]新增count-graphemes按字素计数适配多字节字符#12041[dialog]支持点击将对话框置顶#23863[input]暴露passwordVisible#23921[button]支持 link/text 模式下的自定义颜色#24005[slider]允许step设为mark#23685[color-picker-panel]新增hue-slider-class/hue-slider-styleprops#234992.13.5 与 2.13.4 主要修复 locale dts 与构建问题3.2 v2.13.240 组件的类型化重构2.13.22026-01-30的 Refactors 列表长达约 40 条将input、affix、anchor、icon、card、link、tour、switch、check-tag、tag、empty、alert、scrollbar、container、watermark、autocomplete、steps、badge、breadcrumb、button、descriptions、input-number、col、row、input-tag、calendar、divider、result、page-header、rate、backtop、carousel、message、mention、countdown、image/image-viewer、collapse、menu-item、segmented、progress、splitter、popper、color-picker-panel、tree-v2、radio、avatar、statistic、skeleton、upload、text、tab-pane/bar、tooltip、cascader、timelineItem、popconfirm、color-picker、transfer、popover、form/form-item、dialog、time-select、notification、checkbox、drawer等全部组件迁移到类型化定义。工程意义这一轮重构意味着组件 props/emits 不再依赖运行时字符串推导而是通过 TypeScript 类型直接声明配合 packages/components 中各组件目录下的src文件如 packages/components/input/src/input.ts编辑器与编译器可获得更精确的类型提示与自动补全。3.3 v2.13.1 与 v2.13.0v2.13.12026-01-09引入多个实用特性[color-picker]新增clearableprop 与clear事件#22999[calendar]新增controller-type与formatterprops#23045[message-box]新增confirmButtonType/cancelButtonTypeprops#23193[avatar-group]全新组件#23211文档见 docs/en-US/component/avatar.md[upload]新增directoryprop#23265[form]新增setInitialValues/setInitialValue方法#23013[timeline]支持modeprop#22929v2.13.02025-12-19的核心变更升级到Vue 3.5#22096[dropdown]新增append-to#23001[switch]新增 active/inactive 插槽#22429[affix]支持append-to与teleported#23053[table-v2]无障碍增强#22983四、v2.10 ~ v2.12新组件批量落地的时代2025-06 ~ 2025-114.1 v2.12.0 与 v2.11.x菜单、表格、标签的可访问性深化[menu]对 title 的 tooltip 应用popper-class/popper-style#22908[table]、[tag]无障碍增强#22432、#22530[splitter]暴露splitterPanelRef#22791[tabs]新增default-valueprop抑制闪烁#22815[button-group]新增directionprop#18906[timeline]新增reverseprop#22931[drawer]新增resize-start/resize/resize-end事件#22784[cascader]暴露focus/blur方法#22737[virtual-list]支持触摸事件滚动#206282.12.0 的破坏性变更disabled值的优先级提升为最高#18739即组件显式传入 disabled 时不再被上下文覆盖。4.2 v2.11.0 与 v2.10.x抽屉可拖拽、分割面板、消息定位[drawer]新增resizableprop#21608Drawer 支持拖拽调整尺寸[splitter]新增lazyprop#21730[message]新增placement选项与方法#21747[date-picker-panel]将date-picker核心组件外部化#21331[color-picker-panel]将color-picker核心组件外部化#21668[notification]支持updateOffsets命令#21300[dialog]新增transition、modal-penetrableprops#21479、#21511[table]支持原生滚动条#21539[cascader]新增checkOnClickNode、show-checked-strategy、effect、header/footer插槽等一批 props#21089、#16922、#21507、#21486源码印证splitter组件目录为 packages/components/splitter含__tests__、src、style其文档位于 docs/en-US/component/splitter.md。segmented组件目录为 packages/components/segmented文档位于 docs/en-US/component/segmented.md。4.3 v2.9.x输入体验与国际化扩展[input]新增count-graphemes相关能力与inputmode支持#23813[time-picker]新增save-on-blurprop#23531[popover]通过插槽暴露hide()#23694[button]新增dashedprop#22738[config-provider]新增 table 配置#23610[select/select-v2]新增tag-tooltip配置对象 prop#23556i18n 大量新增语言老挝语lo、马拉雅拉姆语、特卢固语、印地语、挪威语no、缅甸语my、马来语ms、阿拉伯语ar-eg、斯瓦希里语sw、库尔德语ckb、阿塞拜疆语、孟加拉语、普什图语等语言文件位于 packages/locale/lang五、v2.5 ~ v2.8新组件集中涌现2024-01 ~ 2024-08这一阶段是 Element Plus 组件生态快速扩张期多个重要组件在此引入版本日期新增组件/关键能力2.8.02024-08-09mention 组件#17586[date-picker]新增yearrange类型[tree-v2]新增scrollTo方法2.7.02024-04-12segmented 组件#16258新增empty-values/value-on-clearprops支持 Node 182.6.02024-03-01anchor 组件#15670Carousel 运动模糊[date-picker]新增years类型多年选择2.5.02024-01-10tour 组件#14952[form]新增getField方法支持最近 2 个版本浏览器2.4.02023-10-13watermark 组件#14236[image-viewer]新增minScale/maxScale2.3.02023-03-12el-text 组件#11653[select/select-v2]新增max-collapse-tags同时期的重要特性还包括[dialog]/[drawer]支持拖拽与自定义子类#19099[image-viewer]新增showPreview方法、progress/toolbar插槽#19466、#19465、#19497[table]新增tooltip-formatter、allow-drag-last-column、row-expandable等 props#19524、#19374、#23140[config-provider]逐步支持 message、card、link、dialog、button 等全局配置#20723、#21483、#20773、#21684、#20726[checkbox-group]/[radio-group]支持optionsprop 渲染#21545、#21543、#22285、#22377[cascader]支持virtual-scroll虚拟滚动与max-collapse-tags#23877、#13386六、v2.0 ~ v2.4核心组件打磨与工程化奠基2022-02 ~ 2023-126.1 v2.2.0Button 的破坏性变更2.2.02022-05-09是 2.x 早期最重要的破坏性版本日志中给出了标准的迁移 diff 示例--- el-button typetext/ el-button text /即typetext从 button 移除改为布尔属性text。这展示了 Element Plus 变更日志对破坏性变更的处理方式在版本条目下提供#### Breaking changes小节并附迁移代码。其他里程碑2.1.x系列引入el-virtual-table/el-virtual-list虚拟列表渲染器#7273、#7081、tree-select 组件#68432.3.x系列el-text组件#11653、[select/select-v2]的max-collapse-tags#11378、#11405、scroll-into-view options#121642.4.0watermark 组件#14236、[select]无障碍增强#14503同时期完成了大量组件向script setup语法的迁移日志中数十条 switch to script-setup syntax以及从字体图标到 SVG 图标的全面切换#3492、#40746.2 样式体系演进CSS 变量与 Sass Map从 2.x 早期到 2.13 系列migrate css var迁移到 CSS 变量与 use sass map 重构持续进行。Theme-chalk 样式包位于 packages/theme-chalk其src下约 146 个 scss 文件构建配置见 packages/theme-chalk/buildfile.ts。日志中的相关条目如 #7344 scss css var namespace、#2504 generate color var by sass map印证了主题定制能力的演进路径。七、v1.x beta 时代从零到一的组件库基建2020-12 ~ 2022-011.x 系列1.0.1-beta.1至1.3.0-beta.10记录了组件库早期的基础能力建设新组件引入时间线Space#1002、Skeleton#953、Result#1818、Descriptions#1856、Scrollbar#1859、Empty#1210、Affix#1210、CheckTag#1696、SelectV2 虚拟化选择器#1906i18n 实现1.0.2-beta.59 完成 i18n 实现#2670为后续 60 语言支持奠基工程化关键节点升级 Vue 3.1.1#2220、升级 Vue 3.2.x#3031、引入 pnpm 替代 yarn#3571、async-validator 升级至 4.0.3#3667、支持自定义 namespace#5377构建体系支持 esm 与压缩全量包#3677、sideEffects 标注#3721、web-types.json 代码提示#1662八、Breaking Changes 汇总与迁移清单将散落在各版本中的破坏性变更整理如下版本破坏性变更迁移方式2.2.0el-button移除typetext改用el-button text /见 docs/en-US/component/button.md2.12.0组件disabled值优先级最高显式 disabled 不再被上下文覆盖检查动态传值场景2.14.0[menu-item]的index属性必填为所有 el-menu-item 补充 index2.14.0移除el-teleport使用原生 Teleport 或替代方案2.9.0 / 2.7.0See #15834社区讨论编号按讨论指引迁移1.3.0-beta.1See #5037按讨论指引迁移此外2.13 系列将el-option、el-select-v2等组件标记了若干 deprecated API如[select]的value-key相关调整、popperAppendToBody标记废弃 #11509升级时需留意控制台 deprecation 警告。仓库配套参考迁移指南见 docs/en-US/guide/migration.md安装方式见 docs/en-US/guide/installation.md版本升级脚本见 scripts/update-version.ts。九、从变更日志看工程实践monorepo、测试与发布流程9.1 工作区与包结构根 package.json 声明了 pnpm workspacespackages/*、play、docs与 pnpm-workspace.yaml 对应。组件代码统一收敛于 packages/components约 90 个组件目录每个组件目录遵循index.tssrc/__tests__/style/的标准结构例如 packages/components/input-otp、packages/components/avatar-group。9.2 测试与 CI 的演变日志清晰记录了测试体系的迭代2021 年引入 Vitest 并逐步将单元测试从 jest 迁移Drop jest #7248、Vitest ui #71162022 年大量组件测试改用 JSX 编写如 use JSX in Unit test 条目数十条2024 年jest-coverage 替换为 vitest-coverage-action#15435SSR 测试ssr-testing目录ssr-testing/cases 下有 60 组件的 SSR 渲染用例CI 中启用 SSR testing#6710提交规范引入 commitlint cz-gitcommitlint.config.mjsCheck message when commit#8166并在 2.2.1 强制 commit message 校验#76099.3 版本发布脚本仓库提供 scripts/update-version.ts 与 scripts/gen-version.ts 自动化版本号维护postinstall钩子执行pnpm stub pnpm gen:version。CHANGELOG 本身由 CI 依据 conventional commits 自动生成2.2.0 后日志格式统一为Components [xxx] description (#PR by author)这也是为什么每个条目都可精确溯源到 PR。十、快速查阅指南按组件检索变更历史当你在升级 Element Plus 或排查某个组件行为时可按如下路径定位信息查引入版本在 CHANGELOG.en-US.md 中搜索组件名如[date-picker]按时间倒序阅读即可定位特性引入版本。查 API 详情对应组件文档位于 docs/en-US/component如date-picker.md、splitter.md。查源码实现组件源码位于 packages/components 下同名目录的src/中props/emits 定义集中在如packages/components/date-picker/src/props.ts之类的文件。查测试佐证组件__tests__/目录下的测试文件如date-picker.test.ts可验证行为与边界情况。查样式样式代码位于 packages/theme-chalk/src含约 146 个 scss 文件。结语从 2020 年 12 月的1.0.1-beta.1到 2026 年 8 月的2.14.5这份 6900 行的变更日志不仅是发布记录更是理解 Element Plus 设计演进、工程规范与迁移成本的第一手资料。透过 Features 可以看到组件能力季度选择器、虚拟滚动、可拖拽面板、无障碍的持续扩张透过 Bug fixes 可以看到跨浏览器、SSR、内存泄漏等真实场景的深度打磨透过 Refactors 可以看到类型化、CSS 变量化、script-setup 化等工程现代化进程。希望本文提供的版本地图与检索方法论能帮助你在版本升级与源码阅读中少走弯路。【免费下载链接】element-plus A Vue.js 3 UI Library made by Element team项目地址: https://gitcode.com/GitHub_Trending/el/element-plus创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考