今天,我们非常高兴地宣布 Element Plus 稳定版正式发布。自第一个 commit 起,经过 1 年零 7 个月的持续迭代开发,总计 2635 commits,经过 256 位贡献者所提交的 2494 个 PR,137 个 Alpha 与 Beta 版本,在社区每一位同学的参与帮助下,Element Plus 的第一个正式版终于和大家见面。

重大更新

TypeScript 与 Vue 3

Element Plus 使用 TypeScript 与 Vue 3.2 开发,提供完整的类型定义文件。并使用 Composition API 降低耦合,简化逻辑。

兼容性

由于 Vue 3 不再兼容 IE,所以 Element Plus 也提高了最低兼容的版本。

Edge ≥ 79 Firefox ≥ 78 Chrome ≥ 64 Safari ≥ 12

如果想在低版本浏览器上正常使用 Element Plus,请自行使用 Babel、ESBuild 或其他转换工具,并引入相应的 polyfill。

值得注意的是,Element Plus 使用到了 ResizeObserver,如有兼容性需求需要您自行引入 resize-observer-polyfill。详情请参阅 ResizeObserver 的兼容性

ESM 与 CJS

Element Plus 同时支持 ESM、CJS 与 UMD 格式。一般情况下无需留意导入的格式,构建工具会自动匹配并转换成目标格式,同时无需额外配置,自身支持按需加载能力。

设计

组件大小体系由 default/medium/small/mini 切换为更自然的 large/default/small,以 default 为基础,需要加大则选择 large,需要缩小则选择 small

padding 方面则优化为更通用的 4px 体系,采用 4/8 px 作为原子单位控制整个系统的 padding 一致性。即大组件 padding 也大,小组件 padding 也小。具体细节请参阅 size 修改说明

图标

为了使用 Element Plus 内置的图标,用户往往需要引用一个 ~75KB 的字体文件,以及 1 个额外的网络请求,这个在大多数情况下属于完全不需要的开销,对体积以及首页加载速度很在意的用户来说,这属于是一个长久的痛点。

因此我们把所有的 Font Icon 都改为了 Inline Vue SVG 组件,也就是说所有的组件都是跟随你的打包代码一起放在同一个请求内,这样就不会产生额外的网络请求去请求字体文件,也不会带来网络请求失败导致字体渲染不出来的小方块,并且图标的清晰度也会更好。

您可以下载旧版本的字体文件来让老项目保持兼容。

配置

Element Plus 新增了一个全局配置管理的组件 config-provider,以替代 Element UI 的全局配置 Vue.prototype.$ELEMENT

您可以通过以下两种方式来进行全局配置。

// 方式一 main.ts
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import App from './App.vue' createApp(App).use(ElementPlus, { size: 'small' }).mount('#app') // 方式二 APP.vue
<template>
<el-config-provider :size="small">
<el-button>Button</el-button>
</el-config-provider>
</template>

如需了解更多 API 变动细节,请参阅 Element Plus 不兼容变化和升级指南

新组件和设计资源

在迁移完现有组件的基础上,正式版本中增加了 Space, Skeleton, EmptyAffix 四个全新组件丰富开发者的选择。以及增加了使用虚拟滚动的 Select-V2 组件来优化长列表的展示性能问题。

同时我们也制作上传了包含所有组件信息的最新 Figma 设计资源 文件,方便产品经理和设计师的使用。

正式版的发布意味着整体迁移适配工作的结束,API 设计基本稳定,但这只是一个开始。在后续的迭代工作中,我们将集中精力在优化交互细节,新增额外功能上,包括但不仅限以下内容:

暗色主题

正式版中,我们集成了 CSS Variables 的全新能力,这将比之前的 SASS 变量配置模式更方便且性能更好。在这套能力的基础上,我们正在紧张开发暗色主题,很快会在后续版本中与大家见面。

高性能表格组件

在 Beta 发布的时候,我们提到过提供使用虚拟化能力的表格,来优化大数据量情况下的 Table 组件性能。但本次的正式版发布暂未包含这部分功能,而会在后续的迭代中加入。一直没有把这个功能落地下来有很大一部分原因是,我们一直在探索到底哪一种方式是更加适合用户的。是我们直接加入虚拟化的表格渲染引擎,亦或是我们提供渲染接口让用户自己添加虚拟化的组件(类似 vue-virtual-scroller 这样的组件)来自行渲染。后续我们会参考结合现在市面上相关组件的实现,提供一套解决方案,让 Element Plus 的 Table 组件更加好用。

相关生态

Element Plus 正式版发布啦!🎉🎉的更多相关文章

  1. Appium路线图及1.0正式版发布

    Appium更新的速度极快,从我试用时候的0.12到1.0(0.18版本后就是1.0),完全符合移动互联网的节奏. 更新可能会慢,可以多试几次 整理了testerhome上思寒发表的帖子,让我们来看下 ...

  2. Angular2正式版发布,Wijmo抢先支持

    Angular2正式版发布 9月15日,Angular 2 的最终版正式发布了.作为 Angular 1 的全平台继任者 -- Angular 2 的最终版,意味着什么? 意味着稳定性已经得到了大范围 ...

  3. Redis 3.0正式版发布,正式支持Redis集群

    Redis是一个开源.基于C语言.基于内存亦可持久化的高性能NoSQL数据库,同时,它还提供了多种语言的API.近日,Redis 3.0在经过6个RC版本后,其正式版终于发布了.Redis 3.0的最 ...

  4. PyPy 2.1 正式版发布

    PyPy 2.1 Beta1 才刚刚在2天前发布,今天 PyPy 宣布 2.1 正式版发布. 值得关注的改进内容有: JIT support for ARM, architecture version ...

  5. Java 开源博客——B3log Solo 0.6.1 正式版发布了!

    Java 开源博客 —— B3LOG Solo 0.6.1 正式版发布了!欢迎大家下载. 该版本主要是改善细节体验,并加入了一款 Metro 风格的皮肤. 特性 基于标签的文章分类 Ping Goog ...

  6. Eclipse 4.3正式版发布

    Eclipse 4.3正式版发布 作者:chszs,转载需注明.博客主页: http://blog.csdn.net/chszs Eclipse 4.3版代号为Kepler. 主要特性如下: 1. E ...

  7. 最强 IDE Visual Studio 2017 正式版发布

    Visual Studio 2017 正式版发布,该版本不仅添加了实时单元测试.实时架构依赖关系验证等新特性,还对许多实用功能进行了改进,如代码导航.IntelliSense.重构.代码修复和调试等等 ...

  8. RestServer 2.0 正式版发布

    RestServer 2.0 正式版发布 使用许可&版权说明 在保持本软件完整的情况下可以将本软件用于任何商业用途. 本软件可以自由传播,但是请保持软件相关文件和说明文档完整. 未经许可不得将 ...

  9. React Suite v3.0 正式版发布

    React Suite v3.0 正式版发布 相信很多人会好奇,React Suite 是什么? React Suite 是 HYPERS 前端团队和 UX 团队开源的一套基于 React 的 UI ...

随机推荐

  1. Game(hdu5218)

    Game  Accepts: 138  Submissions: 358  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 131072/1 ...

  2. 一、golang以及vscode的安装和配置

    1.golang的下载安装 golang的官网最近好像整合了内容,统一到了一个地址:https://go.dev/ 首页直接点击download,下载自己对应的版本即可. 安装是傻瓜式的,一般默认安装 ...

  3. Mysql溯源-任意文件读取👻

    Mysql溯源-任意文件读取 前言 读了<MySQL蜜罐获取攻击者微信ID>的文章,文中说明了通过mysql蜜罐读取攻击者微信ID的过程,抱着学习的态度尝试了一下 原理 mysql中有一个 ...

  4. 读书笔记markdown模板

    读书笔记 书名 作者 出版社 阅读日期 书籍背景 书摘/ 笔记 批注 总结& 收获 读完每一本书,把书中的知识转化为「自己的智慧」,才是最扎实的收获- 他山之石 摘录相关精彩书评-

  5. sping练习,在Eclipse搭建的Spring开发环境中,使用工厂方式创建Bean对象,将创建的Bean对象输出到控制台。

    相关 知识 >>> 相关 练习 >>> 实现要求: 在Eclipse搭建的Spring开发环境中,使用工厂方式创建Bean对象,将创建的Bean对象输出到控制台.要 ...

  6. Android物联网应用程序开发(智慧城市)—— 摄像头监控界面开发

    效果: 布局代码: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns: ...

  7. Word批量设置表格自动调整

    1.说明 通过使用Word的宏功能, 批量设置表格, 根据窗口自动调整表格, 使所有表格的宽度和窗口一样, 而不用一个一个手动调整表格. 宏是一个批量处理程序命令, 正确地运用它可以提高工作效率. 微 ...

  8. hisql ORM 框架研究(国内第一个支持HANA的ORM框架)

    HiSql 操作说明文档 V1.0 下一代ORM框架 国内第一个支持HANA的ORM框架 hisql源码下载 git clone https://github.com/tansar/HiSql.git ...

  9. Python中切片方法总结

    对字符串或列表使用切片方法进行操作时 对包含[-1]的方法的使用经常用错 其实[-1]即指最后一个元素(同理[-2]指倒数第二个元素) 现总结如下 以便加深记忆 >>> li = [ ...

  10. 初识python: flush 实现进度条打印

    通过flush(强制刷新)实现,类似进度条打印: #!/user/bin env python # author:Simple-Sir # time:20180918 #打印进度条 import sy ...