ai全栈软件开发工程师day10
Element Plus 组件库与页面开发实战2026-07-12|第三阶段 · AI 应用 Web 开发|预计阅读 25 分钟文章目录一、今日学习内容概览二、Element Plus 组件库入门与主题定制三、登录页面开发:表单验证与 JWT 鉴权四、文章列表页:Table 分页排序与搜索过滤五、创作页面:富文本编辑器与 AI 生成六、路由守卫与权限控制七、今日踩坑记录八、收获总结九、明日学习计划第三阶段的第三天,今天终于进入了最激动人心的环节——页面开发实战!前两天的基础工作(Vue 3 语法、Pinia 状态管理、Axios 请求封装)都是为了今天能高效地搭建出"智能写手"前端项目的核心页面。Element Plus 是 Vue 3 生态中最成熟的企业级 UI 组件库,背靠饿了么大前端团队,组件丰富、文档完善、社区活跃。今天我将用它来完成三个核心页面的开发:登录页、文章列表页、创作页。同时整合之前封装好的 Axios 和 Pinia,打通从前端到后端的完整链路。一、今日学习内容概览Element Plus 组件库:安装与按需引入、主题定制、常用组件实战(Form / Table / Dialog / Pagination / Menu)登录页面开发:表单验证规则、JWT Token 存储(Pinia + localStorage)、登录状态持久化文章列表页:ElTable 数据展示、分页排序、搜索过滤、批量操作、数据导出创作页面:富文本编辑器(wangEditor)集成、Markdown 预览、AI 文本生成调用路由守卫:基于角色的权限控制、未登录拦截、动态路由加载阶段里程碑:今天是第三阶段第 3 天 / 共 20 天。经过今天的学习,"智能写手"前端项目已完成三大核心页面的 UI 开发与前后端联调,项目骨架基本成型。二、Element Plus 组件库入门与主题定制2.1 安装与按需引入Element Plus 支持完整引入和按需引入两种方式。完整引入简单但打包体积大;按需引入通过unplugin-vue-components和unplugin-auto-import实现自动导入,既保证开发体验又控制包体积。Bash终端# 安装 Element Plus npm install element-plus # 安装自动导入插件(推荐) npm install -D unplugin-vue-components unplugin-auto-importJavaScriptvite.config.js — 自动导入配置import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' export default defineConfig({ plugins: [ vue(), AutoImport({ resolvers: [ElementPlusResolver()], // 自动导入 Vue 和 Element Plus 的 API imports: ['vue', 'vue-router', 'pinia'], dts: 'src/auto-imports.d.ts' }), Components({ resolvers: [ElementPlusResolver()], dts: 'src/components.d.ts' }) ] })自动导入的好处:配置完成后,你可以在组件中直接使用ElButton、ElForm等组件,无需手动 import;同时ref、reactive、useRouter等 API 也会自动可用。编译时插件会自动帮你插入 import 语句,既省心又减少代码冗余。2.2 主题定制:打造品牌色系Element Plus 默认是蓝色主题,但我们的项目主色调是青绿色(#06d6a0)。通过 CSS 变量覆盖和 SCSS 配置,可以快速定制一套符合品牌调性的主题。SCSSstyles/element-theme.scss — 主题变量覆盖// 覆盖 Element Plus 的主色变量 @forward 'element-plus/theme-chalk/src/common/var.scss' with ( $colors: ( 'primary': ( 'base': #06d6a0, ), 'success': ( 'base': #22c55e, ), 'warning': ( 'base': #f59e0b, ), 'danger': ( 'base': #ef4444, ), ) ); // 引入组件样式(按需引入时需手动导入样式) @use 'element-plus/theme-chalk/src/index.scss' as *;JavaScriptmain.js — 引入自定义主题import { createApp } from 'vue' import App from './App.vue' // 引入自定义主题(覆盖默认蓝色) import './styles/element-theme.scss' // 引入 Element Plus 图标 import * as ElementPlusIconsVue from '@element-plus/icons-vue' const app = createApp(App) // 注册所有图标组件 for (const [key, component] of Object.entries(ElementPlusIconsVue)) { app.component(key, component) } app.mount('#app')2.3 暗黑模式适配我们的博客和学习路线都使用深色主题,Element Plus 也原生支持暗黑模式。只需在 html 标签上添加class="dark",并引入暗黑样式变量即可。JavaScriptcomposables/useDarkMode.js — 暗黑模式切换import { ref, watch } from 'vue' const isDark = ref(localStorage.getItem('theme') === 'dark') watch(isDark, (dark) = { const html = document.documentElement if (dark) { html.classList.add('dark') html.classList.remove('light') localStorage.setItem('theme', 'dark') } else { html.classList.add('light') html.classList.remove('dark') localStorage.setItem('theme', 'light') } }, { immediate: true }) export function useDarkMode() { return { isDark } }三、登录页面开发:表单验证与 JWT 鉴权3.1 登录表单 UI 与验证规则登录页是用户接触系统的第一个页面,既要美观又要安全。Element Plus 的ElForm组件内置了强大的表单验证能力,配合自定义校验规则可以实现复杂的验证逻辑。Vue SFCviews/LoginView.vue — 登录页面template div div div img / h2AI 智能写手/h2 p全栈 AI 内容创作平台/p /div el-form ref="formRef" :model="loginForm" :rules="loginRules" @keyup.enter="handleLogin" el-form-item prop="username" el-input v-model="loginForm.username" placeholder="用户名 / 邮箱" :prefix-icon="User" size="large" / /el-form-item el-form-item prop="password" el-input v-model="loginForm.password" type="password" placeholder="密码" :prefix-icon="Lock" show-password size="large" / /el-form-item el-form-item div el-checkbox v-model="rememberMe"记住我/el-checkbox a忘记密码?/a /div /el-form-item el-form-item el-button type="primary" size="large" :loading="loading" @click="handleLogin" { { loading ? '登录中...' : '立即登录' }} /el-button /el-form-item /el-form div p还没有账号?router-link to="/register"立即注册/router-link/p /div /div /div /template script setup import { ref, reactive } from 'vue' import { useRouter } from 'vue-router' import { useUserStore } from '@/stores/user' import { login } from '@/api/auth' import { ElMessage } from 'element-plus' import { User, Lock } from '@element-plus/icons-vue' const router = useRouter() const userStore = useUserStore() const formRef = ref(null) const loading = ref(false) const rememberMe = ref(false) const loginForm = reactive({ username: '', password: '' }) // 自定义验证规则 const validateUsername = (rule, value, callback) = { if (!value || value.trim() === '') { callback(new Error('请输入用户名或邮箱')) } else if (value.includes('@') !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value)) { callback(new Error('邮箱格式不正确')) } else { callback() } } const loginRules = { username: [ { required: true, validator: validateUsername, trigger: 'blur' } ], password: [ { required: true, message: '请输入密码', trigger: 'blur' }, { min: 6, max: 20, message: '密码长度需在 6-20 位之间', trigger: 'blur' }, { pattern: /^(?=.*[a-zA-Z])(?=.*\d).{6,20}$/, message: '密码必须同时包含字母和数字', trigger: 'blur' } ] } const handleLogin = async () = { const valid = await formRef.value.validate().catch(() = false) if (!valid) return loading.value = true try { const res = await login({ username: loginForm.username.trim(), password: loginForm.password }) // 存储登录状态 userStor

相关新闻

免费网盘直链下载助手完整教程:三步告别限速,实现满速下载

免费网盘直链下载助手完整教程:三步告别限速,实现满速下载

免费网盘直链下载助手完整教程:三步告别限速,实现满速下载 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国…

2026/7/29 10:35:39 阅读更多 →
GitHub精准下载神器:3分钟学会只下载你需要的代码文件

GitHub精准下载神器:3分钟学会只下载你需要的代码文件

GitHub精准下载神器:3分钟学会只下载你需要的代码文件 【免费下载链接】DownGit github 资源打包下载工具 项目地址: https://gitcode.com/gh_mirrors/dow/DownGit 还在为克隆整个GitHub仓库而烦恼吗?今天我要向你推荐一款GitHub文件精准下载工具…

2026/7/29 10:35:39 阅读更多 →
5分钟掌握EPubBuilder:浏览器内打造专业级EPUB电子书的终极方案

5分钟掌握EPubBuilder:浏览器内打造专业级EPUB电子书的终极方案

5分钟掌握EPubBuilder:浏览器内打造专业级EPUB电子书的终极方案 【免费下载链接】EPubBuilder 一款在线的epub格式书籍编辑器 项目地址: https://gitcode.com/gh_mirrors/ep/EPubBuilder 你是否曾经面对复杂的电子书制作软件感到无从下手?或者想要…

2026/7/29 10:35:39 阅读更多 →

最新新闻

Vue计算属性与侦听器核心区别与应用场景解析

Vue计算属性与侦听器核心区别与应用场景解析

1. 计算属性与侦听器的本质区别在Vue开发中,计算属性(computed)和侦听器(watch)都是用于响应数据变化的机制,但它们的核心设计理念和使用场景有着本质区别。理解这些差异是正确选择的关键。1.1 计算属性的设计哲学计算属性的核心特点是"声明式依赖追…

2026/7/29 10:46:46 阅读更多 →
Unity动画控制器:从状态机原理到角色动画实战应用

Unity动画控制器:从状态机原理到角色动画实战应用

1. 项目概述:从状态机到动画控制器 在Unity里做角色动画,如果你还停留在用脚本直接控制Animation组件播放“站立”、“奔跑”、“跳跃”这几个孤立的动画片段,那很快就会遇到瓶颈。当角色的行为逻辑变得复杂,比如从“奔跑”可以切…

2026/7/29 10:46:46 阅读更多 →
基于APDS-9960与WS2812B的手势感应灯光装置设计与实现

基于APDS-9960与WS2812B的手势感应灯光装置设计与实现

1. 项目概述:当手势遇见光,一只会“呼吸”的蝴蝶 几年前,我在一个创客展上第一次看到用Arduino控制LED灯带的作品,当时就觉得,如果能用更自然的方式与灯光互动,那该多酷。后来接触到手势传感器,…

2026/7/29 10:46:46 阅读更多 →
qmcdump:QQ音乐加密文件免费解密终极指南

qmcdump:QQ音乐加密文件免费解密终极指南

qmcdump:QQ音乐加密文件免费解密终极指南 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 你是否曾经遇到过从…

2026/7/29 10:46:46 阅读更多 →
从注意力机制到自注意力:深度学习核心突破解析

从注意力机制到自注意力:深度学习核心突破解析

1. 从注意力到自注意力:深度学习进阶的核心跃迁第一次接触注意力机制是在处理机器翻译任务时。当时用传统RNN模型处理长句子,效果总在20个词之后断崖式下跌,直到在论文里看到那个改变游戏规则的公式——注意力权重。这个看似简单的概率分布&a…

2026/7/29 10:46:46 阅读更多 →
TI CC35xx无线MCU架构深度解析:从Cortex-M33到Wi-Fi 6/BLE 5.4的物联网设计实战

TI CC35xx无线MCU架构深度解析:从Cortex-M33到Wi-Fi 6/BLE 5.4的物联网设计实战

1. 项目概述在嵌入式物联网设备的设计中,选型一颗合适的无线微控制器(MCU)往往是决定项目成败的关键第一步。这颗芯片不仅要能跑得动你的应用代码,还得处理好Wi-Fi或蓝牙的复杂协议栈,同时最好能兼顾安全、功耗和成本。…

2026/7/29 10:45:45 阅读更多 →

日新闻

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:00:23 阅读更多 →
AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础 在上一期「AI编程系列」中,我们学习了如何构建一个基础的 AI 问答系统,通过简单的输入输出让模型回应问题。但现实世界中的 AI 应用往往需要处理更复杂的场景:…

2026/7/29 0:00:23 阅读更多 →
AI智能体开发实战:从工具调用到企业级部署

AI智能体开发实战:从工具调用到企业级部署

1. 从被动问答到主动执行:AI Agent的范式转变过去两年,大语言模型最显著的应用形态是聊天机器人——用户提问,AI回答。但真正的生产力革命发生在2023年下半年:当AI学会主动调用工具完成任务时,生产力工具的历史被彻底改…

2026/7/29 0:00:23 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻