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

41、web前端开发之Vue3保姆教程(五 实战案例)

一、项目简介和需求概述

1、项目目标

1.能够基于Vue3创建项目

2.能够基本Vue3相关的技术栈进行项目开发

3.能够使用Vue的第三方组件进行项目开发

4.能够理解前后端分离的开发模式

2、项目概述

使用Vue3结合ElementPlus,ECharts工具实现后台管理系统页面,包含登录功能,主页布局和导航条功能,客户和保单管理功能,分页展示功能,表单添加功能,报表生成功能等。使用axios调用远程接口,使用Apifox模拟远程接口,使用vuex存储登录信息。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3、使用的主要技术栈和工具

Vue3
TypeScript
ElementPlus
ECharts
Apifox

二、项目初始化

1、项目创建

使用vite或vue_cli创建项目

npm create vue@latest
或者
//npm install -g cnpm --registry=http://registry.npm.taobao.org 
npm install -g cnpm --registry=https://registry.npmmirror.com 
cnpm create vue@latest

2、配置Vue路由

import router from './route
const app = createApp(App);
app.use(router)

3、配置 axios 库

安装:

npm install --save vue-axios
或
npm install -g pnpm
pnpm install --save vue-axios

引入:

import axios from 'axios';

4、配置Element Plus

npm install -g pnpm

安装 Element Plus:

pnpm install element-plus --save

安装Element Plus图标

pnpm install @element-plus/icons-vue

在 main.js 中引入 Element Plus

import { createApp } from 'vue';
import App from './App.vue';
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';
const app = createApp(App);
app.use(ElementPlus);
app.mount('#app');

在 main.js 中引入 Element Plus Icon

import * as ElementPlusIconsVue from '@element-plus/icons-vue'
//const app = createApp(App);for (const [key, component] of Object.entries(ElementPlusIconsVue)) {app.component(key, component)
}

也可以在使用时再导入

import { Delete, Edit, Search, Share, Upload } from '@element-plus/icons-vue'

在上述代码中,我们首先导入 Element Plus,并使用 createApp 方法创建 Vue 应用程序实例。然后使用 app.use 方法注册 Element Plus 插件,并使用 app.mount方法将应用程序挂载到 DOM 元素上。

在组件中使用 Element Plus 的组件,如下:

<template><el-button type="primary">按钮</el-button>
</template>
<el-icon><delete /></el-icon>

5、初始化 git 远程仓库

多人合作时需要上传项目到仓库

6、将本地项目托管到GitHub或Gitee中

三、界面实现

1、登录页面

在这里插入图片描述

1、创建Login.vue
1.1、添加表单:
<template>    <div class="login-container"><div class="login-card"><el-header></el-header><el-form class="login-form"><el-form-item label="用户名:" label-width="90px"><el-input  class="input-item" placeholder="请输入用户名"></el-input></el-form-item><el-form-item label="密码:" label-width="90px"><el-input class="input-item" placeholder="请输入密码" ></el-input></el-form-item><el-form-item ><el-button class="login-button" type="primary">登录</el-button></el-form-item></el-form></div></div>
</template><style scope>.login-card{width:400px}  .input-item{width:240px  !important;}.login-form{padding: 20px;}.login-button{width:100%;background-color: #607A9E !important;}</style>

在这里插入图片描述

1.2、添加头部
<template>    <div class="login-container"><div class="login-card"><el-header class="login-header">登录</el-header><el-form class="login-form"><el-form-item label="用户名:" label-width="90px"><el-input  class="input-item" placeholder="请输入用户名"></el-input></el-form-item><el-form-item label="密码:" label-width="90px"><el-input class="input-item" placeholder="请输入密码" ></el-input></el-form-item><el-form-item ><el-button class="login-button" type="primary">登录</el-button></el-form-item></el-form></div></div>
</template><style scope>.login-card{width:400px}  .login-header{width: 100%;background-color: #607A9E;height: 60px;text-align: center;font-size: 24px;font-weight: bold;line-height: 60px;color: #fff;}.input-item{width:240px  !important;}.login-form{padding: 20px;}.login-button{width:100%;background-color: #607A9E !important;}</style>

在这里插入图片描述

1.3、添加登录窗口的边框和阴影
<template>    <div class="login-container"><div class="login-card"><el-header class="login-header">登录</el-header><el-form class="login-form"><el-form-item label="用户名:" label-width="90px"><el-input  class="input-item" placeholder="请输入用户名"></el-input></el-form-item><el-form-item label="密码:" label-width="90px"><el-input class="input-item" placeholder="请输入密码" ></el-input></el-form-item><el-form-item ><el-button class="login-button" type="primary">登录</el-button></el-form-item></el-form></div></div>
</template><style scope>.login-card{width:400px;border-radius: 5px;overflow: hidden;box-shadow: 0px 0px 10px rgba(0,0,0,0.3);}  .login-header{width: 100%;background-color: #607A9E;height: 60px;text-align: center;font-size: 24px;font-weight: bold;line-height: 60px;color: #fff;}.input-item{width:240px  !important;}.login-form{padding: 20px;}.login-button{width:100%;background-color: #607A9E !important;}</style>

在这里插入图片描述

1.4、设置登录窗口居于页面的中间

设置login-container中的内容居中:

<template>    <div class="login-container"><div class="login-card"><el-header class="login-header">登录</el-header><el-form class="login-form"><el-form-item label="用户名:" label-width="90px"><el-input  class="input-item" placeholder="请输入用户名"></el-input></el-form-item><el-form-item label="密码:" label-width="90px"><el-input class="input-item" placeholder="请输入密码" ></el-input></el-form-item><el-form-item ><el-button class="login-button" type="primary">登录</el-button></el-form-item></el-form></div></div>
</template><style scope>.login-container{width: 100%;height: 100%;display: flex;justify-content: center;align-items: center;       }.login-card{width:400px;border-radius: 5px;overflow: hidden;box-shadow: 0px 0px 10px rgba(0,0,0,0.3);}  .login-header{width: 100%;background-color: #607A9E;height: 60px;text-align: center;font-size: 24px;font-weight: bold;line-height: 60px;color: #fff;}.input-item{width:240px  !important;}.login-form{padding: 20px;}.login-button{width:100%;background-color: #607A9E !important;}</style>
1.5、重新设置#app的布局

重新设置#app布局为左对齐 默认是网格布局

修改src/assets/main.css文件,在文件中添加

#app
{height: 100%;width: 100%;display: flex !important; align-items: flex-start !important; /* 将项目在交叉轴上靠上对齐 */ justify-content: flex-start !important; /* 将项目在主轴上靠左对齐 */ margin: 0px !important;padding: 0px!important;max-width: none !important;}

在这里插入图片描述

1.6、添加表单功能

添加表单元素的响应式和表单的验证功能

<template>    <div class="login-container"><div class="login-card"><el-header class="login-header">登录</el-header><el-form class="login-form" :model="loginData" :rules="loginRules"><el-form-item label="用户名:" label-width="90px" prop="username" ><el-input  class="input-item" v-model="loginData.username" placeholder="请输入用户名"></el-input></el-form-item><el-form-item label="密码:" label-width="90px" prop="password"><el-input class="input-item" v-model="loginData.password" show-password placeholder="请输入密码" ></el-input></el-form-item><el-form-item ><el-button class="login-button" type="primary">登录</el-button></el-form-item></el-form></div></div>
</template><script setup>import {reactive} from "vue";const loginData=reactive({username:'',password:''
})const loginRules={username:[{required:true,message:"请输入用户名",trigger:"blur"}],password:[{required:true,message:"请输入密码",trigger:"blur"}],
}</script><style scope>.login-container{width: 100%;height: 100%;display: flex;justify-content: center;align-items: center;       }.login-card{width:400px;border-radius: 5px;overflow: hidden;box-shadow: 0px 0px 10px rgba(0,0,0,0.3);}  .login-header{width: 100%;background-color: #607A9E;height: 60px;text-align: center;font-size: 24px;font-weight: bold;line-height: 60px;color: #fff;}.input-item{width:240px  !important;}.login-form{padding: 20px;}.login-button{width:100%;background-color: #607A9E !important;}</style>

在这里插入图片描述

1.7、模拟提交功能
<template>    <div class="login-container"><div class="login-card"><el-header class="login-header">登录</el-header><el-form class="login-form" :model="loginData" :rules="loginRules"><el-form-item label="用户名:" label-width="90px" prop="username" ><el-input  class="input-item" v-model="loginData.username" placeholder="请输入用户名"></el-input></el-form-item><el-form-item label="密码:" label-width="90px" prop="password"><el-input class="input-item" v-model="loginData.password" show-password placeholder="请输入密码" ></el-input></el-form-item><el-form-item ><el-button class="login-button" type="primary" @click="login">登录</el-button></el-form-item><div class="error-msg">{{loginData.errorMsg}}</div></el-form></div></div>
</template><script setup>import {reactive} from "vue";
import {useRouter} from "vue-router";const loginData=reactive({username:'',password:'',errorMsg:''
})const loginRules={username:[{required:true,message:"请输入用户名",trigger:"blur"}],password:[{required:true,message:"请输入密码",trigger:"blur"}],
}const router=useRouter();function login(){if(loginData.username=="admin" && loginData.password=="admin123")router.push("/index");elseloginData.errorMsg="用户名或密码出错"  }</script><style scope>.login-container{width: 100%;height: 100%;display: flex;justify-content: center;align-items: center;       }.login-card{width:400px;border-radius: 5px;overflow: hidden;box-shadow: 0px 0px 10px rgba(0,0,0,0.3);}  .login-header{width: 100%;background-color: #607A9E;height: 60px;text-align: center;font-size: 24px;font-weight: bold;line-height: 60px;color: #fff;}.input-item{width:240px  !important;}.login-form{padding: 20px;}.login-button{width:100%;background-color: #607A9E !important;}.error-msg{text-align: center;color:red;}
</style>

在这里插入图片描述

1.8、完整代码
<template><div class="login-container">
<div class="login-card"><el-header class="login-header">登录</el-header><el-form class="login-form"   :model="loginData" :rules="loginRules" ><el-form-item label="用户名:" prop="username" label-width="90px"><el-input class="input-item" v-model="loginData.username" placeholder="请输入用户名"></el-input></el-form-item><el-form-item label="密码:" prop="password" label-width="90px"><el-input class="input-item" v-model="loginData.password" placeholder="请输入密码" show-password></el-input></el-form-item><el-form-item><el-button class="login-button"  type="primary" @click="login">登录</el-button></el-form-item><div class="error-msg">{{loginData.errorMsg}}</div></el-form>
</div>
</div></template><script setup>import {reactive} from "vue"import {useRouter} from "vue-router"const loginData = reactive({username:'',password:'',errorMsg:''})const loginRules = {username:[{required:true,message:"请输入用户名",trigger:"blur"}],password:[{required:true,message:"请输入密码",trigger:"blur"}]
}   const router=useRouter();function login(){if(loginData.username=="admin" && loginData.password=="admin123")//loginData.errorMsg="success";router.push("/index")elseloginData.errorMsg="用户名或密码错误";             }</script>
<style>.login-container{

相关文章:

41、web前端开发之Vue3保姆教程(五 实战案例)

一、项目简介和需求概述 1、项目目标 1.能够基于Vue3创建项目 2.能够基本Vue3相关的技术栈进行项目开发 3.能够使用Vue的第三方组件进行项目开发 4.能够理解前后端分离的开发模式 2、项目概述 使用Vue3结合ElementPlus,ECharts工具实现后台管理系统页面,包含登录功能,…...

Quill富文本编辑器支持自定义字体(包括新旧两个版本,支持Windings 2字体)

文章目录 1 新版&#xff08;Quill2 以上版本&#xff09;2 旧版&#xff08;Quill1版本&#xff09; 1 新版&#xff08;Quill2 以上版本&#xff09; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta n…...

Flutter命令行打包打不出ipa报错

Flutter打包ipa报错解决方案 在Flutter开发中&#xff0c;打包iOS应用时可能会遇到以下错误&#xff1a; error: exportArchive: The data couldn’t be read because it isn’ in the correct format. 或者 Encountered error while creating the IPA: error: exportArchive…...

UV安装与使用

1. 概述 GitHub&#xff1a;astral-sh/uv: An extremely fast Python package and project manager, written in Rust. 官网&#xff1a;uv An extremely fast Python package and project manager, written in Rust. 效率神器&#xff0c;基于Rust实现&#xff0c;比传统工具快…...

SQL练习题

数据表介绍 –1.学生表 Student(SId,Sname,Sage,Ssex) --SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别–2.课程表 Course(CId,Cname,TId) --CId 课程编号,Cname 课程名称,TId 教师编号–3.教师表 Teacher(TId,Tname) --TId 教师编号,Tname 教师姓名–4.成绩表…...

Rust Command无法执行*拓展解决办法

async fn run_cmd_async_out<I, S>(cmd: &str, args: I, timeout_s: u64, with_http_proxy: bool) -> Result<String> whereI: IntoIterator<Item S>,S: AsRef<OsStr>, {let mut cmd tokio::process::Command::new(cmd);// 让 sh 来运行命令&…...

利用Hadoop MapReduce实现流量统计分析

在现代大数据时代&#xff0c;处理和分析海量数据是一项常见的任务。Hadoop MapReduce提供了一种高效的方式来处理分布式数据集。本文将通过一个具体的示例——流量统计分析&#xff0c;来展示如何使用Hadoop MapReduce进行数据处理。 项目背景 在电信行业中&#xff0c;对用…...

Spring Boot应用程序接入ELK-003

Spring Boot应用程序接入ELK 一、项目依赖集成 在将Spring Boot应用程序接入ELK日志搜索引擎时&#xff0c;首先要在项目中集成相关依赖&#xff1a; &#xff08;一&#xff09;Logstash依赖 <dependency><groupId>net.logstash.logback</groupId><a…...

spark(一)

本节课围绕Spark Core展开深入学习&#xff0c;了解了Spark的运行架构、核心组件、核心概念以及提交流程&#xff0c;明晰其整体运行机制与各部分协作逻辑。重点聚焦于两个核心组件&#xff1b;对RDD相关概念进行了细致学习&#xff0c;包括其核心属性、执行原理、序列化方式、…...

绿电直供零碳园区:如何用清洁能源重塑企业竞争力?

引言 在全球积极应对气候变化的大背景下&#xff0c;“双碳” 目标已成为世界各国实现可持续发展的关键战略方向。我国也明确提出要在 2030 年前实现碳达峰&#xff0c;2060 年前实现碳中和&#xff0c;这一宏伟目标的提出&#xff0c;对各行各业都产生了深远影响&#xff0c;…...

国家科技奖项目答辩ppt设计_科技进步奖PPT制作_技术发明奖ppt美化_自然科学奖ppt模板

国家科学技术奖 为了奖励在科学技术进步活动中做出突出贡献的公民、组织&#xff0c;调动科学技术工作者的积极性和创造性&#xff0c;加速科学技术事业的发展&#xff0c;提高综合国力而设立的一系列奖项。每两三年评选一次。 科技奖ppt案例 WordinPPT / 持续为双一流高校、…...

LLM应用实战2-理解Tokens

文章目录 基本定义Tokenization 的作用主流 Tokenization 算法示例示例GPT-4o&GPT-4o miniGPT-3.5 & GPT-4 基本定义 Tokens 是大型语言模型&#xff08;LLM&#xff09;处理文本或代码的最小语义单元&#xff0c;可包含以下形式&#xff1a; 字符&#xff08;如英文…...

【Java面试系列】Spring Boot微服务架构下的分布式事务处理与性能优化详解 - 3-5年Java开发必备知识

【Java面试系列】Spring Boot微服务架构下的分布式事务处理与性能优化详解 - 3-5年Java开发必备知识 引言 在当今的微服务架构中&#xff0c;分布式事务处理和性能优化是面试中经常被问及的高频话题。随着系统规模的扩大&#xff0c;如何保证数据一致性和系统性能成为了开发者…...

NO.80十六届蓝桥杯备战|数据结构-字符串哈希|兔子与兔子(C++)

回忆&#xff1a;哈希函数与哈希冲突 哈希函数&#xff1a;将关键字映射成对应的地址的函数&#xff0c;记为 Hash(key) Addr 。哈希冲突&#xff1a;哈希函数可能会把两个或两个以上的不同关键字映射到同⼀地址&#xff0c;这种情况称为哈希冲突。 字符串哈希 定义⼀个把字…...

Spring MVC 请求类型注解详解

Spring MVC 请求类型注解详解 1. 核心注解分类 Spring MVC 中的请求处理注解分为以下几类&#xff1a; 类别注解示例作用范围方法级注解RequestMapping, GetMapping 等方法级别参数级注解RequestParam, RequestBody方法参数模型/会话注解ModelAttribute, SessionAttributes方…...

RabbitMQ的死信队列和ttl

TTL ttl即过期时间&#xff0c;rbbitmq可以对队列和消息设置过期时间&#xff0c;当消息到存活时间之后&#xff0c;还没有被消费&#xff0c;就会被自动清除 例如&#xff1a;在网上购物&#xff0c;经常会遇到一个场景&#xff0c;当下单超过24小时还未付款&#xff0c;订单…...

[特殊字符] Hyperlane:Rust 高性能 HTTP 服务器库,开启 Web 服务新纪元!

&#x1f680; Hyperlane&#xff1a;Rust 高性能 HTTP 服务器库&#xff0c;开启 Web 服务新纪元&#xff01; &#x1f31f; 什么是 Hyperlane&#xff1f; Hyperlane 是一个基于 Rust 语言开发的轻量级、高性能 HTTP 服务器库&#xff0c;专为简化网络服务开发而设计。它支…...

【后端开发】Spring MVC-常见使用、Cookie、Session

文章目录 代码总结初始化传递参数单参数多参数 传递对象后端参数重命名&#xff08;后端参数映射&#xff09;必传参数设置非必传参数 传递数组传递集合传递JSON数据JSON语法JSON格式转换JSON优点传递JSON对象 获取URL中参数传递文件 Cookie与SessionCookieCookie机制 SessionC…...

Element Plus 去掉表格外边框

使用el-table组件拖拽时&#xff0c; 想使用自定义样式进行拖拽, 想去掉外边框&#xff0c; 并在表头加入竖杠样式 css代码&#xff1a; <style lang"less" scoped>// 表格右边框线 .el-table--border::after {width: 0; }// 表格上边框线 :deep(.el-table__i…...

安全厂商安全理念分析

奇安信&#xff08;toB企业安全&#xff09; 安全理念&#xff1a;率先提出 “内生安全” 理念。即把安全能力内置到信息化环境中&#xff0c;通过信息化系统和安全系统的聚合、业务数据和安全数据的聚合、IT 人才和安全人才的聚合&#xff0c;让安全系统像人的免疫系统一样&a…...

GaussDB Plan Hint调优实战:从执行计划控制到性能优化

GaussDB Plan Hint调优实战&#xff1a;从执行计划控制到性能优化 一、GaussDB Plan Hint核心价值 执行计划控制原理 mermaid graph TD A[SQL提交] --> B(优化器决策) B --> C{使用Hint?} C -->|是| D[强制指定执行路径] C -->|否| E[自动生成最优计划] D --&g…...

【力扣hot100题】(078)跳跃游戏Ⅱ

好难啊&#xff0c;我愿称之为跳崖游戏。 依旧用了两种方法&#xff0c;一种是我一开始想到的&#xff0c;一种是看答案学会的。 我自己用的方法是动态规划&#xff0c;维护一个数组记录到该位置的最少步长&#xff0c;每遍历到一个位置就嵌套循环遍历这个位置能到达的位置&a…...

基于 DeepSeek API 实现一个简单的数据分析 Agent

写在前面 本文将带你一步步了解: 什么是(简单的)数据分析 Agent?为什么使用 LLM 进行数据分析?如何利用 DeepSeek API 的能力?设计并实现一个基于 Python 和 Pandas 的基础数据分析 Agent。探讨其局限性、安全考量及未来方向。我们的目标是构建一个简单的 Agent,它能理…...

VUE3+TS+elementplus+Django+MySQL实现从前端增加数据存入数据库,并显示在前端界面上

一、前言 前面实现了从数据库读取数据&#xff0c;显示在前端界面上VUE3TSelementplusDjangoMySQL实现从数据库读取数据&#xff0c;显示在前端界面上&#xff0c;以及使用VUE3TSelementplus创建一个增加按钮。今天通过在前端的增加功能&#xff0c;新增数据&#xff0c;传到后…...

Django 创建CSV文件

Django使用Python内置的CSV库来创建动态的CSV&#xff08;逗号分隔值&#xff09;文件。我们可以在项目的视图文件中使用这个库。 让我们来看一个例子&#xff0c;这里我们有一个Django项目&#xff0c;我们正在实现这个功能。创建一个视图函数 getfile() 。 Django CSV例子 …...

最新版RubyMine超详细图文安装教程,带补丁包(2025最新版保姆级教程)

目录 前言 一、RubyMine最新版下载 二、RubyMine安装 三、RubyMine补丁 四、运行RubyMine 前言 RubyMine是由JetBrains开发的集成开发环境&#xff08;IDE&#xff09;&#xff0c;专为Ruby和Ruby on Rails开发者设计&#xff0c;提供智能代码补全、调试、测试、版本控制集…...

spring之JdbcTemplate、GoF之代理模式、面向切面编程AOP

一、JdbcTemplate JdbcTemplate是Spring提供的一个JDBC模板类&#xff0c;是对JDBC的封装&#xff0c;简化JDBC代码。 当然&#xff0c;你也可以不用&#xff0c;可以让Spring集成其它的ORM框架&#xff0c;例如&#xff1a;MyBatis、Hibernate等。 接下来我们简单来学习一下&…...

【QT】QT中的文件IO

QT中的文件IO 一、有关文件IO的类二、步骤1、定义QFile的对象,与要读写的文件绑定在一起2、打开文件3、读写文件1&#xff09;读取文件2&#xff09;写入文件 4、关闭文件5、示例代码&#xff1a; 三、QString和QByteArray之间的转换1、方法2、示例代码&#xff1a; 四、QFileI…...

linux安装mysql常出现的问题

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum update yum install mysql-server 权限设置&#xff1a; chown -R mysql:mysql /var/lib/mysql/ 初始化 MySQL&#xff1a; mysqld --initiali…...

ArcGIS Engine开发教程--从零搭建GIS桌面应用

目录 一、ArcGIS Engine简介 1.1 什么是ArcGIS Engine&#xff1f; 1.2 应用场景 二、环境搭建 2.1 安装准备 2.2 配置项目 三、核心对象与基础概念 3.1 核心组件 3.2 接口编程 四、实战&#xff1a;开发简易地图查看器 4.1 加载地图文档 4.2 添加矢量图层 4.3 实…...

DeepSeek 助力 Vue3 开发:打造丝滑的日历(Calendar)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…...

Conda使用方法详解

Conda是一个开源的包管理和环境管理系统&#xff0c;主要用于Python/R等科学计算领域&#xff0c;可以轻松管理不同项目的依赖关系。以下是Conda的详细使用方法&#xff1a; 一、安装与配置 1.安装Miniconda/Anaconda Miniconda是精简版&#xff0c;只包含conda和Python Ana…...

CausalML 基于机器学习算法的因果推理方法

CausalML 是一个 Python 包&#xff0c;它使用基于最新研究的机器学习算法提供一套提升建模和因果推理方法。它提供了一个标准界面&#xff0c;允许用户从实验或观察数据中估计条件平均处理效应 &#xff08;CATE&#xff09;&#xff0c;也称为个体治疗效应 &#xff08;ITE&a…...

HTML的svg元素

<svg>元素 <svg>是一种用于描述二维矢量图形的 XML 格式&#xff0c;可以直接嵌入 HTML 文档中。 <svg>基本用法 <svg>的几种基本用法,包括圆形&#xff0c;正方形&#xff0c;三角形&#xff0c;直线 &#xff0c;折线等 <body><svg widt…...

文件上传、读取与包含漏洞解析及防御实战

一、漏洞概述 文件上传、读取和包含漏洞是Web安全中常见的高危风险点&#xff0c;攻击者可通过此类漏洞执行恶意代码、窃取敏感数据或直接控制服务器。其核心成因在于开发者未对用户输入内容进行充分验证或过滤&#xff0c;导致攻击者能够绕过安全机制&#xff0c;上传或执行…...

物联网与边缘计算之物联网架构(感知层、网络层、应用层)

一、感知层&#xff1a;数据采集与智能终端 1. 核心功能 感知层是物联网的数据入口&#xff0c;通过物理设备&#xff08;如传感器、RFID标签&#xff09;实时采集环境、设备或生物体的物理量&#xff08;温度、湿度&#xff09;、标识信息&#xff08;如二维码&#xff09;及…...

nvm使用手册

一、安装前准备 1. 卸载现有 Node.js&#xff08;如已安装&#xff09; # 删除全局 node 模块 sudo rm -rf /usr/local/lib/node_modules# 删除 node 可执行文件 sudo rm -rf /usr/local/bin/npm sudo rm -rf /usr/local/bin/node# 删除其他残留文件 sudo rm -rf ~/.npm sudo…...

Maven error:Could not transfer artifact

问题描述 当项目从私有仓库下载依赖时&#xff0c;Maven 报错&#xff0c;无法从远程仓库下载指定的依赖包&#xff0c;错误信息如下&#xff1a; Could not transfer artifact com.ding.abcd:zabk-java:pom from/to releases (http://192.1122.101/repory/mavenleases/): 此…...

【操作系统(Linux)】——通过案例学习父子进程的线程异步性

本篇旨在通过几个案例来学习父子进程的线程异步性 一、父进程与子进程 我们将要做的&#xff1a; 创建父子进程&#xff0c;观察父子进程执行的顺序&#xff0c;了解进程执行的异步行为 源代码&#xff1a; #include <stdio.h> #include <sys/types.h> #include…...

汽车CAN总线采样点和采样率详解

写在前面 本篇文章主要讲解在汽车电子中CAN总线采样率的相关知识点,内容涉及CAN波特率、采样点、时间份额、同步跳转宽度以及采样率的计算。 若有相关问题,欢迎评论沟通,共同进步。(*^▽^*) 1、CAN波特率 CAN波特率常规分为250kbps和500kbps,本文章主要以这两个波特率为…...

一款基于 .NET 8 + Vue 开源的、企业级中后台权限管理系统

前言 今天大姚给大家分享一款基于 .NET 8 Vue 开源、前后端分离的企业级中后台权限管理系统&#xff0c;助力快速完成常规业务需求开发&#xff1a;ApeVolo.Admin。 项目介绍 ApeVolo.Admin 一款基于.NET 8、SqlSugar、Vue、Elment UI、RBAC、前后端分离、开源&#xff08;…...

创建两个进程

文章目录 创建两个进程**2. 实现思路及源代码**2.1 实现思路2.1.1 fork() 函数2.1.2 思路分析 2.2 源代码2.2.1 源代码分析2.2.2 源代码测试结果 **3. 打印进程树**3.1 tmux操作步骤3.1.1 启动 tmux3.1.2 分屏操作&#xff08;Ctrlb是在告诉系统准备输入一个快捷键&#xff09;…...

Zephyr、FreeRTOS、RT-Thread 定时器区别分析

一、核心特性对比 特性ZephyrFreeRTOSRT-Thread定时器类型系统定时器&#xff08;k_timer&#xff09;、硬件定时器软件定时器&#xff08;基于系统tick&#xff09;软件定时器、硬件定时器定时模式单次、周期性单次、自动重载&#xff08;周期性&#xff09;单次、周期、自定…...

.NET 中的深拷贝实现方法

在 .NET 中实现深拷贝&#xff08;Deep Copy&#xff09;有几种常用方法&#xff0c;深拷贝是指创建一个新对象&#xff0c;并递归地复制原对象及其所有引用对象&#xff0c;而不仅仅是复制引用。 目录 1. 使用序列化/反序列化2. 使用 JSON 序列化&#xff08;Newtonsoft.Json…...

Vue/React组件/指令/Hooks封装的基本原则以及示例

一、组件封装原则与示例 Vue组件封装 核心原则 • 单一职责:每个组件只解决一个功能(如分页、过滤表单) • Props控制输入:通过定义明确的Props接口接收外部数据(类型校验、默认值) • Emit事件通信:子组件通过$emit向父组件传递动作(如分页切换) • 插槽扩展性:使用…...

医学分割新标杆!双路径PGM-UNet:CNN+Mamba实现病灶毫厘级捕捉

一、引言&#xff1a;医学图像分割的挑战与机遇 医学图像分割是辅助疾病诊断和治疗规划的关键技术&#xff0c;但传统方法常受限于复杂病理特征和微小结构。现有深度学习模型&#xff08;如CNN和Transformer&#xff09;虽各有优势&#xff0c;但CNN难以建模长距离依赖&…...

软考-高项,知识点一览十六 采购管理

十六 采购管理 项目采购管理包括从项目团队外部采购或获取所需产品、服务或成果的各个过程。被授权采购项目所需货物、服务的人员可以是项目团队、管理层或组织采购部的成员 。 管理基础 协议&#xff0f;采购合同 协议可以是合同、服务水平协议 (SLA) 、谅解备忘录、协议备…...

Spring MVC 视图解析器(JSP、Thymeleaf、Freemarker、 JSON/HTML、Bean)详解

Spring MVC 视图解析器详解 1. 视图解析器概述 视图解析器&#xff08;ViewResolver&#xff09;是 Spring MVC 的核心组件&#xff0c;负责将控制器返回的视图名称&#xff08;如 success&#xff09;转换为具体的 View 对象&#xff08;如 Thymeleaf 模板或 JSP 文件&#x…...

Joomla 常用模块 - 在线用户与Joomla 常用模块 - 自定义HTML模块

Joomla 常用模块 - 在线用户 在这一节中&#xff0c;我们将介绍如何建立在线用户模块。在线用户模块是显示当前访问网站的匿名用户&#xff08;如访客&#xff09;和注册用户&#xff08;登录用户&#xff09;的数量。 建立在线用户模块你可以参考以下步骤&#xff1a; 1、选…...

缓存工具类

这里写目录标题 背景代码使用 背景 写oj系统过程中&#xff0c;需要使用缓存工具类。其功能为&#xff0c;先从缓存中获取数据&#xff0c;如数据不存在&#xff0c;从数据库中获取。 代码 package xyz.wry.utils;import org.springframework.util.ObjectUtils;import java.…...