研发效能DevOps: Vite 使用 Element Plus
目录
一、实验
1.环境
2.初始化前端项目
3.安装 vue-route
4.安装 pinia
5.安装 axios
6.安装 Element Plus
7.gitee创建工程
8. 配置路由映射
9.Vite 使用 Element Plus
二、问题
1.README.md 文档推送到gitee未自动换行
2.访问login页面显示空白
3.表单输入账户与密码,按钮依然为禁用状态
一、实验
1.环境
(1)主机
表1 主机
| 系统 | 软件 | 版本 | 备注 |
| Windows11 | VS Code | 1.96.2 | |
| Node.js | v18.20.4(LTS) |
运行(输入cmd)

查看VS Code版本
Code --version

查看node版本
node -v

查看npm版本
npm -v

2.初始化前端项目
(1)安装vite
cnpm create vite@latest
输入y,然后选择vue
接下来选择JavaScript

(2)安装依赖
切换目录
cd vite-axios
![]()
这里切换cnpm安装依赖
cnpm install

(3) 运行
npm run dev

弹出界面:

可以访问到Vite + Vue
http://localhost:5173/
(4)退出
CTRL + C 结束

输入Y

3.安装 vue-route
(1) 查阅
https://router.vuejs.org/zh/installation.html
(2) 安装vue-router
使用cnpm安装
cnpm install vue-router@4

(3) main.js集成路由
导入router
import router from './router'
注册路由
const app = createApp(App)
app.use(router)
app.mount('#app')
修改前:

修改后:

(4)创建路由配置目录router

(5) router下创建index.js (实现组件与路由映射)

(6)修改index.js
导入创建路由的方法
import { createWebHistory, createRouter } from 'vue-router'
定义路由映射
const listRoutes = {}const routes = [listRoutes,
]
创建路由实例
const router = createRouter({history: createWebHistory(),routes,
})
导出默认路由
export default router
(7) 运行
npm run dev

弹出界面:

可以访问到Vite + Vue
http://localhost:5173/
(8)退出
CTRL + C 结束

输入Y

4.安装 pinia
(1) 查阅
https://pinia.vuejs.org/zh/getting-started.html
(2) 安装pinia
使用cnpm安装
cnpm install pinia

(3) main.js集成pinia
导入创建pinia的方法
import { createPinia } from 'pinia'
注册pinia
const pinia = createPinia()
app.use(router).use(pinia)
app.mount('#app')
修改前:

修改后:

(5)创建全局状态(容器)目录store

(6)store下创建index.js

(7)修改index.js
导入定义Store
import { defineStore } from 'pinia'
state 是 store 的数据 (data),getters 是 store 的计算属性 (computed),而 actions 则是方法 (methods)
export const useStoreDemo = defineStore('storeDemo', {state: () => {return {msg: "This is Pinia"} },getters: {},actions: {changeStoreDemo(value) {this.msg = value}}
})

5.安装 axios
(1) 查阅
https://www.axios-http.cn/docs/intro
(2)安装axios
使用cnpm安装
cnpm install axios
(3) 创建封装目录api

(4)api下创建index.js

(5)修改 index.js
import axios from 'axios'
const request = (url = '', data = {}, method = "get", timeout = 5000) => {return new Promise((resolve, reject)=>{const methodLower = method.toLowerCase() if (methodLower === 'get') {axios({method: methodLower,params: data,timeout: timeout,url: url,}).then((response)=>{resolve(response)}).catch((error)=>{reject(error)})} else if (methodLower === "post") {axios({method: methodLower,data: data,timeout: timeout,url: url,}).then((response)=>{resolve(response)}).catch((error)=>{reject(error)})}})
}export default request
6.安装 Element Plus
(1) 查阅
https://element-plus.org/zh-CN/guide/installation.html

(2)安装Element Plus
使用cnpm安装
(--save 参数 在装的时候会把包的信息写入package.json )
cnpm install element-plus --save

(3) 查看package.json

(4)查阅
https://element-plus.org/zh-CN/guide/quickstart.html

(5)main.js集成Element Plus
……
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
……
app.use(router).use(pinia).use(ElementPlus)
修改前:

修改后:

(6) 运行
npm run dev

弹出界面:

可以访问到Vite + Vue
http://localhost:5173/
F12 查看控制台 (目前暂未配置路由)

(7)退出
CTRL + C 结束

输入Y

7.gitee创建工程
(1)新建仓库
https://gitee.com/

(2)创建

(3)创建 git 仓库
git init
![]()
git add .

git add -A
![]()
git commit -m "项目初始化配置"

XXXXXXXX/vite-scaffold为创建的gitee仓库
git remote add origin git@gitee.com:XXXXXXXX/vite-scaffold.git
![]()
git push -u origin "master"

(4) gitee查看

(5)修改README.md
# scaffold项目初始化配置cnpm create vite@latest
cnpm install
cnpm install vue-router@4
cnpm install pinia
cnpm install axios
cnpm install element-plus --save

(6)git查看状态
git status

(7) 提交并推送
git commit -am "修改文档"

git push -u origin "master"

(8)gitee查看

8. 配置路由映射
(1)创建页面组件目录view

(2)view下创建多个组件
Login.vue

然后把compoents下的HelloWorld.vue 内容,复制到Login.vue

(3)修改router下的index.js
通过懒加载形式把Login.vue导入
const Login = () => import('../view/Login.vue')
添加路由映射关系
……
const routes = [listRoutes,{path: "/login",component: Login,}
]
^

(4)路由输出到App.vue
修改App.vue
……
<router-view></router-view>
……

(5) 运行
npm run dev

弹出界面:

可以访问到Vite + Vue
http://localhost:5173/login
(6)退出
CTRL + C 结束

输入Y

9.Vite 使用 Element Plus
(1)查阅
https://element-plus.org/zh-CN/component/card.html

(2)修改Login.vue
添加卡片
<template><el-card class="box-card"><p v-for="o in 4" :key="o" class="text item">{{ 'List item ' + o }}</p></el-card>
</template>
样式
<style scoped>.text {font-size: 14px;} .item {padding: 18px 0;}.box-card {width: 480px;}
</style>

(3) 访问到Vite + Vue
http://localhost:5173/login

(4)git查看状态
git status

(5) 提交
git add -Agit commit -am "首页路由配置"

(6)添加标题元素
修改Login.vue
……
<h2>DevOps系统</h2>
……

(7) 访问到Vite + Vue
http://localhost:5173/login

(8)查阅表单
https://element-plus.org/zh-CN/component/card.html

(9)添加表单
修改Login.vue
<el-form:model="loginInfo"status-icon:rules="rules"><el-form-item prop="username"><el-input v-model.number="loginInfo.username" /></el-form-item><el-form-item prop="password"><el-input v-model="loginInfo.password" type="password" autocomplete="off" /></el-form-item><el-form-item><el-button type="primary" @click="submitForm(ruleFormRef)">登录</el-button></el-form-item></el-form>
(10)访问到Vite + Vue
http://localhost:5173/login

(11)查阅输入框与图标
输入框
https://element-plus.org/zh-CN/component/input.html

图标
https://element-plus.org/zh-CN/component/icon.html

(12)安装图标
cnpm install @element-plus/icons-vue --save

(13)找到username图标
https://element-plus.org/zh-CN/component/icon.html

点击图标

显示已复制
![]()
获取到图标信息:
<el-icon><User /></el-icon>
(14)找到password图标

点击图标

显示已复制
![]()
获取到图标信息:
<el-icon><Lock /></el-icon>
(15) 添加图标,并将图标映射到输入框中
修改Login.vue
……
import { User,Lock } from '@element-plus/icons-vue';
……
:prefix-icon="User"
……
:prefix-icon="Lock"
……

(16)访问到Vite + Vue
http://localhost:5173/login

(17)git提交
git commit -am "输入框与按钮配置"

(18)查阅输入框设置固定宽度
https://element-plus.org/zh-CN/component/input.html

(19)添加clearable 图标
修改Login.vue
clearable

(20)访问到Vite + Vue
http://localhost:5173/login

(21)查阅切换密码图标

(22)添加切换密码图标
修改Login.vue
show-password

(23)访问到Vite + Vue
http://localhost:5173/login

(24)查阅输入框占位文本

(25)添加输入框占位文本
修改Login.vue
……
placeholder="请输入账户名"
……
placeholder="请输入密码"
……

(26)访问到Vite + Vue
http://localhost:5173/login

(27)查阅表单校验
https://element-plus.org/zh-CN/component/form.html

(28)表单添加校验
修改Login.vue
import { reactive,ref } from 'vue';
……
const loginRef = ref()
const rules = reactive({username: [{ required: true, message: '请输入账户名', trigger: 'blur' },],password: [{ required: true, message: '请输入密码', trigger: 'blur' },],
})
……
ref="loginRef"
:rules="rules"
……

(29)访问到Vite + Vue
http://localhost:5173/login

(30)查阅按钮禁用状态
https://element-plus.org/zh-CN/component/button.html

(31)登录按钮添加禁用状态
import { watch } from 'vue';
……
let loginButtonDisabled = ref(true)
watch([() => loginInfo.username,() => loginInfo.password],() =>{loginRef.value.validate((valid)=>{if(valid){loginButtonDisabled = false} else {loginButtonDisabled = true}})
})
……
:disbaled="loginButtonDisabled"
……

(32)访问到Vite + Vue
http://localhost:5173/login
未输入账户或密码。登录按钮为禁用状态 (浅蓝色)
未输入密码。登录按钮为禁用状态 (浅蓝色)

输入账户与密码。登录按钮为启用状态 (深蓝色)

(33)git提交
git commit -am "输入框与按钮配置"

二、问题
1.README.md 文档推送到gitee未自动换行
(1)问题
README.md写好内容时,发现它缩到一起了,不是想要的格式

(2)原因
换行末尾,未打上空格。
(3)方法
直接在要换行的语句最后打上2个空格

git push后,成功换行

2.访问login页面显示空白
(1)问题
访问login页面空白
(2)原因
渲染配置错误
(3) 方法
修改前
![]()
修改后:
![]()
成功:

3.表单输入账户与密码,按钮依然为禁用状态
(1)问题
表单输入账户与密码,按钮依然为禁用状态 (浅蓝色)

(2)原因分析
watch监听状态的值判断需要配置正确
(3)方法
修改watch监听里if判断
修改前:

修改后:

成功:
图标显示(深蓝色)

相关文章:
研发效能DevOps: Vite 使用 Element Plus
目录 一、实验 1.环境 2.初始化前端项目 3.安装 vue-route 4.安装 pinia 5.安装 axios 6.安装 Element Plus 7.gitee创建工程 8. 配置路由映射 9.Vite 使用 Element Plus 二、问题 1.README.md 文档推送到gitee未自动换行 2.访问login页面显示空白 3.表单输入账户…...
sfnt-pingpong -测试网络性能和延迟的工具
sfnt-pingpong 是一个用于测试网络性能和延迟的工具,通常用于测量不同网络环境下的数据包传输性能、吞吐量、延迟等指标。 它通常是基于某种网络协议(如 TCP)执行“ping-pong”式的测试,即客户端和服务器之间相互发送数据包&…...
Kubernetes、Docker 和 Docker Registry 关系是是什么?
Kubernetes(常简称为 k8s)、Docker 和 Docker Registry 是现代云原生应用中三个关键的组件,它们各自承担不同的职责,但在容器化部署和管理过程中紧密协作。以下是它们之间关系的详细解释: 一、核心概念简介 1. Docker…...
docker部署微信小程序自动构建发布和更新
通过 Jenkins 和 Docker 部署微信小程序,并实现自动构建、发布和版本更新,主要涉及以下几个步骤: 设置 Jenkins 环境配置 GitLab 与 Jenkins 的集成构建 Docker 镜像部署和发布微信小程序配置 Jenkins 自动构建 以下是详细的步骤说明&#…...
模仿elementui的Table,实现思路
vue2子组件使用render,给子子组件插槽传值 和elementui的Table一样使用render 在 Vue 2 中,子组件使用render函数向子子组件插槽传值可以通过以下步骤实现: 1、创建子组件 首先创建一个子组件,在子组件中使用render函数来渲染内容…...
Unity中使用环形缓冲区平滑抖动值
环形缓冲数据结构,就是如下图一样的一个收尾相接的列表 在index指针指到4时,再往里添加数据,index就会指向0,并覆盖已有数据。 如何绘制Sin函数,请看下面一篇文章 Unity中如何实现绘制Sin函数图像-CSDN博客 接下来要…...
【Yonghong 企业日常问题 06】上传的文件不在白名单,修改allow.jar.digest属性添加允许上传的文件SH256值?
文章目录 前言问题描述问题分析问题解决1.允许所有用户上传驱动文件2.如果是想只上传白名单的驱动 前言 该方法适合永洪BI系列产品,包括不限于vividime desktop,vividime z-suit,vividime x-suit产品。 问题描述 当我们连接数据源的时候&a…...
SpringBoot使用 AOP 实现自定义日志记录并保存在Mysql
本文主要介绍在 Spring Boot 中使用 AOP 实现自定义日志记录并保存在 Mysql 的方法。先阐述记录日志的重要性及传统方式的弊端,提出新方式,即通过创建自定义注解、切面类等,将重要日志存到数据库,还给出了创建日志表、注解类、切面…...
谷歌开源最强天气预报AI模型 GenCast
谷歌 DeepMind 开源新一代天气预测 AI 模型 GenCast,GenCast 以最先进的精度预测天气和极端条件的风险 天气预报对人们生活和决策至关重要,但传统 NWP 模型存在不确定性,且计算资源需求大、运行慢。机器学习在天气预报中虽有进展,…...
C++打造局域网聊天室第十课: 客户端编程及数据发送
文章目录 前言一、补充内容,设置显示框换行二、客户端编程三、封装消息发送函数四、所处的身份状态总结 前言 C打造局域网聊天室第十课: 客户端编程及数据发送 一、补充内容,设置显示框换行 编辑框的显示内容默认是不会换行的,这…...
Nginx整合Lua脚本
Nginx-Lua Nginx整合Lua脚本 Lua环境搭建 下载地址 linux环境下 yum install lua安装后验证 lua -vLua脚本执行 lua xxx.luaNginx整合Lua nginx需要添加lua模块 嵌入内容 示例如下 修改nginx.conf如下 location /lua {default_type text/plain;content_by_lua ngx.sa…...
【C++】C++11 STL容器emplace方法原理剖析
在 C 11 STL 容器中,push/insert > emplace 新的方法,push 和 emplace 的区别在于: 1. push push 通常用于将一个元素添加到容器的末尾(在 std::vector、std::deque 等序列容器中),或者在关联容器中插入…...
QT-简单视觉框架代码
文章目录 简介1. 整体架构2. 关键类功能概述3. 详细代码实现hikcameraworker.h 和 hikcameraworker.cpp(海康相机工作线程类)imageviewerwidget.h 和 imageviewerwidget.cpp(图像查看部件类)构造函数 ImageViewerWidget析构函数 ~…...
AI新书推荐:深度学习和大模型原理与实践(清华社)
本书简介 在这个信息爆炸、技术革新日新月异的时代,深度学习作为人工智能领域的重要分支,正引领着新一轮的技术革命。《深度学习和大模型原理与实践》一书,旨在为读者提供深度学习及其大模型技术的全面知识和实践应用的指南。 本书特色在于…...
[spring]处理器
我们可以通过spring来管理我们的类,之后我们可以通过spring的容器来获取我们所需要的Bean类对象。Spring的处理器是Spring对外开发的重要扩展点,它允许我们介入到Bean的整个实例化流程中来,可以动态添加、修改BeanDefinition、动态修改Bean 首…...
重温设计模式--中介者模式
中介者模式介绍 定义:中介者模式是一种行为设计模式,它通过引入一个中介者对象来封装一系列对象之间的交互。中介者使得各个对象之间不需要显式地相互引用,从而降低了它们之间的耦合度,并且可以更方便地对它们的交互进行管理和协调…...
重温设计模式--设计模式七大原则
文章目录 1、开闭原则(Open - Closed Principle,OCP)定义:示例:好处: 2、里氏替换原则(Liskov Substitution Principle,LSP)定义:示例:好处&#…...
LeetCode429周赛T4
最小化二进制字符串中最长相同子字符串的长度 在处理二进制字符串问题时,优化字符串结构以满足特定条件是一项常见的挑战。本文将探讨一个具体的问题:给定一个长度为 n 的二进制字符串 s 和一个整数 numOps,通过最多 numOps 次位翻转操作&am…...
详解MySQL在Windows上的安装
目录 查看电脑上是否安装了MySQL 下载安装MySQL 打开MySQL官网,找到DOWNLOADS 然后往下翻,找到MySQL Community(GPL) Downloads>> 然后找到MySQL Community Server 然后下载,选择No thanks,just start my download. 然后双击进行…...
【Python使用】嘿马python高级进阶全体系教程第10篇:静态Web服务器-返回固定页面数据,1. 开发自己的静态Web服务器【附代码文档】
本教程的知识点为:操作系统 1. 常见的操作系统 4. 小结 ls命令选项 2. 小结 mkdir和rm命令选项 1. mkdir命令选项 压缩和解压缩命令 1. 压缩格式的介绍 2. tar命令及选项的使用 3. zip和unzip命令及选项的使用 4. 小结 编辑器 vim 1. vim 的介绍 2. vim 的工作模式 …...
如何通过手机号快速找回QQ号:开源工具的3分钟解决方案
如何通过手机号快速找回QQ号:开源工具的3分钟解决方案 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 在数字生活中,你是否曾因忘记QQ账号而焦急万分?手机更换、系统重装或长期未登录,…...
Linux持久化配置GRE接口
Centos7持久化配置GRE接口GRE协议简介前置条件1.开发ipv4转发1.1启用TCP窗口缩放1.2启用自动MTU1.3禁用ipv6--可选1.4使内核配置生效2.加载内核模块3.放通防火墙方案1:ip命令临时配置GRE隧道VM1临时配置GRE接口配置邻居启动GRE隧道VM2临时配置GRE接口配置邻居启动GRE隧道关闭和…...
WPF中DataTrigger动态控制UI元素可见性的实战技巧
1. 为什么需要动态控制UI元素可见性 在WPF应用开发中,经常会遇到需要根据某些条件动态显示或隐藏界面元素的情况。比如当用户勾选某个复选框时显示额外的输入框,或者根据后台数据状态改变界面布局。这种动态交互能够显著提升用户体验,让界面更…...
【码动四季】科研绘图不再难!LabPlot 高效科研制图实战指南
目录 一、前言 1. 科研论文制图:不止是“画个图”,更是学术表达的核心 2. 优秀配置:科研绘图的核心需求的是什么 二、LabPlot简介 1. LabPlot是什么 2. LabPlot可以做什么 三、LabPlot实战:教你绘制柱状图 1. 数据准备 方…...
用Multisim搞定LM324带通滤波器:从理论计算到仿真调试的完整避坑指南
用Multisim搞定LM324带通滤波器:从理论计算到仿真调试的完整避坑指南 在电子工程的学习和实践中,带通滤波器的设计与实现是一个经典课题。许多初学者都会遇到这样的困惑:明明按照教科书上的公式计算得一丝不苟,为什么在Multisim中…...
四步生图封神,GenEval从61%狂拉到92%,全面超越GPT-4o的TDM-R1模型来了
在大模型强化学习的热潮中,图像生成领域长期缺少一套真正适配少步模型的通用 RL 框架,而 TDM-R1 的出现,恰恰补上了这块关键拼图。超快速 AI 生图领域再破性能天花板!香港科技大学唐靖团队、香港科技大学(深圳分校&…...
OBS多平台直播终极指南:免费开源工具实现一键同步推流
OBS多平台直播终极指南:免费开源工具实现一键同步推流 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 想要在多个直播平台同时推送高质量内容?OBS Multi RTMP插件…...
挂起、阻塞、锁和cpu占用
Thread.sleep() 和 Object.wait() 在 Java 多线程编程中,Thread.sleep() 和 Object.wait() 都能让线程暂停执行,但它们的目的机制和使用场景有本质区别。核心区别总结所属类不同sleep() 是 Thread 类的静态方法,作用于当前线程。…...
别再手动打字了!用uniapp+科大讯飞SDK实现语音实时转文字(附完整代码)
零基础实现uniapp语音输入:科大讯飞流式转文字全攻略 移动应用开发中,语音输入功能正成为提升用户体验的关键要素。想象一下,用户只需按住按钮说话,文字就能实时出现在屏幕上——这种交互方式不仅自然高效,还能显著降…...
计算机毕业设计:Python天气数据爬虫可视化分析系统 Django框架 线性回归 数据分析 大数据 机器学习 大模型 气象数据(建议收藏)✅
博主介绍:✌全网粉丝50W,前互联网大厂软件研发、集结硕博英豪成立软件开发工作室,专注于计算机相关专业项目实战6年之久,累计开发项目作品上万套。凭借丰富的经验与专业实力,已帮助成千上万的学生顺利毕业,…...




