Element UI 及 Element Plus框架

一,何为Element UI 及 Element Plus?

  1. 它们是前端框架。它是包含很多有自己风格的组件库。 
  2. Element目前有两个版本:element-ui 及 element-plus两个版本。
  3. 它将HTML的基础控件进行了封装,用户只需要调用这些控件就可以了。而不需要用CSS去调整风格。
  4. Element UI是一款基于Vue2.x 的界面框架;Element Plus是一款基于Vue3.x 的界面框架;
  5. 既然基于Vue,所以可以使用打包工具打包,例如 Vite或WePack 

  6. 当然Element UI与有React及Angular的版本了。

二、Element UI 与 Element Plus区别?

  1. Element UI框架的升级版(3.x)是Element Plus;Element Plus 目前还处于快速开发迭代中
  2. 由于 Vue 3 不再支持 IE11,Element Plus 也不再支持 IE 浏览器
  3.  Element-Plus 已经把vue的版本锁定了3.x;而Element UI是基于Vue 2.

三、Element UI 与 Element Plus使用

       方式一、直接引用方式,引用其CSS及JS,还有vue.js即可:        

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <!-- import CSS -->
  <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
</head>
<body>
  <div id="app">
    <el-button @click="visible = true">Button</el-button>
    <el-dialog :visible.sync="visible" title="Hello world">
      <p>Try Element</p>
    </el-dialog>
  </div>
</body>
  <!-- import Vue before Element -->
  <script src="https://unpkg.com/vue@2/dist/vue.js"></script>
  <!-- import JavaScript -->
  <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  <script>
    new Vue({
      el: '#app',
      data: function() {
        return { visible: false }
      }
    })
  </script>
</html>

方式二、使用npm加载,以下以Vue3.0为例:

1,创建一个Vue CLI项目:

2,添加element plus引用:        

import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'

//import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
import en from 'element-plus/dist/locale/en.mjs'

import App from './App.vue'

const app = createApp(App)
 
//切换控件内部的语言
app.use(ElementPlus, {
    // locale:zhCn,
     locale:en,
  })
  
  
app.mount('#app')

3,创建一个控件Helloworld.vue:

<template> 
  <div>
     <el-calendar v-model="value" />
  </div> 
</template>

 import { ref } from 'vue'
 
 export default {
    name: 'HelloWorld',
    data: function() {
        return { 
          value: ref(new Date()) 
        }
    },
    props: {
      msg: String
    }
} 

4,调用Helloworld.vue:

<template>
   <HelloWorld msg="Welcome to Your Vue.js App"/> 
</template>

<script>
  import HelloWorld from './components/HelloWorld.vue' 
  export default{
    name: 'App',
    components: {
       HelloWorld
    } 
  }
</script> 

结果:

注意:

1,使用element plus的时候,发现有些组件不能使用。查到问题,发现script加了lang="ts".

<script lang="ts" setup>

这个是说明这个组件是基于typescript的。去掉这个 lang="ts",很多组件还是可以用的。

2,本人也尝试过安装typescript,但发现安装这个以后,语法需要遵循typescript的语法,且会自动将js文件变成.ts文件。不习惯,所以我又卸载了。

3,vue3.x支持使用export或<script stepup>的方式。但有些初始化数据,还是需要使用<script stepup>(不然会报错):

例如:

<template>
   <el-table :data="tableData" style="width: 100%">
    <el-table-column prop="date" label="Date" width="180" />
    <el-table-column prop="name" label="Name" width="180" />
    <el-table-column prop="address" label="Address" />
  </el-table>
</template>

 
 <script   setup> 
        const tableData = [
                {
                    date: '2016-05-03',
                    name: 'Tom',
                    address: 'No. 189, Grove St, Los Angeles',
                },
                {
                    date: '2016-05-02',
                    name: 'Tom',
                    address: 'No. 189, Grove St, Los Angeles',
                },
                {
                    date: '2016-05-04',
                    name: 'Tom',
                    address: 'No. 189, Grove St, Los Angeles',
                },
                {
                    date: '2016-05-01',
                    name: 'Tom',
                    address: 'No. 189, Grove St, Los Angeles',
                } 
        ]  
   </script>

调用:

import {createRouter, createWebHashHistory} from "vue-router";

const  routes = [
    {
        path: "/",
        component: () => import("../views/HomePage.vue")
    },
    {
        path: "/home",
        component: () => import("../views/HomePage.vue")
    },
    {
        path: "/vip",
        component: () => import("../views/VipPage.vue")
    },
    {
        path: "/404",
        component: () => import("../views/ErrorPage.vue")
    },
    {
        path: "/:catchAll(.*)", // 不识别的path自动匹配404
        redirect: '/404',
    },
]


const router=createRouter({
    history: createWebHashHistory(),
    routes
})

export default router; 

结果:

 

<think>好的,我需要帮助用户了解Element Plus的官方文档及示例。首先,用户提到了几个引用内容,我需要结合这些信息来组织回答。 根据引用[1],Element Plus有Playground、Unplugin Element Plus和Nuxt Starter等工具。我应该介绍文档的主要结构,包括组件库、主题定制、国际化等部分。然后,引用[2]提到按需自动导入需要用到unplugin-auto-import和unplugin-vue-components插件,这部分需要详细说明如何在项目中配置,特别是安装和配置步骤。 接下来,用户可能想查看示例,引用[3]提到调试工具查看类名,所以可以建议用户使用浏览器的开发者工具来检查组件结构和样式。此外,官方文档中的组件示例可以直接在Playground中修改和测试,这也是引用[1]提到的内容。 需要注意按照用户的系统级指令,正确使用中文回答,数学公式用$...$,独立公式用$$...$$,但这里可能用不上数学公式。不过要确保LaTeX语法正确,虽然问题可能不涉及数学内容。然后生成相关问题,放在最后,并添加引用标识。 现在需要结构化回答,分为文档概览、核心功能、在线示例、项目集成和常见问题。每个部分都要引用对应的引用内容。例如,在项目集成部分提到按需导入的插件,引用[2];在在线示例部分提到Playground,引用[1]。 最后生成相关问题,可能涉及文档结构、按需导入、Nuxt整合、组件样式查看等,确保每个问题都有对应的引用来源。检查是否有遗漏的信息,比如引用[3]提到的滚动条处理和类名查看,这部分可以放在常见问题或调试建议里。 总结,回答要涵盖用户所需的信息,结合引用内容,结构清晰,分点说明,并正确标注引用。同时,生成的相关问题要覆盖用户可能进一步询问的方向,帮助其深入理解。</think>### Element Plus 官方文档及示例 Element Plus 是基于 Vue 3 的组件库,提供丰富的 UI 组件和工具。以下是其官方文档的核心内容和示例使用方式: --- #### 1. **文档概览** - **组件库**:包含表单、表格、弹窗、导航等 50+ 组件,每个组件文档提供 API 说明、代码示例和交互演示[^1]。 - **主题定制**:支持通过 SCSS 变量修改全局样式,或使用在线主题生成工具调整颜色、尺寸等。 - **国际化**:内置多语言支持(如中文、英文),可通过配置切换语言。 - **最佳实践**:提供常见场景的代码示例(如表单验证、表格分页、弹窗联动)。 --- #### 2. **核心功能** - **按需加载**:通过 `unplugin-auto-import` 和 `unplugin-vue-components` 插件实现自动导入组件,减少打包体积[^2]。 ```bash # 安装插件 npm install -D unplugin-auto-import unplugin-vue-components ``` ```javascript // vite.config.js 配置示例 import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' export default { plugins: [ AutoImport({ resolvers: [ElementPlusResolver()] }), Components({ resolvers: [ElementPlusResolver()] }) ] } ``` --- #### 3. **在线示例** - **Element Plus Playground**:提供交互式环境,可直接修改组件代码并实时预览效果[^1]。 - 示例:尝试调整按钮样式: ```vue <template> <el-button type="primary" @click="handleClick">点击触发</el-button> </template> ``` --- #### 4. **项目集成** - **Nuxt.js 整合**:使用 `Element Plus Nuxt Starter` 模板快速搭建服务端渲染应用。 - **调试技巧**:通过浏览器开发者工具检查组件 DOM 结构,例如菜单项的类名为 `el-menu-item`[^3]。 --- #### 5. **常见问题** - **样式覆盖**:若需修改组件默认样式,可通过 CSS 选择器或 `:deep()` 穿透作用域。 - **打包优化**:按需加载配置后,需检查构建结果是否包含冗余组件。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Jim-Zheng

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值