当前位置: 首页 > news >正文

Element Plus—— Element Plus 组件库集成与定制

背景问题:
需要快速构建 UI 界面,提高开发效率。

方案思考:
集成 Element Plus 组件库并进行主题定制。

具体实现:

// main.jsimport{createApp}from'vue'importElementPlusfrom'element-plus'import'element-plus/dist/index.css'// 按需引入主题importzhCnfrom'element-plus/es/locale/lang/zh-cn'constapp=createApp(App)// 全局配置 Element Plusapp.use(ElementPlus,{locale:zhCn,size:'default'// 'large', 'default', 'small'})

按需引入组件的完整示例:

// plugins/element-plus.jsimport{ElButton,ElMessage,ElMessageBox,ElNotification,ElInput,ElForm,ElFormItem}from'element-plus'constcomponents=[ElButton,ElInput,ElForm,ElFormItem]constplugins=[ElMessage,ElMessageBox,ElNotification]exportdefaultfunctionloadElementPlus(app){// 注册组件components.forEach(component=>{app.component(component.name,component)})// 注册插件plugins.forEach(plugin=>{app.config.globalProperties[`$${plugin.name}`]=plugin})}
// main.jsimport{createApp}from'vue'importAppfrom'./App.vue'importloadElementPlusfrom'@/plugins/element-plus'constapp=createApp(App)loadElementPlus(app)app.mount('#app')

主题定制示例:

// styles/element-variables.scss // 可以在这里覆盖 Element Plus 的 CSS 变量 :root { --el-color-primary: #1890ff; --el-color-success: #52c41a; --el-color-warning: #faad14; --el-color-danger: #f5222d; --el-color-info: #909399; // 字体大小 --el-font-size-base: 14px; --el-border-radius-base: 4px; }

使用组件的示例:

<template> <div class="element-demo"> <el-space> <el-button type="primary">主要按钮</el-button> <el-button type="success">成功按钮</el-button> <el-button type="warning">警告按钮</el-button> <el-button type="danger">危险按钮</el-button> <el-button type="info">信息按钮</el-button> </el-space> <el-form :model="form" :rules="rules" ref="formRef" style="margin-top: 20px;"> <el-form-item label="用户名" prop="username"> <el-input v-model="form.username" placeholder="请输入用户名" /> </el-form-item> <el-form-item label="邮箱" prop="email"> <el-input v-model="form.email" placeholder="请输入邮箱" /> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm">提交</el-button> <el-button @click="resetForm">重置</el-button> </el-form-item> </el-form> </div> </template> <script setup> import { ref, reactive } from 'vue' const formRef = ref() const form = reactive({ username: '', email: '' }) const rules = { username: [ { required: true, message: '请输入用户名', trigger: 'blur' }, { min: 3, max: 15, message: '长度在 3 到 15 个字符', trigger: 'blur' } ], email: [ { required: true, message: '请输入邮箱地址', trigger: 'blur' }, { type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] } ] } const submitForm = () => { formRef.value.validate((valid) => { if (valid) { console.log('提交表单:', form) } else { console.log('验证失败!') return false } }) } const resetForm = () => { formRef.value.resetFields() } </script>
http://www.jsqmd.com/news/282589/

相关文章:

  • 电商文案实战:用Qwen3-4B一键生成高转化商品描述
  • 语音识别前必做!FSMN-VAD模型高效预处理完整流程
  • 读人本智能产品设计6原则09链接(上)
  • YOLOv10官方镜像参数量对比:轻量化的秘密揭晓
  • GPEN多场景应用实战:证件照/婚礼摄影/档案修复全流程
  • 路径错误不再怕,YOLOv9镜像目录结构全解析
  • Emotion2Vec+ Large保姆级教程:从音频上传到结果导出完整步骤
  • 亲测有效!PyTorch通用开发环境适配RTX40系显卡
  • Qwen3-0.6B如何实现流式输出?Streaming参数设置详解
  • 惊艳!SAM 3打造的智能视频分割案例展示
  • 如何高效去除语音噪音?FRCRN-单麦-16k镜像一键推理方案详解
  • jEasyUI 条件设置行背景颜色
  • Java 泛型
  • Open-AutoGLM信息查询实测:12306车次一键获取
  • SVN 检出操作详解
  • SenseVoiceSmall性能对比:多语言转录中GPU利用率提升50%的秘诀
  • 支持实时录音与多格式导出|FunASR语音识别镜像实战
  • UI-TARS-desktop性能优化:让AI助手响应速度提升3倍
  • 用Open-AutoGLM控制手机,全程无需动手点击
  • ONNX导出后怎么用?cv_resnet18_ocr-detection跨平台部署教程
  • 轻松部署SenseVoice Small语音模型|支持文字+情感+事件标签识别
  • Day40 早停策略和模型权重的保存
  • AI说话人拆分实战:基于Speech Seaco的多角色语音处理
  • 如何验证MinerU安装成功?test.pdf运行结果查看指南
  • BERT填空AI生产环境落地:稳定性与兼容性实测报告
  • 从零部署DeepSeek OCR模型|WebUI镜像简化流程,支持单卡推理
  • GPEN教育场景应用:学生证件照自动美化系统搭建
  • 3步搞定Llama3部署:Open-WebUI可视化界面教程
  • YOLO26镜像功能全测评:目标检测新标杆
  • 为什么要学数字滤波器与C语言实现