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

【前端】Vue3与Element Plus结合使用的超详细教程:从入门到精通

文章目录

    • Moss前沿AI
    • 一、教程概述
      • 1.1 目标读者
      • 1.2 学习目标
    • 二、为什么选择Vue3与Element Plus
      • 2.1 Vue3的优势
      • 2.2 Element Plus的优势
      • 2.3 二者结合的优势
    • 三、环境搭建
      • 3.1 创建Vue3项目
      • 3.2 安装Element Plus
      • 3.3 引入Element Plus
    • 四、Element Plus常用组件使用详解
      • 4.1 按钮(Button)
      • 4.2 表单(Form)
      • 4.3 表格(Table)
      • 4.4 弹窗(Dialog)
    • 五、样式定制
      • 5.1 全局主题定制
      • 5.2 按需加载和按需定制
      • 5.3 自定义组件样式
    • 六、最佳实践
      • 6.1 组件按需引入
      • 6.2 全局配置
      • 6.3 主题定制与一致性
      • 6.4 响应式设计
      • 6.5 性能优化
    • 七、实战案例:构建一个简单的管理后台
      • 7.1 项目结构
      • 7.2 创建基础布局
      • 7.3 创建视图组件
      • 7.4 运行项目

Moss前沿AI

【OpenAI】获取OpenAI API KEY的两种方式,开发者必看全方面教程!

【VScode】VSCode中的智能AI-GPT编程利器,全面揭秘ChatMoss & ChatGPT中文版

【GPT-o1系列模型!支持Open API调用、自定义助手、文件上传等强大功能,助您提升工作效率!】>>> - CodeMoss & ChatGPT-AI中文版

在这里插入图片描述

一、教程概述

1.1 目标读者

本教程适用于具备基本Vue3知识的前端开发者,特别是那些希望通过Element Plus提升项目UI质量和开发效率的开发者。

1.2 学习目标

  • 了解Element Plus与Vue3的基本集成方式
  • 掌握常用Element Plus组件的使用方法
  • 学会自定义Element Plus的样式以满足项目需求
  • 掌握Element Plus在实际项目中的最佳实践

二、为什么选择Vue3与Element Plus

2.1 Vue3的优势

Vue3相比于Vue2在性能、体积和功能上都有显著提升。其组合式API(Composition API)使得代码更具可维护性和复用性,适合构建大型复杂的应用。

2.2 Element Plus的优势

Element Plus是基于Vue3的UI组件库,拥有丰富且高质量的组件,支持TypeScript,且社区活跃。其组件设计美观,能够帮助开发者迅速构建优雅的用户界面。

2.3 二者结合的优势

将Vue3与Element Plus结合使用,不仅提升了开发效率,还保证了项目的UI一致性和用户体验。丰富的组件库减少了重复造轮子的时间,使开发者能够专注于业务逻辑的实现。
在这里插入图片描述

三、环境搭建

在开始之前,确保您的开发环境已经安装了Node.js和npm(或yarn)。

3.1 创建Vue3项目

使用Vue CLI或Vite创建一个Vue3项目。这里以Vite为例:

npm init vite@latest my-element-plus-app --template vue
cd my-element-plus-app
npm install

3.2 安装Element Plus

在项目目录下运行以下命令安装Element Plus:

npm install element-plus

3.3 引入Element Plus

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')

四、Element Plus常用组件使用详解

Element Plus提供了丰富的组件,本文将重点介绍几种常用组件的使用方法,包括按钮(Button)、表单(Form)、表格(Table)和弹窗(Dialog)。

4.1 按钮(Button)

按钮是最基础的交互元素,Element Plus提供了多种按钮类型和状态。

基本使用:

<template><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>
</template>

禁用状态和加载状态:

<el-button type="primary" :disabled="isDisabled">禁用按钮</el-button>
<el-button type="primary" :loading="loading">加载中</el-button>
<script setup>
import { ref } from 'vue'const isDisabled = ref(false)
const loading = ref(true)
</script>

4.2 表单(Form)

表单是用户输入的主要方式,Element Plus提供了丰富的表单组件和验证机制。

基本表单:

<template><el-form :model="form" :rules="rules" ref="formRef" label-width="120px"><el-form-item label="用户名" prop="name"><el-input v-model="form.name"></el-input></el-form-item><el-form-item label="密码" prop="password"><el-input type="password" v-model="form.password"></el-input></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>
</template>
<script setup>
import { ref } from 'vue'
import { ElForm } from 'element-plus'const formRef = ref(null)
const form = ref({name: '',password: ''
})const rules = {name: [{ required: true, message: '请输入用户名', trigger: 'blur' }],password: [{ required: true, message: '请输入密码', trigger: 'blur' },{ min: 6, message: '密码至少6位', trigger: 'blur' }]
}const submitForm = () => {formRef.value.validate((valid) => {if (valid) {console.log('提交成功', form.value)} else {console.log('验证失败')return false}})
}const resetForm = () => {formRef.value.resetFields()
}
</script>

4.3 表格(Table)

表格用于展示大量数据,Element Plus的Table组件功能强大,支持多种操作。

基本表格:

<template><el-table :data="tableData" style="width: 100%"><el-table-column prop="date" label="日期" width="180"></el-table-column><el-table-column prop="name" label="姓名" width="180"></el-table-column><el-table-column prop="address" label="地址"></el-table-column></el-table>
</template>
<script setup>
import { ref } from 'vue'const tableData = ref([{date: '2024-04-27',name: '王小明',address: '上海市普陀区金沙江路'},{date: '2024-04-26',name: '李雷',address: '北京市海淀区西二旗'},// 更多数据...
])
</script>

排序和筛选:

<template><el-table :data="tableData" style="width: 100%" @sort-change="handleSort"><el-table-column prop="date" label="日期" width="180" sortable></el-table-column><el-table-column prop="name" label="姓名" width="180" sortable></el-table-column><el-table-column prop="address" label="地址" sortable></el-table-column></el-table>
</template>
<script setup>
import { ref } from 'vue'const tableData = ref([// 数据同上
])const handleSort = (obj) => {console.log(obj.prop, obj.order)
}
</script>

4.4 弹窗(Dialog)

弹窗用于提示用户或获取用户输入,Element Plus提供了功能丰富的Dialog组件。

基本弹窗:

<template><el-button type="text" @click="dialogVisible = true">打开弹窗</el-button><el-dialogtitle="提示":visible.sync="dialogVisible"width="30%"@close="handleClose"><span>这是一段内容</span><span slot="footer" class="dialog-footer"><el-button @click="dialogVisible = false">取 消</el-button><el-button type="primary" @click="dialogVisible = false">确 定</el-button></span></el-dialog>
</template>
<script setup>
import { ref } from 'vue'const dialogVisible = ref(false)const handleClose = () => {console.log('弹窗关闭')
}
</script>

五、样式定制

Element Plus提供了多种方式定制样式,以满足不同项目的需求。

5.1 全局主题定制

通过修改Element Plus的全局Sass变量,可以轻松定制主题颜色等样式。

步骤:

  1. 安装Sass依赖:
npm install -D sass
  1. 创建variables.scss文件,覆盖默认变量:
// variables.scss
$--color-primary: #409EFF;
$--color-success: #67C23A;
$--color-warning: #E6A23C;
$--color-danger: #F56C6C;
$--color-info: #909399;
  1. main.js中引入自定义变量:
import 'element-plus/theme-chalk/src/index.scss'
import './variables.scss'

5.2 按需加载和按需定制

通过按需加载,可以减少项目的体积。同时可以使用Babel插件或Vite插件进行自动按需加载。

使用Vite插件:

  1. 安装插件:
npm install -D unplugin-vue-components unplugin-auto-import
  1. 配置vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'export default defineConfig({plugins: [vue(),Components({resolvers: [ElementPlusResolver()],}),],
})

5.3 自定义组件样式

可以通过覆盖CSS变量或使用深度选择器自定义单个组件的样式。

示例:自定义按钮颜色

<template><el-button class="custom-button" type="primary">自定义按钮</el-button>
</template><style scoped>
.custom-button {background-color: #FF5722;border-color: #FF5722;
}
</style>

六、最佳实践

为了在项目中高效地使用Element Plus,以下是一些最佳实践建议:

6.1 组件按需引入

避免全局引入所有组件,使用按需引入的方式,减少项目体积,提高加载速度。

6.2 全局配置

根据项目需求,配置Element Plus的全局属性,如国际化、多语言支持等,提升用户体验。

6.3 主题定制与一致性

通过统一的主题配置,确保项目中所有组件的风格一致,提高整体视觉效果。

6.4 响应式设计

结合Element Plus的栅格系统和响应式组件,确保项目在不同设备上的良好展示效果。

6.5 性能优化

避免不必要的重渲染,合理使用缓存和懒加载技术,提升项目性能。

七、实战案例:构建一个简单的管理后台

为了更好地理解Vue3与Element Plus的结合使用,本文将通过一个简单的管理后台案例,展示如何应用前述知识。

7.1 项目结构

my-element-plus-app/
├── public/
├── src/
│   ├── components/
│   │   ├── Header.vue
│   │   ├── Sidebar.vue
│   │   └── Content.vue
│   ├── views/
│   │   ├── Dashboard.vue
│   │   ├── Users.vue
│   │   └── Settings.vue
│   ├── App.vue
│   ├── main.js
│   └── router.js
├── variables.scss
├── vite.config.js
├── package.json
└── ... 

7.2 创建基础布局

Header.vue

<template><el-header height="60px" class="header"><div class="logo">管理后台</div><el-menu :default-active="activeIndex" mode="horizontal" @select="handleSelect"><el-menu-item index="1">首页</el-menu-item><el-menu-item index="2">用户管理</el-menu-item><el-menu-item index="3">设置</el-menu-item></el-menu></el-header>
</template><script setup>
import { ref } from 'vue'const activeIndex = ref('1')const handleSelect = (key) => {console.log('选中菜单项:', key)
}
</script><style scoped>
.header {display: flex;align-items: center;justify-content: space-between;background-color: #ffffff;box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
}.logo {font-size: 20px;font-weight: bold;margin-left: 20px;
}
</style>

Sidebar.vue

<template><el-aside width="200px" class="aside"><el-menu default-active="1" class="el-menu-vertical-demo"><el-menu-item index="1">首页</el-menu-item><el-menu-item index="2">用户管理</el-menu-item><el-menu-item index="3">设置</el-menu-item></el-menu></el-aside>
</template><script setup></script><style scoped>
.aside {background-color: #f5f7fa;
}
</style>

Content.vue

<template><el-main class="main-content"><router-view></router-view></el-main>
</template><script setup></script><style scoped>
.main-content {padding: 20px;background-color: #f0f2f5;
}
</style>

App.vue

<template><el-container style="height: 100vh;"><Header /><el-container><Sidebar /><Content /></el-container></el-container>
</template><script setup>
import Header from './components/Header.vue'
import Sidebar from './components/Sidebar.vue'
import Content from './components/Content.vue'
</script><style>
body, html, #app {margin: 0;padding: 0;
}
</style>

router.js

import { createRouter, createWebHistory } from 'vue-router'
import Dashboard from './views/Dashboard.vue'
import Users from './views/Users.vue'
import Settings from './views/Settings.vue'const routes = [{ path: '/', name: 'Dashboard', component: Dashboard },{ path: '/users', name: 'Users', component: Users },{ path: '/settings', name: 'Settings', component: Settings },
]const router = createRouter({history: createWebHistory(),routes,
})export default router

main.js

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

7.3 创建视图组件

Dashboard.vue

<template><div><el-card><h2>仪表盘</h2><p>欢迎来到管理后台!</p></el-card></div>
</template><script setup></script><style scoped>
h2 {margin-bottom: 20px;
}
</style>

Users.vue

<template><div><el-button type="primary" @click="openDialog">新增用户</el-button><el-table :data="users" style="width: 100%" stripe><el-table-column prop="id" label="ID" width="50"></el-table-column><el-table-column prop="name" label="姓名" width="150"></el-table-column><el-table-column prop="email" label="邮箱"></el-table-column><el-table-column label="操作" width="120"><template #default="scope"><el-button type="text" size="small" @click="editUser(scope.row)">编辑</el-button><el-button type="text" size="small" @click="deleteUser(scope.row)">删除</el-button></template></el-table-column></el-table><el-dialog :visible.sync="dialogVisible" title="新增用户"><el-form :model="form" label-width="80px"><el-form-item label="姓名"><el-input v-model="form.name"></el-input></el-form-item><el-form-item label="邮箱"><el-input v-model="form.email"></el-input></el-form-item></el-form><span slot="footer" class="dialog-footer"><el-button @click="dialogVisible = false">取 消</el-button><el-button type="primary" @click="submitForm">确 定</el-button></span></el-dialog></div>
</template><script setup>
import { ref } from 'vue'const users = ref([{ id: 1, name: '张三', email: 'zhangsan@example.com' },{ id: 2, name: '李四', email: 'lisi@example.com' },
])const dialogVisible = ref(false)
const form = ref({ name: '', email: '' })const openDialog = () => {dialogVisible.value = true
}const submitForm = () => {if (form.value.name && form.value.email) {users.value.push({id: users.value.length + 1,name: form.value.name,email: form.value.email,})dialogVisible.value = falseform.value = { name: '', email: '' }} else {// 添加表单验证提示}
}const editUser = (user) => {console.log('编辑用户', user)// 实现编辑逻辑
}const deleteUser = (user) => {users.value = users.value.filter(u => u.id !== user.id)
}
</script><style scoped>
.dialog-footer {text-align: right;
}
</style>

Settings.vue

<template><div><el-card><h2>设置</h2><el-form :model="settings" label-width="120px"><el-form-item label="语言"><el-select v-model="settings.language" placeholder="请选择"><el-option label="中文" value="zh"></el-option><el-option label="英文" value="en"></el-option></el-select></el-form-item><el-form-item label="主题"><el-select v-model="settings.theme" placeholder="请选择"><el-option label="默认" value="default"></el-option><el-option label="暗色" value="dark"></el-option></el-select></el-form-item><el-form-item><el-button type="primary" @click="saveSettings">保存</el-button></el-form-item></el-form></el-card></div>
</template><script setup>
import { ref } from 'vue'const settings = ref({language: 'zh',theme: 'default',
})const saveSettings = () => {console.log('保存设置', settings.value)// 实现保存逻辑
}
</script><style scoped>
h2 {margin-bottom: 20px;
}
</style>

7.4 运行项目

确保所有组件和路由配置正确后,运行以下命令启动项目:

npm run dev

打开浏览器访问http://localhost:3000,即可看到构建好的管理后台。

相关文章:

【前端】Vue3与Element Plus结合使用的超详细教程:从入门到精通

文章目录 Moss前沿AI一、教程概述1.1 目标读者1.2 学习目标 二、为什么选择Vue3与Element Plus2.1 Vue3的优势2.2 Element Plus的优势2.3 二者结合的优势 三、环境搭建3.1 创建Vue3项目3.2 安装Element Plus3.3 引入Element Plus 四、Element Plus常用组件使用详解4.1 按钮&…...

Linux 35.6 + JetPack v5.1.4之 pytorch升级

Linux 35.6 JetPack v5.1.4之 pytorch升级 1. 源由2. 升级步骤1&#xff1a;获取二进制版本步骤2&#xff1a;安装二进制版本步骤3&#xff1a;获取torchvision步骤4&#xff1a;安装torchvision步骤5&#xff1a;检查安装版本 3. 使用4. 补充4.1 torchvision版本问题4.2 支持…...

旷视科技C++面试题及参考答案

在 Linux 系统下常用的命令有哪些? 在 Linux 系统中有许多常用命令。首先是文件和目录操作相关的命令。“ls” 命令用于列出目录的内容,它有很多选项,比如 “ls -l” 可以以长格式显示文件和目录的详细信息,包括文件权限、所有者、大小、修改时间等;“ls -a” 则会显示所有…...

C 语言函数指针 (Pointers to Functions, Function Pointers)

C 语言函数指针 {Pointers to Functions, Function Pointers} 1. Pointers to Functions (函数指针)2. Function Pointers (函数指针)2.1. Declaring Function Pointers2.2. Assigning Function Pointers2.3. Calling Function Pointers 3. Jump Tables (转移表)References 1. …...

66.基于SpringBoot + Vue实现的前后端分离-律师事务所案件管理系统(项目 + 论文)

项目介绍 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装律师事务所案件管理系统软件来发挥其高效地信息处理的作用…...

Docker容器中Elasticsearch内存不足问题排查与解决方案

在使用Docker运行Elasticsearch&#xff08;ES&#xff09;时&#xff0c;可能会遇到内存不足的问题&#xff0c;导致ES无法启动。以下是一次完整的排查和解决过程。 问题描述 在启动ES时&#xff0c;日志提示如下错误&#xff1a; # Native memory allocation (mmap) failed…...

Ubuntu 下测试 NVME SSD 的读写速度

在 Ubuntu 系统下&#xff0c;测试 NVME SSD 的读写速度&#xff0c;有好多种方法&#xff0c;常用的有如下几种&#xff1a; 1. Gnome-disks Gnome-disks&#xff08;也称为“Disks”&#xff09;是 GNOME 桌面环境中的磁盘管理工具&#xff0c;有图形界面&#xff0c;是测试…...

Neo4j的部署和操作

注&#xff1a;本博文展示部署哥操作步骤和命令&#xff0c;具体报告及运行截图可通过上方免费资源绑定下载 一&#xff0e;数据库的部署与配置 在单个节点上对进行数据库的单机部署 &#xff08;1&#xff09;上传neo4j-community-3.5.30-unix.tar.gz到hadoop1的/export/so…...

react axios 优化示例

使用 axios 是 React 项目中非常常见的 HTTP 请求库。为了提升 axios 在 React 中的性能、可维护性和用户体验,我们可以从 代码组织、请求优化 和 用户体验优化 多个角度进行详细的优化。 一、安装与基础配置 安装 axios npm install axios创建 Axios 实例 为了更好地管理…...

探索数字化展馆:开启科技与文化的奇幻之旅

在科技飞速发展的当下&#xff0c;数字展馆作为一种新兴的展示形式&#xff0c;正逐渐走进大众的视野。数字展馆不仅仅是传统展馆的简单“数字化升级”&#xff0c;更是融合了多媒体、数字化技术以及人机交互等前沿科技的创新产物。 数字展馆借助VR、AR、全息投影等高科技手段&…...

基于深度学习的视觉检测小项目(七) 开始组态界面

开始设计和组态画面。 • 关于背景和配色 在组态画面之前&#xff0c;先要确定好画面的风格和色系。如果有前端经验和美术功底&#xff0c;可以建立自己的配色体系。像我这种工科男&#xff0c;就只能从网络上下载一些别人做好的优秀界面&#xff0c;然后在photo shop中抠取色…...

AI赋能跨境电商:魔珐科技3D数字人破解出海痛点

跨境出海进入狂飙时代&#xff0c;AI应用正在深度渗透并重塑着跨境电商产业链的每一个环节&#xff0c;迎来了发展的高光时刻。生成式AI时代的大幕拉开&#xff0c;AI工具快速迭代&#xff0c;为跨境电商行业的突破与飞跃带来了无限可能性。 由于跨境电商业务自身特性鲜明&…...

【C/C++】nlohmann::json从文件读取json,并进行解析打印,实例DEMO

使用 json::parse 函数将JSON格式的字符串解析为 nlohmann::json 对象。这个函数支持多种输入源&#xff0c;包括字符串、文件流等。 #include <iostream> #include <nlohmann/json.hpp> #include <fstream>using json nlohmann::json;int main() {// 解析…...

安装Anaconda搭建Python环境,并使用VSCode作为IDE运行Python脚本

下面详细说明如何安装Anaconda搭建Python环境&#xff0c;并使用VSCode作为编辑器运行Python脚本的过程&#xff1a; 1. 下载Anaconda 访问Anaconda的官方网站&#xff1a;https://www.anaconda.com/products/distribution 3. 根据您的操作系统选择适合的版本下载。Anaconda支…...

我用AI学Android Jetpack Compose之入门篇(1)

这篇我们先来跑通第一个Android Jetpack Compose工程&#xff0c;现在新版本的Android Studio&#xff0c;新建工程选择Empty Activity默认就会开启Jetpack Compose的支持&#xff0c;再次声明&#xff0c;答案来自 通义千问Ai 文章目录 1.用Android Jetpack Compose需要安装什…...

使用 Docker 查看 Elasticsearch 错误日志

在使用 Elasticsearch&#xff08;简称 ES&#xff09;的过程中&#xff0c;我们可能会遇到各种问题。为了快速定位和解决这些问题&#xff0c;查看错误日志是关键。本文将介绍如何使用 Docker 查看 Elasticsearch 的错误日志&#xff0c;并提供一些实用技巧。 1. 安装 Docker…...

使用Apache Mahout制作 推荐引擎

目录 创建工程 基本概念 关键概念 基于用户与基于项目的分析 计算相似度的方法 协同过滤 基于内容的过滤 混合方法 创建一个推荐引擎 图书评分数据集 加载数据 从文件加载数据 从数据库加载数据 内存数据库 协同过滤 基于用户的过滤 基于项目的过滤 添加自定…...

Elasticsearch:利用 AutoOps 检测长时间运行的搜索查询

作者&#xff1a;来自 Elastic Valentin Crettaz 了解 AutoOps 如何帮助你调查困扰集群的长期搜索查询以提高搜索性能。 AutoOps 于 11 月初在 Elastic Cloud Hosted 上发布&#xff0c;它通过性能建议、资源利用率和成本洞察、实时问题检测和解决路径显著简化了集群管理。 Au…...

python二元表达式 三元表达式

目录 二元表达式必须要有else,示例: 二元表达式: 三元表达式 可以嵌套成多元表达式 python 代码中,有时写 if else比较占行,把代码变一行的方法就是二元表达式, 二元表达式必须要有else,示例: if img is None:breakcv2.imwrite("aaa.jpg", img) if coun…...

计算机网络 (22)网际协议IP

一、IP协议的基本定义 IP协议是Internet Protocol的缩写&#xff0c;即因特网协议。它是TCP/IP协议簇中最核心的协议&#xff0c;负责在网络中传送数据包&#xff0c;并提供寻址和路由功能。IP协议为每个连接在因特网上的主机&#xff08;或路由器&#xff09;分配一个唯一的IP…...

函数与数列的交汇融合

前情概要 现行的新高考对数列的考查难度增加,那么整理与数列交汇融合的相关题目就显得非常必要了。 典例剖析 依托函数,利用导数,求数列的最值;№ 1 、 \color{blue}{№ 1、} №1、 等差数列 { a n } \{a_{n}\} {an​} 的前 n n n 项和为 S n S_{n} Sn​, 已知 S 10…...

行为型设计模式之Mediator(中介者)

行为型设计模式之Mediator&#xff08;中介者&#xff09; 1&#xff09;意图 用一个中介对象来封装一系列的对象的交互。中介者使各对象不需要显示的相互引用&#xff0c;从而使其耦合松散&#xff0c;而且可以独立地改变它们之间的交互。 2&#xff09;结构 其中&#xff…...

[文献阅读] Emo-VITS - An Emotion Speech Synthesis Method Based on VITS

[文献阅读]&#xff1a;An Emotion Speech Synthesis Method Based on VITS 在VITS基础上通过参考音频机制&#xff0c;获取情感信息&#xff0c;从而实现的情感TTS方式。 摘要 VITS是一种基于变分自编码器&#xff08;VAE&#xff09;和对抗神经网络&#xff08;GAN&#xf…...

STM32开发中,线程启动异常问题排查简述

1. 参数传递问题 错误类型&#xff1a;线程属性错误地使用。影响&#xff1a;线程属性&#xff08;如堆栈大小、优先级&#xff09;不匹配可能导致线程创建失败或行为异常。验证方法&#xff1a;检查 线程创建的返回值&#xff0c;若为 NULL 则表示线程创建失败。 2. 系统资源…...

【win | 自动更新关闭】win11

利用本地组策略编辑器 对于Windows 11专业版或更高版本的用户&#xff0c;可以利用本地组策略编辑器来完全关闭自动更新。按下“WinR”键&#xff0c;输入“gpedit.msc”并回车。在本地组策略编辑器中&#xff0c;依次展开“计算机配置”>“管理模板”>“Windows组件”&…...

大模型高效提示词Prompt编写指南

大模型高效Prompt编写指南 一、引言二、核心原则1. 清晰性原则&#xff1a;明确指令与期望2. 具体性原则&#xff1a;提供详细上下文3. 结构化原则&#xff1a;组织信息的逻辑与层次4. 迭代优化原则&#xff1a;通过反馈改进Prompt5. 简洁性原则&#xff1a;避免冗余信息 三、文…...

B站的视频怎么下载下来——Best Video下载器

B站&#xff08;哔哩哔哩&#xff09;作为国内最受欢迎的视频平台之一&#xff0c;聚集了无数优质内容&#xff1a;动漫番剧、游戏实况、学习课程、纪录片、Vlog、鬼畜剪辑……总有那么些视频让人想反复观看、离线观看&#xff0c;甚至剪辑创作。 但你是否遇到过这样的烦恼&am…...

PTC过流保护器件工作原理及选型方法

PTC过流保护器件 ‌&#xff08;Positive Temperature Coefficient&#xff0c;正温度系数热敏电阻&#xff09;是一种过流保护元件&#xff0c;其工作原理基于电阻值随温度变化的特性。当电路正常工作时&#xff0c;PTC的阻值很小&#xff0c;电流可以顺畅通过&#xff1b;但当…...

35 C 语言字符串转数值函数详解:strtof、strtod、strtold(含 errno 处理、ERANGE 错误)

1 strtof() 函数 1.1 函数原型 #include <stdlib.h> // 必须包含这个头文件才能使用 strtof() #include <errno.h> // 包含 errno 和 ERANGE #include <float.h> // 包含 FlOAT_MAX 和 FLOAT_MIN #include <math.h> // 包含 HUGE_VALF(inf)float…...

[c#]判定当前软件是否用管理员权限打开

有时一些软件的逻辑中需要使用管理员权限对某些文件进行修改时&#xff0c;那么该软件在执行或者打开的场合&#xff0c;就需要用使用管理员身份运行才能达到效果。那么在c#里&#xff0c;如何判定该软件是否是对管理员身份运的呢&#xff1f; 1.取得当前的windows用户。 2.取得…...