【前端】Element-UI和Element-Plus的区别

文章详细对比了Element-UI和其升级版Element-Plus在移动端支持、适用的Vue框架、以及具体组件如el-table、el-dialog、el-button、el-date-picker和图标库的使用上的不同。Element-Plus增强了移动端适配,支持Vue3,并引入了新的组件和插槽用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对移动端支持区别

Element-UI对应Element2:基本不支持手机版

Element-Plus对应Element3:组件布局考虑了手机版展示

框架区别

Element-ui适用于Vue2框架

Element-plus适用于Vue3框架

开发中使用的区别

el-table

 <template slot-scope="scope"></template>  // element
  <template #default="scope"></template>  // element-plus

el-dialog

  <!-- element -->
  <span slot="footer" class="dialog-footer">  
      <el-button @click="_cancel">取 消</el-button>
      <el-button type="primary" @click="save">保 存</el-button>
  </span>

  <el-dialog :visible="dialogVisible"></el-dialog>

<!-- element-plus -->
  <template #footer>
      <span class="dialog-footer">
          <el-button @click="_cancel">取 消</el-button>
          <el-button type="primary" @click="save">确 定</el-button>
      </span>
  </template>
  <el-dialog v-model="dialogVisible"></el-dialog>

在element-ui中的dialog有 :visible.sync属性 可进行父子组件之间的双向绑定(vue2写法)
具体的写法为:

//子组件
<el-dialog
:visible.sync="isShow">
</el-dialog>

需要在computed中进行告知操作

computed: {
    isShow: {
      get () {
        return this.visible;
      },
      set (val) {
        this.$emit('update:visible', val);
      }
    }
}

在props传值的时候

 props:{
    //控制弹窗的展示喝隐藏
    visible:{
      type:Boolean,
      default:false
    }
 }

vue3中 的写法为

<el-dialog 
:model-value="visible"
:before-close="handleClose">//要用:model-value不用v-model v-model报错有坑
</el-dialog>

在props接受父组件传来的值

  props: {
    visible: {
      type: Boolean,
      default: false
    }
 }

在setup中

setup(props,context){
	const methods = {
		handleClose(){
			context.emit('update:visible', false)
		}
	}
}

el-button

<!-- element -->
   <el-button type="text" @click="rowAdd(scope)">新增</el-button>
<!-- element-plus -->
   <el-button type="primary" link @click="rowAdd(scope)">新增</el-button>

el-date-picker

  <!-- element -->
  <el-date-picker 
  class="delay-times-picker dia-ipts" 
  v-model="ruleForm.releaseTime" 
  :picker-options="pickerBeginDateBefore" 
  default-time="00:00:00" 
  type="datetime" 
  value-format="yyyy-MM-dd HH:mm:ss" 
  placeholder="请选择发布时间">
  </el-date-picker>
  <!-- element-plus -->
  <el-date-picker 
  v-model="ruleForm.releaseTime" 
  :disabled-date="pickerBeginDateBefore" 
  :default-time="new Date(0,0,0,0,0,0)" 
  type="datetime" 
  value-format="YYYY-MM-DD HH:mm:ss" 
  placeholder="请选择发布时间">
  </el-date-picker>

el-icon

<!-- element -->
<i class="el-icon-edit"></i>
<!-- element-plus -->
<el-icon><component is="el-icon-edit" /></el-icon>

echarts

//引入
<!-- v2 -->
import echarts from 'echarts'
this.chart = echarts.init(document.getElementById('echarts-wrap'));
<!-- v3 -->
import * as echarts from 'echarts';
let chart = echarts.init(document.getElementById('echarts-wrap'));

不用响应式变量来获取echarts元素: 因为前者切换legend时会报错

Icon图标库变化了

新版本的图标库使用方式

<template>
  <div>
    <el-icon :size="size" :color="color">
      <edit></edit>
    </el-icon>
    <!-- Or use it independently without derive attributes from parent -->
    <edit></edit>
<el-icon><copy-document /></el-icon>
  </div>
</template>

组件的插槽slot使用变化了

同时可支持多个插槽
在这里插入图片描述

<el-autocomplete popper-class="my-autocomplete" v-model="state" :fetch-suggestions="querySearch" placeholder="请输入内容" @select="handleSelect" >
 <template #suffix>
 <i class="el-icon-edit el-input__icon" @click="handleIconClick"> </i> 
 </template>
 <template #default="{ item }">
 <div class="name">{{ item.value }}</div>
 <span class="addr">{{ item.address }}</span>
 </template>
 </el-autocomplete>

新增组件

  • Skeleton-骨架屏
  • Empty-空状态
  • Affix -固钉
  • TimeSelect 时间选择
  • Space 间距

来源

Element-ui和Element-Plus的区别_Element2和Element3的区别
关于element-plus(vue3)和element-ui(vue2)两个ui框架的不同和使用区别(持续更新)
element和element-plus使用区别

### Element-PlusElement-UI 的关系 Element-Plus Element-UI 是由同一团队开发的 UI 组件库,它们之间存在一定的继承发展关系。以下是两者的主要区别联系: #### 联系 - **同源性** Element-Plus 可以看作是 Element-UI 的升级版[^1]。它延续了 Element-UI 的设计理念,提供了类似的组件功能,并保持了一致的设计风格。 - **生态兼容性** 如果开发者熟悉 Element-UI 的使用方法,在迁移到 Element-Plus 时会发现许多概念逻辑相似,降低了学习成本。 --- #### 区别 ##### 1. Vue 版本支持 - **Element-UI**: 基于 Vue 2 开发,仅适用于 Vue 2 项目[^2]。 - **Element-Plus**: 针对 Vue 3 设计,充分利用 Composition API 其他 Vue 3 新特性[^2]。 ##### 2. 图标系统 - **Element-UI**: 使用字体图标(Font Icon),通过 `icon` 属性指定图标名称。 - **Element-Plus**: 改用了 SVG 图标系统,提供更灵活的自定义能力。例如,可以通过 `<el-icon>` 组件嵌套具体图标的子组件来实现[^3]: ```vue <template> <div> <!-- 自带属性 --> <el-icon :size="size" :color="color"> <Edit /> </el-icon> <!-- 独立使用 --> <Edit /> <el-icon> <CopyDocument /> </el-icon> </div> </template> ``` ##### 3. 功能扩展 - **Element-UI**: 提供基础的功能覆盖,满足大多数场景需求。 - **Element-Plus**: 不断引入新的组件增强现有组件的能力,例如新增的颜色选择器改进、时间范围限制等功能。 ##### 4. 性能优化 由于基于 Vue 3 构建,Element-Plus 在性能上有显著提升,尤其是在大规模应用中的渲染效率更高[^2]。 ##### 5. 社区支持 - **Element-UI**: 已进入维护阶段,不再有大版本更新。 - **Element-Plus**: 正处于活跃开发状态,社区贡献频繁,文档示例更加完善[^1]。 --- ### 结论 Element-PlusElement-UI 的下一代产品,旨在适配 Vue 3 并带来更好的用户体验技术支持。对于新项目推荐优先考虑 Element-Plus;而对于已有 Vue 2 项目的迁移,则需评估工作量并逐步过渡到 Vue 3 Element-Plus---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软泡芙

给爷鞠躬!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值