Vue-01(Vue CLI创建项目以及文件配置说明)
了解 Vue CLI 及其功能
Vue CLI 是搭建、构建和管理 Vue.js 项目的标准工具。它通过提供一致的项目结构、处理复杂的构建配置以及通过插件提供一组丰富的功能来简化开发工作流程。了解 Vue CLI 对于任何 Vue.js 开发人员来说都至关重要,因为它可以显着提高生产力并确保遵循最佳实践。本课将全面概述 Vue CLI 及其功能,为你有效地创建和管理 Vue.js 项目做好准备。
Vue CLI 的核心概念
Vue CLI(命令行界面)不仅仅是一个项目生成器;它是一个完整的 Vue.js 应用程序开发生态系统。它抽象出 Webpack、Babel 和 PostCSS 等构建工具的复杂性,使开发人员能够专注于编写 Vue.js 代码。
项目初始化
Vue CLI 的主要功能是初始化新的 Vue.js 项目。它提供标准化的项目结构和配置,确保不同项目之间的一致性。
- 基本示例: 当你运行
vue create my-project
时,Vue CLI 会提示你选择一个预设。“default” 预设提供了 Babel 和 ESLint 的基本设置。 - 高级示例: 您还可以在项目创建过程中手动选择 Vue Router、Vuex、CSS 预处理器(Sass、Less、Stylus)、TypeScript 等功能。这使您可以根据自己的特定需求定制项目。
开发服务器
Vue CLI 包括一个具有热重载功能的内置开发服务器。这意味着,当您对代码进行更改时,浏览器会自动更新,而无需手动刷新。
- 基本示例: 创建项目后,您可以通过运行
npm run serve
或yarn serve
来启动开发服务器。这通常会在http://localhost:8080
上启动服务器。 - 高级示例: 您可以通过修改
vue.config.js
文件来自定义开发服务器的行为。例如,您可以更改端口、启用 HTTPS 或配置代理设置。
构建过程
Vue CLI 通过提供单个命令来编译用于生产的代码,从而简化了构建过程。它通过缩小代码、删除未使用的代码 (tree-shaking) 和生成优化的资产来优化您的代码。
- 基本示例: 要构建用于生产的项目,您可以运行
npm run build
或yarn build
。这将创建一个包含优化文件的dist
目录。 - 高级示例: 您可以通过修改
vue.config.js
文件来自定义构建过程。例如,您可以配置代码切分、更改输出目录或添加自定义 Webpack 插件。
插件
Vue CLI 的插件系统允许您通过附加功能和集成来扩展其功能。插件可以添加对 TypeScript、CSS 预处理器、测试框架等的支持。
- 基本示例: 要安装插件,你可以使用
vue add
命令。例如,vue add @vue/cli-plugin-eslint
将 ESLint 添加到您的项目中。 - 高级示例: 您还可以创建自己的自定义插件来封装可重用的配置和逻辑。这样,您就可以在多个项目之间共享最佳实践并实施一致性。
Vue CLI 的主要特点
Vue CLI 提供了一系列功能,可以增强开发体验并提高项目的可维护性。
预设
预设是预配置的插件和设置集,可简化项目初始化。它们允许您快速创建具有通用配置的项目,而无需手动选择每个功能。
- 基本示例:“default” 预设包括 Babel 和 ESLint,为现代 JavaScript 开发提供基本设置。
- 高级示例: 您可以创建自己的自定义预设来封装您的首选配置并与您的团队共享。这确保了所有项目之间的一致性。
图形用户界面
Vue CLI 提供了一个图形用户界面 (GUI),允许你在不使用命令行的情况下管理项目、安装插件和配置设置。
- 基本示例: 要打开 GUI,您可以在项目目录中运行
vue ui
。 - **高级示例:**GUI 允许您检查项目的依赖项、分析构建性能以及可视化项目的结构。
即时原型设计
Vue CLI 允许你快速构建 Vue.js 组件原型,而无需创建完整的项目。这对于试验新想法或测试不同的方法非常有用。
- 基本示例: 你可以创建一个
.vue
文件并运行vue serve MyComponent.vue
在浏览器中快速预览它。 - 高级示例: 你也可以使用
vue build MyComponent.vue
来构建一个单文件组件,以便在其他项目中使用。
任务管理
Vue CLI 提供了一个任务管理系统,允许你定义和运行自定义任务。这对于自动执行常见开发任务(例如运行测试、检查代码或部署应用程序)非常有用。
- 基本示例: 您可以使用
scripts
属性在package.json
文件中定义自定义任务。例如,您可以使用npm test
定义一个任务来运行单元测试。 - 高级示例: 您可以使用
npm-run-all
等工具或并发
运行多个任务,从而改进您的开发工作流程。
实际示例和演示
让我们来看看一些使用 Vue CLI 创建和管理 Vue.js 项目的实际示例。
创建新项目
- 安装 Vue CLI: 如果你还没有,请使用
npm install -g @vue/cli
或yarn global add @vue/cli
全局安装 Vue CLI。 - 创建新项目: 运行
vue create my-new-project
。 - 选择预设: 选择 “Manually select features” 选项。
- 选择功能: 选择 “Babel”、“Vue Router”、“Vuex”、“CSS Pre-processors”、“Linter / Formatter”。
- 选择 CSS 预处理器: 选择 “Sass/SCSS (with dart-sass)”。
- 选择 Linter / Formatter: 选择 “ESLint + Prettier”。
- 选择其他 lint 功能: 选择 “Lint on save(保存时发现 lint)”。
- 选择放置 Babel、ESLint 等配置的位置: 选择 “In dedicated config files”。
- 为将来的项目保存预设?: 选择 “No”。
- 导航到 Project Directory:
cd my-new-project
。 - 运行开发服务器:
npm run serve
或yarn serve
。
添加插件
- 导航到您的项目目录:
cd my-project
。 - 添加 TypeScript 插件: 运行
vue add @vue/cli-plugin-typescript
. - 回答提示: Vue CLI 会问你一些关于如何配置 TypeScript 的问题。选择最适合您需求的选项。
自定义构建过程
- 创建
vue.config.js
: 如果您还没有,请在项目的根目录中创建一个vue.config.js
文件。 - 修改
vue.config.js
文件: 添加以下代码以自定义构建过程:
module.exports = {outputDir: 'dist', // Change the output directoryassetsDir: 'static', // Change the assets directoryfilenameHashing: false, // Disable filename hashingdevServer: {port: 8081, // Change the development server portproxy: {'/api': {target: 'http://localhost:3000', // Proxy requests to a backend serverchangeOrigin: true,pathRewrite: {'^/api': '' // Remove the /api prefix from the URL}}}},configureWebpack: {// Add custom Webpack configuration}
};
使用 Vue CLI 设置新的 Vue 项目
设置一个新的 Vue 项目是任何 Vue.js 开发过程中至关重要的第一步。Vue CLI(命令行界面)简化了这一过程,提供了一种标准化且高效的方法来构建具有最佳实践的项目。本课将指导你完成使用 Vue CLI 设置新 Vue 项目的过程,探索可用于根据你的特定需求定制项目的各种选项和配置。我们将深入研究不同的项目预设、包管理器和基本插件,它们可以增强您的开发工作流程。
使用 Vue CLI 创建新项目
Vue CLI 使用单个命令简化了项目创建:vue create <project-name>
。此命令将启动交互式提示,允许您选择预设或手动选择功能。
交互式项目创建
-
打开您的终端: 导航到要在其中创建项目的目录。
-
运行 creation 命令: 执行
vue create my-vue-project
(将my-vue-project
替换为你想要的项目名称)。 -
**选择预设:**CLI 将为您提供几个选项:
- 默认 ([Vue 3] babel, eslint): 此选项提供了 Vue 3 的基本设置,用于转译的 Babel 和用于代码 linting 的 ESLint。
- 默认 ([Vue 2] babel, eslint): 与上述类似,但使用 Vue 2。由于你正在扩展自己的技能,因此建议专注于 Vue 3。
- 手动选择特征: 这允许您通过选择 TypeScript、Router、Vuex、CSS Pre-processors、Linters 等特定功能来自定义您的项目。
手动特征选择
选择 “Manually select features” 可以对您的项目设置进行精细控制。让我们探索您可以选择的主要功能:
- TypeScript 中: 添加了对静态类型的 TypeScript 支持,并改进了代码可维护性。
- 路由器: 包括用于单页应用程序 (SPA) 导航的 Vue 路由器。
- Vuex 的: 集成 Vuex 以进行集中式状态管理,非常适合大型应用程序。
- CSS 预处理器: 允许使用 CSS 预处理器,如 Sass/SCSS、Less 或 Stylus。
- Linter / 格式化程序: 配置 linter (ESLint、Prettier) 以强制执行代码样式和格式。
- 单元测试: 使用 Jest 或 Mocha 设置单元测试环境。
- E2E 测试: 使用 Cypress 或 Nightwatch 配置端到端测试。
示例:使用 TypeScript、Router 和 Vuex 创建项目
让我们使用 TypeScript、Vue Router 和 Vuex 创建一个名为 advanced-vue-app
的项目。
- 运行
vue create advanced-vue-app
- 选择 “Manually select features”
- 使用箭头键和空格键选择 “TypeScript”、“Router” 和 “Vuex”。如果您更喜欢使用 SCSS 或其他预处理器,您还可以选择“CSS 预处理器”。
- 选择 Vue 版本(建议使用 Vue 3)。
- 回答有关类样式组件语法、单独配置文件以及是否保存预设以备将来使用的后续提示。
Package Manager 选择
在项目创建过程中,Vue CLI 会要求你选择一个包管理器:
- npm: Node.js 的默认包管理器。
- yarn: npm 的更快替代品。
- pnpm: 一个更高效的包管理器,可节省磁盘空间。
虽然 npm 被广泛使用,但 yarn 和 pnpm 提供了性能改进。考虑将 yarn 或 pnpm 用于具有许多依赖项的大型项目。
在 GUI 中创建项目
Vue CLI 还为项目管理提供了图形用户界面 (GUI)。要访问 GUI,请在终端中运行 vue ui
。这将打开一个浏览器窗口,你可以在其中创建、管理和配置你的 Vue 项目。GUI 提供了一种可视化的方式来选择功能、安装插件和运行任务。
项目结构和关键文件
创建项目后,让我们检查一下基本的项目结构:
my-vue-project/
├── node_modules/ # 项目依赖包目录(由 npm/yarn 安装,存放所有依赖库)
├── public/ # 公共静态资源目录(不会被 Webpack 处理)
│ └── index.html # 应用在浏览器中的入口 HTML 文件,Vue 会挂载到其中的 <div id="app">
├── src/ # 源代码目录(所有开发相关代码都放这里)
│ ├── assets/ # 静态资源,如图片、字体等
│ ├── components/ # Vue 组件目录(可复用 UI 单元)
│ ├── router/ # Vue Router 配置目录(如果项目选择了路由功能)
│ │ └── index.ts # 路由配置文件,定义页面路径与组件的对应关系
│ ├── store/ # Vuex 状态管理配置目录(如果项目使用了 Vuex)
│ │ └── index.ts # Vuex 配置文件,定义全局状态和 mutations/actions
│ ├── App.vue # 应用的根组件(所有子组件的容器)
│ └── main.ts # 应用程序的入口文件,Vue 实例在这里被创建并挂载到 DOM 上
├── .gitignore # Git 忽略配置文件(列出不应提交到版本库的文件或文件夹)
├── babel.config.js # Babel 转译配置文件,用于将新语法转换为兼容旧浏览器的代码
├── package.json # 项目的元数据文件,包括项目名称、依赖、脚本命令等
├── README.md # 项目说明文档,常用于描述项目用途、安装方法、使用指南等
├── vue.config.js #(可选):此文件允许你自定义 Vue CLI 配置
└── tsconfig.json # TypeScript 配置文件,定义 TS 编译规则(若项目启用了 TypeScript)
关键文件解释
package.json
: 此文件包含基本的项目元数据,包括依赖项、脚本和项目名称。它是项目依赖项管理的核心。src/main.ts
: 这是应用程序的入口点。它初始化 Vue 实例并将其挂载到 DOM 上。src/App.vue
: 这是应用程序的根组件。它通常包含应用程序的主要布局和结构。public/index.html
: 这是用作浏览器中应用程序入口点的主 HTML 文件。vue.config.js
: (可选):此文件允许你自定义 Vue CLI 配置,例如修改 webpack 设置或添加自定义插件。tsconfig.json
(如果选择了 TypeScript): 此文件为您的项目配置 TypeScript 编译器选项。babel.config.js
: 文件配置 Babel,用于将 JavaScript 代码转换为与旧浏览器兼容的版本。
了解 package.json
package.json
文件对于管理项目的依赖项和脚本至关重要。以下是其关键部分的细分:
name
: 项目的名称。version
: 项目的当前版本。dependencies
: 生产依赖项及其版本的列表。devDependencies
: 开发依赖项(例如,测试库、Linter)及其版本的列表。scripts
: 可以使用npm run <script-name>
或yarn <script-name>
执行的一组命令。常见脚本包括serve
(用于开发)build
(用于生产)test:unit
(用于运行测试)。lint
:运行代码 linting。
例:
{"name": "advanced-vue-app","version": "0.1.0","private": true,"scripts": {"serve": "vue-cli-service serve","build": "vue-cli-service build","test:unit": "vue-cli-service test:unit","lint": "vue-cli-service lint"},"dependencies": {"core-js": "^3.6.5","vue": "^3.0.0","vue-router": "^4.0.0","vuex": "^4.0.0"},"devDependencies": {"@types/jest": "^24.0.19","@typescript-eslint/eslint-plugin": "^4.18.0","@typescript-eslint/parser": "^4.18.0","@vue/cli-plugin-babel": "~4.5.0","@vue/cli-plugin-eslint": "~4.5.0","@vue/cli-plugin-router": "~4.5.0","@vue/cli-plugin-typescript": "~4.5.0","@vue/cli-plugin-unit-jest": "~4.5.0","@vue/cli-plugin-vuex": "~4.5.0","@vue/cli-service": "~4.5.0","@vue/compiler-sfc": "^3.0.0","@vue/eslint-config-typescript": "^7.0.0","@vue/test-utils": "^2.0.0-0","eslint": "^6.7.2","eslint-plugin-vue": "^7.0.0","typescript": "~4.1.5"}
}
babel.config.js
babel.config.js
文件配置 Babel,用于将 JavaScript 代码转换为与旧浏览器兼容的版本。
presets
:此部分指定要使用的 Babel 预设。预设是针对特定环境或语言功能配置 Babel 的插件集合。最常见的预设是@vue/cli-plugin-babel/preset
,它包括为 Vue 应用程序转译现代 JavaScript 代码所需的插件。
例:
module.exports = {presets: ['@vue/cli-plugin-babel/preset']
}
vue.config.js
vue.config.js
文件是 Vue CLI 的主要配置文件。它允许您自定义项目构建过程的各个方面。
publicPath
:指定应用程序的基 URL。在将应用程序部署到 Web 服务器上的子目录时使用。outputDir
:指定将放置构建文件的目录。默认值为dist
。assetsDir
:指定放置静态资源的目录。默认值为''
。devServer
:此部分配置开发服务器。您可以指定端口号、代理设置和热重载行为等选项。configureWebpack
:此选项允许您直接配置底层 webpack 配置。这对于高级自定义非常有用。chainWebpack
:此选项提供了一种更灵活的方式来使用可链接的 API 来修改 webpack 配置。css
:此部分配置 CSS 相关选项,例如 CSS 模块和预处理器。
例:
module.exports = {publicPath: '/',outputDir: 'dist',assetsDir: 'static',devServer: {port: 8080,proxy: {'/api': {target: 'http://localhost:3000',changeOrigin: true}}},configureWebpack: {// Custom webpack configuration},chainWebpack: config => {// Modify webpack configuration using chainable API}
}
配置 vue.config.js
vue.config.js
文件提供了广泛的配置选项,可以根据您的特定需求定制您的 Vue CLI 项目。让我们探索一些常见的配置场景。
更改输出目录
默认情况下,Vue CLI 将构建的文件放在 dist
目录中。您可以使用 outputDir
选项更改此设置。
module.exports = {outputDir: 'build'
}
这会将构建的文件放在 build
目录而不是 dist
中。
设置代理
在开发过程中,您可能需要访问在不同域上运行的 API。您可以使用 devServer
部分中的 proxy
选项来设置代理。
module.exports = {devServer: {proxy: {'/api': {target: 'http://localhost:3000',changeOrigin: true}}}
}
这会将所有对 /api
的请求代理到 http://localhost:3000
。changeOrigin
选项对于处理 CORS 问题非常重要。
修改 Webpack 配置
对于更高级的自定义,您可以使用 configureWebpack
或 chainWebpack
选项直接修改底层 webpack 配置。
configureWebpack
:此选项允许您提供 webpack 配置对象或修改现有配置的函数。
module.exports = {configureWebpack: {resolve: {alias: {'@': '/src'}}}
}
这将创建一个指向 src
目录的别名 @
,允许你使用 @/components/MyComponent.vue
导入模块。
chainWebpack
:此选项提供了一种更灵活的方式来使用可链接的 API 来修改 webpack 配置。这对于修改配置的特定部分而不必覆盖整个对象非常有用。
module.exports = {chainWebpack: config => {config.module.rule('vue').use('vue-loader').loader('vue-loader').tap(options => {// modify the options...return options})}
}
这个例子展示了如何修改传递给 vue-loader
的选项。
运行开发服务器
要启动开发服务器,请在终端中导航到您的项目目录并运行 npm run serve
或 yarn serve
(取决于您选择的包管理器)。这将编译您的代码并启动本地开发服务器,通常为 http://localhost:8080
。由于热重载,您对代码所做的任何更改都将自动反映在浏览器中。
自定义项目设置
Vue CLI 提供了多种方法来自定义初始功能选择之外的项目设置。
查看 CLI 插件
Vue CLI 插件是扩展 Vue CLI 功能的 npm 包。他们可以添加新命令、修改构建过程或提供其他功能。你可以使用 vue add <plugin-name>
命令来安装插件。
示例:为 Vuex 添加 Vue CLI 插件。
vue add vuex
此命令将安装 Vuex 插件并自动配置您的项目以使用 Vuex。
环境变量
Vue CLI 支持不同环境(例如,开发、生产)的环境变量。您可以在 .env
文件中定义环境变量。
.env
:默认环境变量.env.development
:开发模式的环境变量.env.production
:生产模式的环境变量
环境变量可在您的代码中使用 process.env
访问。
例:
// .env.development
VUE_APP_API_URL=http://localhost:3000/api
<template><div>API URL: {{ apiUrl }}</div>
</template><script>
export default {computed: {apiUrl() {return process.env.VUE_APP_API_URL;}}
};
</script>
相关文章:
Vue-01(Vue CLI创建项目以及文件配置说明)
了解 Vue CLI 及其功能 Vue CLI 是搭建、构建和管理 Vue.js 项目的标准工具。它通过提供一致的项目结构、处理复杂的构建配置以及通过插件提供一组丰富的功能来简化开发工作流程。了解 Vue CLI 对于任何 Vue.js 开发人员来说都至关重要,因为它可以显着提高生产力并…...

华为云Flexus+DeepSeek征文 | DeepSeek-V3/R1商用服务开通体验全流程及使用评测
作者简介 我是摘星,一名专注于云计算和AI技术的开发者。本次通过华为云MaaS平台体验DeepSeek系列模型,将实际使用经验分享给大家,希望能帮助开发者快速掌握华为云AI服务的核心能力。 目录 1. 前言 2. 开通DeepSeek-V3/R1商用服务 2.1 准…...
redis列表类型
练习命令使用,具体如下: lpush llen lrange lpoprpush lindex lset rpop linsert LPUSH命令用来向列表左边增加元素,返回值表示增加元素后列表的长度 127.0.0.1:6379> lpush letter A B C (integer) 3 127.0.0.1:6379> type letter …...

人工智能数学基础实验(一):智能推荐系统实战
一、实验目的 本次实验旨在通过构建用户相似度矩阵和实现个性化推荐,帮助我们直观理解推荐系统的核心原理及其背后的数学基础。具体目标如下: 运用 Python 计算用户间的评分相似度,掌握余弦相似度等数学工具在衡量用户偏好中的应用ÿ…...

uni-app学习笔记十二-vue3中组件传值(对象传值)
一.单对象传值 父组件定义对象的值 <template><view><UserInfo :obj"userinfo"></UserInfo></view> </template><script setup>import {ref} from "vue"const userinfo ref({name:"蛛儿",avatar:&…...

Vue.js教学第十四章:Vuex模块化,打造高效大型应用状态管理
Vuex(二):深入剖析 Vuex 模块化与高级应用 在大型 Vue 应用开发中,随着应用功能的不断扩展和复杂度的增加,状态管理的难度也随之上升。Vuex 作为 Vue.js 的官方状态管理库,提供了模块化功能,使得我们可以将状态管理逻辑拆分成多个模块,从而提高 Vuex 的可维护性和可读…...
Ubuntu/Linux 服务器上调整系统时间(日期和时间)
在 Ubuntu/Linux 服务器上调整系统时间(日期和时间)可以通过以下命令实现,具体分为 手动设置 和 自动同步(NTP)两种方式: 1. 查看当前系统时间 date或查看详细时区信息: timedatectl2. 手动设…...

win11 禁用/恢复 内置笔记本键盘(保证管用)
文章目录 禁用启用 禁用 1)按下 win x,点击 设备管理器 2)拔掉所有笔记本外设(一定要都拔掉,不然后面禁用设备会混淆),然后右键点击 键盘 > HID Keyboard Device 2)点击 更新…...

精度不够?光纤激光尺0.2ppm误差解锁微米级制造
当“精度焦虑”成为制造业的隐形门槛: 在半导体光刻中,1nm偏差可能导致整片晶圆报废; 在精密机床加工中,热变形让传统测量工具“失灵”…… “高精度、高稳定、抗干扰”——工业超精密制造的三大痛点,如何破局…...

Android 16系统源码_自由窗口(一)触发自由窗口模式
前言 从 Android 7.0 开始,Google 推出了一个名为“多窗口模式”的新功能,允许在设备屏幕上同时显示多个应用,多窗口模式允许多个应用同时共享同一屏幕,多窗口模式(Multi Window Supports)目前支持以下三种…...

sqli-labs第十八关——POST-UA注入
一:判断注入类型 先在用户名和密码框尝试判断,发现都得不到需要的回显 所以查看源码 可以发现username和password的输入后端都做了检查,没法直接注入 所以我们尝试uagent注入 UA注入: 没有url解码处理只识别原始空格ÿ…...
流式优先架构:彻底改变实时数据处理
近年来,随着现代组织的数据环境日趋复杂且高速流动,传统数据库系统已难以满足实时分析、物联网应用以及即时决策的需求。围绕批处理和静态数据模型设计的 RDBMS(关系型数据库管理系统)在架构层面缺乏实时处理能力,而流…...
WebSockets 在实时通信中的应用与优化
WebSockets 在实时通信中的应用与优化 1. 引言 在现代互联网应用中,实时通信 已成为许多场景的核心需求,如在线聊天、直播互动、在线游戏、实时数据推送等。而传统的 HTTP 轮询或长轮询方式往往伴随着 高延迟、资源浪费 等问题,使得开发者在…...
零基础教程:用 Docker + pgloader 将 MySQL 数据库迁移到 PostgreSQL
在日常开发中,可能会遇到从 MySQL 迁移到 PostgreSQL 的需求。你也许是: 正在准备从传统架构转向云原生;想使用 PostgreSQL 更强的事务与 JSON 支持;想统一团队数据库技术栈;纯粹为了尝试学习不同的数据库系统。别担心,无需手动写导出脚本,无需配置复杂工具,只需借助 D…...

mac上安装 Rust 开发环境
1.你可以按照提示在终端中执行以下命令(安全、官方支持): curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh然后按提示继续安装即可。 注意:安装过程中建议选择默认配置(按 1 即可)。 如果遇…...
解决RedisTemplate的json反序列泛型丢失问题
背景 在使用redisTemplate操作redis时我们针对对象的序列化通常将序列化成json存储到redis。一般如下配置 Bean ConditionalOnMissingBean public RedisTemplate<?, ?> redisTemplate(RedisConnectionFactory redisConnectionFactory, ObjectProvider<RedisT…...
【Elasticsearch】创建别名的几种方式
在 Elasticsearch 中,有以下几种创建索引别名的方式: 1. 在创建索引时指定别名 在创建索引时,可以直接在索引定义中指定别名。这种方式可以在索引创建的同时完成别名的绑定,避免后续的额外操作。 示例: json PUT /te…...
【JAVA】中文我该怎么排序?
📘 Java 中文排序教学文档(基于 Collator) 🧠 目录 概述Java 中字符串排序的默认行为为什么需要 Collator使用 Collator 进行中文排序升序 vs 降序排序自定义对象字段排序多字段排序示例总结对比表附录:完整代码示例 …...

《C 语言字符串操作从入门到实战(下篇):strncpy/strncat/strstr 等函数原理与实现》
目录 七. strncpy函数的使用与模拟实现 7.1 strncpy函数理解 7.2 strncpy函数使用示例 7.3 strncpy函数模拟实现 八. strncat函数的使用与模拟实现 8.1 strncat函数理解 8.2 strncat函数使用示例 8.3 strncat函数模拟实现 九. strncmp函数的使用 9.1 strncmp函数理…...

百度飞桨PaddleOCR 3.0开源发布 OCR精度跃升13%
百度飞桨 PaddleOCR 3.0 开源发布 2025 年 5 月 20 日,百度飞桨团队正式发布了 PaddleOCR 3.0 版本,并将其开源。这一新版本在文字识别精度、多语种支持、手写体识别以及高精度文档解析等方面取得了显著进展,进一步提升了 PaddleOCR 在 OCR …...

Xilinx 7Series\UltraScale 在线升级FLASH STARTUPE2和STARTUPE3使用
一、FPGA 在线升级 FPGA 在线升级FLASH时,一般是通过逻辑生成SPI接口操作FLASH,当然也可以通过其他SOC经FPGA操作FLASH,那么FPGA就要实现在启动后对FLASH的控制。 对于7Series FPGA,只有CCLK是专用引脚,SPI接口均为普…...

数字孪生驱动的离散制造智能升级:架构设计与工程实践
针对离散制造行业多品种、小批量的生产特性,本文提出一种基于数字孪生的智能制造解决方案。以某国家级智能制造试点示范项目为载体,构建"云-边-端"协同的数字孪生系统,实现设备综合效率(OEE)提升28.7%、订单…...

9.4在 VS Code 中配置 Maven
在 VS Code 中配置 Maven 需要完成 Maven 环境安装 一、安装 Maven(如果未安装) 下载 Maven 访问 Apache Maven 官网,下载最新版本的 Maven(如apache-maven-3.9.9-bin.zip)。 解压文件 将下载的 ZIP 文件解压到本地目…...
mmaction2——tools文件夹下
build_rawframes.py 用法示例 python tools/data/build_rawframes.py data/videos data/frames --task rgb --level 2 --ext mp4 --use-opencv --num-worker 8总结: 只需要 RGB 帧,推荐 --use-opencv,简单高效,无需额外依赖。 …...

新能源汽车充电桩资源如何利用资源高效配置?
新能源汽车充电桩资源的高效配置是实现绿色交通转型的关键环节。随着新能源汽车保有量的快速增长,充电基础设施的供需矛盾日益凸显。如何优化充电桩资源布局、提升使用效率、平衡不同场景需求,成为当前亟待解决的问题。以下是几点关于充电桩资源高效配置…...
python 程序实现了毫米波大规模MIMO系统中的信道估计对比实验
python 程序实现了毫米波大规模MIMO系统中的信道估计对比实验 import numpy as np import matplotlib.pyplot as plt import tensorflow as tf from tensorflow.keras.models import Sequential, Model from tensorflow.keras.layers...
NTFS0x90属性和0xa0属性和0xb0属性的一一对应关系是index_entry中的index_node中VCN和runlist和bitmap
第一部分: 0: kd> dt _FILE_RECORD_SEGMENT_HEADER 0xc1241400 Ntfs!_FILE_RECORD_SEGMENT_HEADER 0x000 MultiSectorHeader : _MULTI_SECTOR_HEADER 0x008 Lsn : _LARGE_INTEGER 0x80e74aa 0x010 SequenceNumber : 5 0x012 Referen…...
PDF 编辑批量拆分合并OCR 识别
各位办公小能手们!你们有没有过被PDF文件折磨得死去活来的经历?反正我是有,每次要编辑PDF,那叫一个费劲啊!不过呢,今天我要给大家介绍一款神器——WPS PDF to Word,有了它,PDF编辑那…...

LeetCode --- 450周赛
题目列表 3550. 数位和等于下标的最小下标 3551. 数位和排序需要的最小交换次数 3552. 网格传送门旅游 3553. 包含给定路径的最小带权子树 II 一、数位和等于下标的最小下标 直接模拟计算数位和即可,代码如下 // C class Solution { public:int smallestIndex(ve…...

SpringBoot中消息转换器的选择
SpringBoot返回xml-CSDN博客 是返回JSON 还是XML 是由内容协商机制确认的,SpringBoot为了开发便利性,如果我没有该消息转换器,默认就返回了JSON,如果需要XML那么,引入 <dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>…...