Element Plus 正式版发布啦!🎉🎉
今天,我们非常高兴地宣布 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 组件,也就是说所有的组件都是跟随你的打包代码一起放在同一个请求内,这样就不会产生额外的网络请求去请求字体文件,也不会带来网络请求失败导致字体渲染不出来的小方块,并且图标的清晰度也会更好。
您可以下载旧版本的字体文件来让老项目保持兼容。
- unpkg.com/element-plus@1.1.0-beta.24/theme-chalk/base.css
- unpkg.com/browse/element-plus@1.1.0-beta.24/theme-chalk/fonts
配置
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, Empty 和 Affix 四个全新组件丰富开发者的选择。以及增加了使用虚拟滚动的 Select-V2 组件来优化长列表的展示性能问题。
同时我们也制作上传了包含所有组件信息的最新 Figma 设计资源 文件,方便产品经理和设计师的使用。
正式版的发布意味着整体迁移适配工作的结束,API 设计基本稳定,但这只是一个开始。在后续的迭代工作中,我们将集中精力在优化交互细节,新增额外功能上,包括但不仅限以下内容:
暗色主题
正式版中,我们集成了 CSS Variables 的全新能力,这将比之前的 SASS 变量配置模式更方便且性能更好。在这套能力的基础上,我们正在紧张开发暗色主题,很快会在后续版本中与大家见面。
高性能表格组件
在 Beta 发布的时候,我们提到过提供使用虚拟化能力的表格,来优化大数据量情况下的 Table 组件性能。但本次的正式版发布暂未包含这部分功能,而会在后续的迭代中加入。一直没有把这个功能落地下来有很大一部分原因是,我们一直在探索到底哪一种方式是更加适合用户的。是我们直接加入虚拟化的表格渲染引擎,亦或是我们提供渲染接口让用户自己添加虚拟化的组件(类似 vue-virtual-scroller 这样的组件)来自行渲染。后续我们会参考结合现在市面上相关组件的实现,提供一套解决方案,让 Element Plus 的 Table 组件更加好用。
相关生态
- Element Plus Icons - Element Plus 图标集合。
- Element Plus Playground - 您可以点击此处尝试!
- Element Plus Vite Starter - Vite 快速上手模板。
- unplugin-element-plus - Element Plus 按需加载样式插件。
- Design Materials - Element Plus 社区的 Logo、表情包与其他资源。
- awesome-element-plus - Element Plus 相关库、模板与资源的列表。
Element Plus 正式版发布啦!🎉🎉的更多相关文章
- Appium路线图及1.0正式版发布
Appium更新的速度极快,从我试用时候的0.12到1.0(0.18版本后就是1.0),完全符合移动互联网的节奏. 更新可能会慢,可以多试几次 整理了testerhome上思寒发表的帖子,让我们来看下 ...
- Angular2正式版发布,Wijmo抢先支持
Angular2正式版发布 9月15日,Angular 2 的最终版正式发布了.作为 Angular 1 的全平台继任者 -- Angular 2 的最终版,意味着什么? 意味着稳定性已经得到了大范围 ...
- Redis 3.0正式版发布,正式支持Redis集群
Redis是一个开源.基于C语言.基于内存亦可持久化的高性能NoSQL数据库,同时,它还提供了多种语言的API.近日,Redis 3.0在经过6个RC版本后,其正式版终于发布了.Redis 3.0的最 ...
- PyPy 2.1 正式版发布
PyPy 2.1 Beta1 才刚刚在2天前发布,今天 PyPy 宣布 2.1 正式版发布. 值得关注的改进内容有: JIT support for ARM, architecture version ...
- Java 开源博客——B3log Solo 0.6.1 正式版发布了!
Java 开源博客 —— B3LOG Solo 0.6.1 正式版发布了!欢迎大家下载. 该版本主要是改善细节体验,并加入了一款 Metro 风格的皮肤. 特性 基于标签的文章分类 Ping Goog ...
- Eclipse 4.3正式版发布
Eclipse 4.3正式版发布 作者:chszs,转载需注明.博客主页: http://blog.csdn.net/chszs Eclipse 4.3版代号为Kepler. 主要特性如下: 1. E ...
- 最强 IDE Visual Studio 2017 正式版发布
Visual Studio 2017 正式版发布,该版本不仅添加了实时单元测试.实时架构依赖关系验证等新特性,还对许多实用功能进行了改进,如代码导航.IntelliSense.重构.代码修复和调试等等 ...
- RestServer 2.0 正式版发布
RestServer 2.0 正式版发布 使用许可&版权说明 在保持本软件完整的情况下可以将本软件用于任何商业用途. 本软件可以自由传播,但是请保持软件相关文件和说明文档完整. 未经许可不得将 ...
- React Suite v3.0 正式版发布
React Suite v3.0 正式版发布 相信很多人会好奇,React Suite 是什么? React Suite 是 HYPERS 前端团队和 UX 团队开源的一套基于 React 的 UI ...
随机推荐
- StringBoot
1.首先我们需要依赖SpringBoot父工程,这是每个项目中必须要有的. <!--引入SpringBoot父依赖--><parent> <groupId& ...
- CS起源-havana地图红方打法分析
作者:海底淤泥 havana是美国第一人称射击游戏<反恐精英>中的地图之一,编号为cs_havana,这张地图发生在古巴哈瓦那的某座城市中,恐怖分子们挟持了几名美裔的重要政治人物,以此为筹 ...
- 【python】PyQt5 QAction 添加点击事件
def test(): #your function ui.yourQActionName.triggered.connect(lambda:test()) #添加lambda: 就不报错了
- libecc:一个可移植的椭圆曲线密码学库
libecc:一个可移植的椭圆曲线密码学库 这段时间要写毕设关于椭圆曲线的部分,就参考了一个椭圆曲线库的代码来编写.这个库中的代码的结构.风格和封装在我看来是十分完善的.用起来也比较方便,当作一个密码 ...
- HTML网页设计基础笔记 • 【第2章 排列页面内容】
全部章节 >>>> 本章目录 2.1 音频标签和视频标签 2.1.1 音频标签 2.1.2 视频标签 2.2 列表.div 以及 span 标签 2.2.1 列表标签 2. ...
- MySQL数据操作与查询笔记 • 【第3章 DDL 和 DML】
全部章节 >>>> 本章目录 3.1 使用 DDL 定义数据库表结构 3.1.1 SQL 简介 3.1.2 维护数据库和创建数据表 3.2 使用 DDL 维护数据库表结构 ...
- 分享一个自研开发的QA自动化审计工具-Sonar检查
评价一个系统或软件的质量高低,我始终认为除了需求和设计外,代码质量很重要,一个高质量的系统或软件,并不是被测试出来的,更多的是要靠设计和开发出来的.目前也有很多自动化的测试工具,更多的是从功能和性能角 ...
- 『无为则无心』Python函数 — 33、高阶函数
目录 1.高阶函数的定义 2.体验高阶函数 3.内置高阶函数 (1)map()函数 (2)reduce()函数 (3)filter()函数 1.高阶函数的定义 把函数作为参数传入(把一个函数作为另外一 ...
- 从Base64编码转换为图片文件
package luckyclient.utils;import java.io.FileInputStream;import java.io.FileOutputStream;import java ...
- github 创建网络仓库 ,使用git工具将本地文件上传/删除 --- 心得
1.前言 使用 git做项目控制版本工具,当然,使用SVN也可以,但是,git让人感觉更先进一些,与GitHub结合,用起来很方便,服务端由官网控制. 而SVN分客户端和服务端,都是个人控制,因此, ...