LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

【Vue3】Element Plus组件库的基本使用

admin
2024年12月27日 14:25 本文热度 11
Element Plus 是一个基于 Vue 3 的组件库,提供了丰富的 UI 组件来帮助开发者快速构建网页应用


一.项目搭建
1.创建 Vue 3 项目
这里需要注意的是 在创建项目前 先确认是否安装nodejs

  • 使用vue - clivite来创建一个新的 Vue 3 项目。
  • vite为例,运行以下命令:

npm init vite@latest  项目名称  -- --template vue

  • 然后进入项目目录并安装依赖:

    cd my - element - plus - project
    npm install//项目初始化

      2.安装 Element Plus
      在项目目录下,通过npm安装 Element Plus
      npm install element - plus
      同时,你还需要安装 Element Plus 的图标库(如果需要使用图标)
      npm install @element - plus/icons - vue
      3.引入 Element Plus 到项目中
      main.js(或main.ts)文件中,引入 Element Plus 的样式和组件
      完整引入(适用于简单项目)
      import { createApp } from 'vue';import ElementPlus from 'element - plus';import 'element - plus/dist/index.css';import App from './App.vue';const app = createApp(App);app.use(ElementPlus);app.mount('#app');
      按需引入(推荐用于大型项目,以减小打包体积)

      • 首先,需要安装unplugin - element - plus插件,运行npm install -D unplugin - element - plus
      • 然后,在vite.config.js(对于vite项目)或vue.config.js(对于vue - cli项目)中进行配置:

      对于vite项目
      import { defineConfig } from 'vite';import ElementPlus from 'element - plus';import { ElementPlusResolver } from 'unplugin - element - plus';import vue from '@vitejs/repository - vue';export default defineConfig({  plugins: [    vue(),    ElementPlus({      resolvers: [ElementPlusResolver()],    }),  ],});

      • 对于vue - cli项目,需要使用babel - plugin - import来实现按需引入,配置相对复杂一些,主要是在babel.config.js文件中进行设置。


      二、组件使用
      1.按钮(Button)组件使用
      .vue组件文件中(例如App.vue),你可以使用Button组件
      完整引入 Element Plus 后的使用方式
      <template>  <el - button type="primary">主要按钮</el - button></template>
      按需引入后的使用方式可能需要先导入组件:
      import { ElButton } from 'element - plus';export default {  components: {    ElButton  }}
      然后在模板中使用
      <template>  <el - button type="primary">主要按钮</el - button></template>
      Button组件有多种属性,如type(按钮类型,包括primarysuccesswarningdanger等)、size(按钮大小,如largedefaultsmall)、disabled(是否禁用)等
      <el - button type="success" size="large" disabled>成功按钮(禁用)</el - button>
      2.表格(Table)组件使用
      在组件中定义表格的数据和列配置
      APP.vue:
        <template>  <el - table :data="tableData">    <el - table - column prop="date" label="日期"></el - table - column>    <el - table - column prop="name" label="姓名"></el - table - column>    <el - table - column prop="address" label="地址"></el - table - column>  </el - table></template><script>export default {  data() {    return {      tableData: [        {          date'2024 - 01 - 01',          name'张三',          address'北京市'        },        {          date'2024 - 01 - 02',          name'李四',          address'上海市'        }      ]    };  }};</script>
      表格组件可以进行排序、筛选等操作。例如,添加排序功能
      <el - table :data="tableData" style="width: 100%">  <el - table - column prop="date" label="日期" sortable></el - table - column>  <el - table - column prop="name" label="姓名"></el - table - column>  <el - table - column prop="address" label="地址"></el - table - column></el - table>
      还可以对表格进行分页。需要使用el - pagination组件
      <template>  <el - table :data="tableData">    <el - table - column prop="date" label="日期"></el - table - column>    <el - table - column prop="name" label="姓名"></el - table - column>    <el - table - column prop="address" label="地址"></el - table - column>  </el - table>  <el - pagination    @size - change="handleSizeChange"    @current - page - change="handleCurrentPageChange"    :current - page="currentPage"    :page - sizes="[5, 10, 20]"    :page - size="pageSize"    layout="total, sizes, prev, pager, next"    :total="total"  >  </el - pagination></template><script>export default {  data() {    return {      tableData: [],      currentPage1,      pageSize10,      total0    };  },  methods: {    async handleSizeChange(newPageSize) {      this.pageSize = newPageSize;      await this.fetchData();    },    async handleCurrentPageChange(newCurrentPage) {      this.currentPage = newCurrentPage;      await this.fetchData();    },    async fetchData() {      // 这里可以发送请求获取表格数据,根据currentPage和pageSize计算数据范围      // 假设已经有一个获取数据的函数getData      const data = await this.getData(this.currentPage, this.pageSize);      this.tableData = data.rows;      this.total = data.total;    }  },  mounted() {    this.fetchData();  }};

      3.表单(Form)组件使用

      • 定义一个表单,包括表单元素如输入框(el - input)、下拉框(el - select)等

      <template>  <el - form ref="form" :model="formData" label - width="80px">    <el - form - item label="姓名">      <el - input v - model="formData.name"></el - input>    </el - form - item>    <el - form - item label="年龄">      <el - input v - model="formData.age" type="number"></el - input>    </el - form - item>    <el - form - item label="性别">      <el - select v - model="formData.gender">        <el - option label="男" value="男"></el - option>        <el - option label="女" value="女"></el - option>      </el - select>    </el - form - item>    <el - form - item>      <el - button type="primary" @click="submitForm">提交</el - button>    </el - form - item>  </el - form></template><script>export default {  data() {    return {      formData: {        name'',        age'',        gender''      }    };  },  methods: {    submitForm() {      // 这里可以对表单数据进行验证和提交操作      console.log(this.formData);      // 假设已经有一个验证表单的函数validateForm      if (this.validateForm()) {        // 发送表单数据,例如使用axios发送请求        axios.post('your - api - url', this.formData);      }    },    validateForm() {      // 验证表单数据是否完整等,返回true或false      return this.formData.name && this.formData.age && this.formData.gender;    }  }};</script>
      三、样式定制
      1.主题定制
      Element Plus 提供了一些主题定制的方式。你可以通过修改CSS变量来改变组件的颜色等样式
      例如,在main.js(或main.ts)文件中,在引入 Element Plus 样式后,可以修改CSS变量:
      import { createApp } from 'vue';import ElementPlus from 'element - plus';import 'element - plus/dist/index.css';import App from './App.vue';const app = createApp(App);app.use(ElementPlus);app.mount('#app');// 主题定制const root = document.documentElement;root.style.setProperty('--el - color - primary', '#1890ff');
      这会将 Element Plus 组件的主要颜色(如按钮的主要颜色)修改为#1890ff
      2.组件样式覆盖

      • 如果你想对某个组件的特定样式进行修改,可以通过在自己的CSS文件中添加更具体的样式规则来覆盖 Element Plus 的默认样式。

      例如,要修改el - button的字体大小和背景颜色:

      • .el - button {font - size: 18px;background - color#f0f0f0;}
        注意,这种方式可能会影响到所有的el - button组件,如果你只想修改特定情况下的按钮样式,可以添加更具体的类名或者使用scoped样式(对于vue组件中的CSS)来限制样式的作用范围。


      虽然现在前端的组件库 多如牛毛 有时候会很难选择 但是使用下来 个人觉得 Element Plus 绝对是非常契合vue3项目的一个


      该文章在 2024/12/28 12:26:32 编辑过
      关键字查询
      相关文章
      正在查询...
      点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
      点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
      点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
      点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
      Copyright 2010-2024 ClickSun All Rights Reserved