今天,我们非常高兴地宣布 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. .NET+Sqlite如何支持加密

    .NET+Sqlite如何支持加密 Sqlite SQLite 来源于公共领域 SQLite Is Public Domain. 确保代码不会受到任何专有或许可内容的污染,没有任何来自互联网上的未知来 ...

  2. 编写Java程序,定义一个类似于ArrayList集合类

    返回本章节 返回作业目录 需求说明: 设计一个类似于ArrayList的集合类ListArray. ListArray类模拟实现动态数组,在该类定义一个方法用于实现元素的添加功能,以及用于获取List ...

  3. (五)React Ant Design Pro + .Net5 WebApi:后端环境搭建-Autofac注入+ 泛型仓储

    一. 简介 Autofac与.Net Core自带DI的区别,大佬级的文章数不胜数.我只是根据实际应用简单介绍(非常简单的那种) 1.批量注入,自带DI需要自己写循环反射注入,Autofac现成方法, ...

  4. Kinaba及X-Pack插件安装

    Kibana可视化管理平台安装,以及Kibana安装X-Pack插件: 基于已经安装好的6.2.2版本的Elasticsearch,安装6.2.2版本的Kibana. 基于已经安装好的6.2.2版本的 ...

  5. 为什么要避免在 Go 中使用 ioutil.ReadAll?

    原文链接: 为什么要避免在 Go 中使用 ioutil.ReadAll? ioutil.ReadAll 主要的作用是从一个 io.Reader 中读取所有数据,直到结尾. 在 GitHub 上搜索 i ...

  6. Python_闭包

    闭包并不只是一个python中的概念,在函数式编程语言中应用较为广泛.理解python中的闭包一方面是能够正确的使用闭包,另一方面可以好好体会和思考闭包的设计思想. 1.概念介绍 首先看一下维基上对闭 ...

  7. linux 设置root 密码

    指令意思: sudo -i  是 切换到root权限 ,如果没有密码,则直接可以操作,有密码则会要求输入密码 sudo passwd root  是修改密码指令 ,回车后 提示输入新密码 新密码需要输 ...

  8. spring cloud --- 使用 actuator 热更新【刷新】单机配置文件

    1.前言 分布式微服务想要热更新配置文件,还需要 消息中间件 配合使用 ,一般使用 rabbitMQ 或 Kafka ,这里不解释 . 这篇随笔 只讲解 底层的 单机热更新配置文件 2.环境 spri ...

  9. Linux上天之路(九)之文件和文件夹的权限

    主要内容 linux 基本权限 linux特殊权限 linux隐藏权限 linux file ACL 权限 1. Linux的基本权限 使用ls -l filename 命令查看文件或文件夹详细权限 ...

  10. Word2010初识

    原文链接:https://www.toutiao.com/i6487370439910752782/ 认识Word Microsoft Office Word是微软公司的一个文字处理器应用软件. 启动 ...