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

【Vue教程】使用Vite快速搭建前端工程化项目 | Vue3 | Vite | Node.js

🙋大家好!我是毛毛张!
🌈个人首页: 神马都会亿点点的毛毛张

🚩今天毛毛张分享的是关于如何快速🏃‍♂️搭建一个前端工程化的项目的环境搭建以及流程🌠

文章目录

  • 1.前端工程化环境搭建🍉
    • 1.1 什么是前端工程化
    • 1.2 nodejs的简介和安装
      • 1.2.1 什么是Nodejs
      • 1.2.2 如何安装nodejs
    • 3.2 npm 配置和使用
      • 3.2.1 npm 安装和配置
      • 3.2.2 npm 常用命令🥭
  • 2.Vue3通过Vite实现工程化🍅
    • 2.1 Vue3简介🍅
    • 2.2 Vite的介绍
    • 2.3 Vite创建Vue3工程化项目🫐
      • 2.3.1 Vite+Vue3项目的创建、启动、停止🍓
      • 2.3.2 Vite+Vue3项目的目录结构

1.前端工程化环境搭建🍉

1.1 什么是前端工程化

  • 前端工程化是使用软件工程的方法单独解决前端的开发流程中模块化、组件化、规范化、自动化的问题,其主要目的为了提高效率和降低成本。

1.2 nodejs的简介和安装

1.2.1 什么是Nodejs

1684487715655
  • Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,可以使 JavaScript 运行在服务器端。使用 Node.js,可以方便地开发服务器端应用程序,如 Web 应用、API、后端服务,还可以通过 Node.js 构建命令行工具等。相比于传统的服务器端语言(如 PHP、Java、Python 等),Node.js 具有以下特点:
    • 单线程,但是采用了事件驱动、异步 I/O 模型,可以处理高并发请求。
    • 轻量级,使用 C++ 编写的 V8 引擎让 Node.js 的运行速度很快。
    • 模块化,Node.js 内置了大量模块,同时也可以通过第三方模块扩展功能。
    • 跨平台,可以在 Windows、Linux、Mac 等多种平台下运行。
  • Node.js 的核心是其管理事件和异步 I/O 的能力。Node.js 的异步 I/O 使其能够处理大量并发请求,并且能够避免在等待 I/O 资源时造成的阻塞。此外,Node.js 还拥有高性能网络库和文件系统库,可用于搭建 WebSocket 服务器、上传文件等。在 Node.js 中,我们可以使用 JavaScript 来编写服务器端程序,这也使得前端开发人员可以利用自己已经熟悉的技能来开发服务器端程序,同时也让 JavaScript 成为一种全栈语言。Node.js 受到了广泛的应用,包括了大型企业级应用、云计算、物联网、游戏开发等领域。常用的 Node.js 框架包括 Express、Koa、Egg.js 等,它们能够显著提高开发效率和代码质量。

1.2.2 如何安装nodejs

  1. 直接打开官网下载对应操作系统的LST版本
    • 官网链接:https://nodejs.org/en
  2. 双击安装包进行安装,安装过程中遵循默认选项即可(或者参照https://www.runoob.com/nodejs/nodejs-install-setup.html )。安装完成后,可以在命令行终端输入 node -vnpm -v 查看 Node.js 和 npm 的版本号。
    1687765256680
  3. 定义一个app.js文件,cmd到该文件所在目录,然后在dos上通过node app.js命令即可运行
function sum(a,b){return a+b;
}
function main(){console.log(sum(10,20))
}
main()

3.2 npm 配置和使用

  • NPM全称Node Package Manager,是Node.js包管理工具,是全球最大的模块生态系统,里面所有的模块都是开源免费的;也是Node.js的包管理工具,相当于后端的Maven

3.2.1 npm 安装和配置

1.安装

  • 安装node,自动安装npm包管理工具!

2.配置依赖下载使用阿里镜像

  • npm 安装依赖包时默认使用的是官方源,由于国内网络环境的原因,有时会出现下载速度过慢的情况。为了解决这个问题,可以配置使用阿里镜像来加速 npm 的下载速度,具体操作如下:
  • 打开命令行终端,执行以下命令,配置使用阿里镜像:
npm config set registry https://registry.npm.taobao.org
npm config set registry https://registry.npmmirror.com # 推荐
  • 确认配置已生效,可以使用以下命令查看当前 registry 的配置:如果输出结果为 https://registry.npmmirror.com,说明配置已成功生效。
npm config get registry
  • 如果需要恢复默认的官方源,可以执行以下命令:
npm config set registry https://registry.npmjs.org/

3.配置全局依赖下载后存储位置

  • 在 Windows 系统上,npm 的全局依赖默认安装在 <用户目录>\AppData\Roaming\npm 目录下。如果需要修改全局依赖的安装路径,可以按照以下步骤操作:
    1. 创建一个新的全局依赖存储目录,例如 D:\GlobalNodeModules
    2. 打开命令行终端,执行以下命令来配置新的全局依赖存储路径:
      npm config set prefix "D:\GlobalNodeModules"
      
    3. 确认配置已生效,可以使用以下命令查看当前的全局依赖存储路径:
      npm config get prefix
      

4.升级npm版本

  • cmd 输入npm -v 查看版本
  • 如果node中自带的npm版本过低!则需要升级至9.6.6!
    npm install -g npm@9.6.6
    

3.2.2 npm 常用命令🥭

1.项目初始化

  • npm init
    • 进入一个vscode创建好的项目中, 执行 npm init 命令后,npm 会引导您在命令行界面上回答一些问题,例如项目名称、版本号、作者、许可证等信息,并最终生成一个package.json 文件。package.json信息会包含项目基本信息!类似maven的pom.xml
  • npm init -y
    • 执行,-y yes的意思,所有信息使用当前文件夹的默认值!不用挨个填写!

2.安装依赖 (查看所有依赖地址 https://www.npmjs.com )

  • npm install 包名 或者 npm install 包名@版本号
    • 安装包或者指定版本的依赖包(安装到当前项目中)
  • npm install -g 包名
    • 安装全局依赖包(安装到d:/GlobalNodeModules)则可以在任何项目中使用它,而无需在每个项目中独立安装该包。
  • npm install
    • 安装package.json中的所有记录的依赖

3.升级依赖

  • npm update 包名
    • 将依赖升级到最新版本

4.卸载依赖

  • npm uninstall 包名

5.查看依赖

  • npm ls
    • 查看项目依赖
  • npm list -g
    • 查看全局依赖

6.运行命令

  • npm run 命令是在执行 npm 脚本时使用的命令。npm 脚本是一组在 package.json 文件中定义的可执行命令。npm 脚本可用于启动应用程序,运行测试,生成文档等,还可以自定义命令以及配置需要运行的脚本。

  • 在 package.json 文件中,scripts 字段是一个对象,其中包含一组键值对,键是要运行的脚本的名称,值是要执行的命令。例如,以下是一个简单的 package.json 文件:

    {"name": "my-app","version": "1.0.0","scripts": {"start": "node index.js","test": "jest","build": "webpack"},"dependencies": {"express": "^4.17.1","jest": "^27.1.0","webpack": "^5.39.0"}
    }
    
  • scripts 对象包含 start、test 和 build 三个脚本:

    • 当您运行npm run start时,将运行node index.js,并启动应用程序
    • 运行npm run test时,将运行 Jest 测试套件
    • npm run build将运行webpack 命令以生成最终的构建输出
  • 总之,npm run 命令为您提供了一种在package.json文件中定义和管理一组指令的方法,可以在项目中快速且灵活地运行各种操作

2.Vue3通过Vite实现工程化🍅

2.1 Vue3简介🍅

Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面,Vue 都可以胜任。官网为:https://cn.vuejs.org/
Vue的两个核心功能:

  • 声明式渲染:Vue 基于标准 HTML 拓展了一套模板语法,使得我们可以声明式地描述最终输出的 HTML 和 JavaScript 状态之间的关系。
  • 响应性:Vue 会自动跟踪JavaScript状态并在其发生变化时响应式地更新DOM

VUE作者:尤雨溪

1684487839928
  • 尤雨溪(Evan You),毕业于科尔盖特大学,前端框架Vue.js的作者、HTML5版Clear的打造人、独立开源开发者。曾就职于Google Creative Labs和Meteor Development Group。由于工作中大量接触开源的JavaScript项目,最后自己也走上了开源之路,现全职开发和维护Vue.js
  • 尤雨溪毕业于上海复旦附中,在美国完成大学学业,本科毕业于Colgate University,后在Parsons设计学院获得Design & Technology艺术硕士学位,任职于纽约Google Creative Lab。
  • 尤雨溪大学专业并非是计算机专业,在大学期间他学习专业是室内艺术和艺术史,后来读了美术设计和技术的硕士,正是在读硕士期间,他偶然接触到了JavaScript,从此被这门编程语言深深吸引,开启了自己的前端生涯。

2.2 Vite的介绍

1684488376469

在浏览器支持 ES 模块之前,JavaScript 并没有提供原生机制让开发者以模块化的方式进行开发。这也正是我们对 “打包” 这个概念熟悉的原因:使用工具抓取、处理并将我们的源码模块串联成可以在浏览器中运行的文件。时过境迁,我们见证了诸如 webpack、Rollup 和 Parcel 等工具的变迁,它们极大地改善了前端开发者的开发体验

  • 当我们开始构建越来越大型的应用时,需要处理的 JavaScript 代码量也呈指数级增长。
  • 包含数千个模块的大型项目相当普遍。基于 JavaScript 开发的工具就会开始遇到性能瓶颈:通常需要很长时间(甚至是几分钟!)才能启动开发服务器,即使使用模块热替换(HMR),文件修改后的效果也需要几秒钟才能在浏览器中反映出来。如此循环往复,迟钝的反馈会极大地影响开发者的开发效率和幸福感。

Vite 旨在利用生态系统中的新进展解决上述问题:浏览器开始原生支持 ES 模块,且越来越多 JavaScript 工具使用编译型语言编写。https://cn.vitejs.dev/guide/why.html前端工程化的作用包括但不限于以下几个方面:

  1. 快速创建项目:使用脚手架可以快速搭建项目基本框架,避免从零开始搭建项目的重复劳动和繁琐操作,从而节省时间和精力。
  2. 统一的工程化规范:前端脚手架可以预设项目目录结构、代码规范、git提交规范等统一的工程化规范,让不同开发者在同一个项目上编写出风格一致的代码,提高协作效率和质量。
  3. 代码模板和组件库:前端脚手架可以包含一些常用的代码模板和组件库,使开发者在实现常见功能时不再重复造轮子,避免因为轮子质量不高带来的麻烦,能够更加专注于项目的业务逻辑。
  4. 自动化构建和部署:前端脚手架可以自动进行代码打包、压缩、合并、编译等常见的构建工作,可以通过集成自动化部署脚本,自动将代码部署到测试、生产环境等。

2.3 Vite创建Vue3工程化项目🫐

2.3.1 Vite+Vue3项目的创建、启动、停止🍓

1 使用命令行创建工程

  • 在磁盘的合适位置上,创建一个空目录用于存储多个前端项目
  • 用vscode打开该目录
  • 在vscode中打开命令行运行如下命令
npm create vite@latest
  • 第一次使用vite时会提示下载vite,输入y回车即可,下次使用vite就不会出现了
    1687769339457
  • 注意: 选择vue+JavaScript选项即可

2 安装项目所需依赖

  • cd进入刚刚创建的项目目录
  • npm install命令安装基础依赖
cd ./vue3-demo1
npm install

3 启动项目

  • 查看项目下的package.json
{"name": "vue3-demo1","private": true,"version": "0.0.0","type": "module","scripts": {"dev": "vite","build": "vite build","preview": "vite preview"},"dependencies": {"bootstrap": "^5.2.3","sass": "^1.62.1","vue": "^3.2.47"},"devDependencies": {"@vitejs/plugin-vue": "^4.1.0","vite": "^4.3.2"}
}
npm run dev
> 5 停止项目 + 命令行上 ctrl+c

2.3.2 Vite+Vue3项目的目录结构

1.下面是 Vite 项目结构和入口的详细说明:

1684489112904

  • public/ 目录:用于存放一些公共资源,如 HTML 文件、图像、字体等,这些资源会被直接复制到构建出的目标目录中。
  • src/ 目录:存放项目的源代码,包括 JavaScript、CSS、Vue 组件、图像和字体等资源。在开发过程中,这些文件会被 Vite 实时编译和处理,并在浏览器中进行实时预览和调试。以下是src内部划分建议:
    1. assets/ 目录:用于存放一些项目中用到的静态资源,如图片、字体、样式文件等。
    2. components/ 目录:用于存放组件相关的文件。组件是代码复用的一种方式,用于抽象出一个可复用的 UI 部件,方便在不同的场景中进行重复使用。
    3. layouts/ 目录:用于存放布局组件的文件。布局组件通常负责整个应用程序的整体布局,如头部、底部、导航菜单等。
    4. pages/ 目录:用于存放页面级别的组件文件,通常是路由对应的组件文件。在这个目录下,可以创建对应的文件夹,用于存储不同的页面组件。
    5. plugins/ 目录:用于存放 Vite 插件相关的文件,可以按需加载不同的插件来实现不同的功能,如自动化测试、代码压缩等。
    6. router/ 目录:用于存放 Vue.js 的路由配置文件,负责管理视图和 URL 之间的映射关系,方便实现页面之间的跳转和数据传递。
    7. store/ 目录:用于存放 Vuex 状态管理相关的文件,负责管理应用程序中的数据和状态,方便统一管理和共享数据,提高开发效率。
    8. utils/ 目录:用于存放一些通用的工具函数,如日期处理函数、字符串操作函数等。
  • vite.config.js 文件:Vite 的配置文件,可以通过该文件配置项目的参数、插件、打包优化等。该文件可以使用 CommonJS 或 ES6 模块的语法进行配置。
  • package.json 文件:标准的 Node.js 项目配置文件,包含了项目的基本信息和依赖关系。其中可以通过 scripts 字段定义几个命令,如 dev、build、serve 等,用于启动开发、构建和启动本地服务器等操作。
  • Vite 项目的入口为 src/main.js 文件,这是 Vue.js 应用程序的启动文件,也是整个前端应用程序的入口文件。在该文件中,通常会引入 Vue.js 及其相关插件和组件,同时会创建 Vue 实例,挂载到 HTML 页面上指定的 DOM 元素中。

2.vite的运行界面

  • 在安装了 Vite 的项目中,可以在 npm scripts 中使用 vite 可执行文件,或者直接使用 npx vite 运行它。下面是通过脚手架创建的 Vite 项目中默认的 npm scripts:(package.json)
{"scripts": {"dev": "vite", // 启动开发服务器,别名:`vite dev`,`vite serve`"build": "vite build", // 为生产环境构建产物"preview": "vite preview" // 本地预览生产构建产物}
}
  • 运行设置端口号:(vite.config.js)
//修改vite项目配置文件 vite.config.js
export default defineConfig({plugins: [vue()],server:{port:3000}
})

都看到这了,不妨一键三连再走吧!

🌈欢迎和毛毛张一起探讨和交流!
联系方式点击下方个人名片

相关文章:

【Vue教程】使用Vite快速搭建前端工程化项目 | Vue3 | Vite | Node.js

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 &#x1f6a9;今天毛毛张分享的是关于如何快速&#x1f3c3;‍♂️搭建一个前端工程化的项目的环境搭建以及流程&#x1f320; 文章目录 1.前端工程化环境搭建&#…...

手机租赁平台开发全攻略打造高效便捷的租赁服务系统

内容概要 手机租赁平台开发&#xff0c;简单说就是让用户能轻松租赁各类手机的高效系统。这一平台不仅帮助那些想要临时使用高端手机的人们节省了不少资金&#xff0c;还为商家开辟了新的收入渠道。随着智能手机的普及&#xff0c;很多人并不需要长期拥有一部手机&#xff0c;…...

自由学习记录(31)

Java连接MySQL 找到那个关键jar包然后导入选中&#xff0c;就配置好MySQL的JDBC&#xff08;Java Database Connectivity&#xff09;了 菜单--文件--项目结构 项目设置--模块--选择要附着的项目--选择依赖--选中模块源--选中加号添加jar包 解压之后在里面可以看到这个最关键…...

【探花交友】用户登录总结

1.发送验证码 1.发送post请求 数据封装在map 获取map的手机号码 2.调用service层将手机号码 传入过去 3.正常返回状态码200 RestController RequestMapping("/user") public class LoginController {Autowiredprivate UserService userService;/*** 获取登录验证码*…...

LabVIEW声波谐振管自动化测量系统

开发了一种基于LabVIEW的声波谐振管自动化测量系统。该系统利用LabVIEW的强大功能&#xff0c;实现了对声波谐振频率的精确测量&#xff0c;提高了实验数据的采集效率和准确性。系统主要应用于物理教学和科研中&#xff0c;用于研究声波在谐振管中的传播特性。 项目背景 传统的…...

elasticsearch中的倒排索引

倒排索引是搜索引擎中常用的一种数据结构&#xff0c;适用于全文检索&#xff0c;能够通过文本内容高效检索到相应的文档。 一、倒排索引的基本概念 正排索引&#xff1a;传统的索引方式&#xff0c;按照文档id顺序存储文档&#xff0c;通过文档id找到文档对应的词。因此当需…...

【Elasticsearch】DSL查询文档

目录 1.DSL查询文档 1.1.DSL查询分类 1.2.全文检索查询 1.2.1.使用场景 1.2.2.基本语法 1.2.3.示例 1.2.4.总结 1.3.精准查询 1.3.1.term查询 1.3.2.range查询 1.3.3.总结 1.4.地理坐标查询 1.4.1.矩形范围查询 1.4.2.附近查询 1.5.复合查询 1.5.1.相关性算分 …...

接口测试Day04-postman生成测试报告ihrm项目

测试报告-利用newman插件 安装node.js 安装 双击 .msi 文件&#xff0c;一路下一步安装即可。无需特殊设定。测试安装成功 npm -v 安装npm 安装newman 安装newman npm install -g newman试安装成功 newman -v安装newman插件 - 扩展版 npm install -g newman-reporter-htmlex…...

常见的排序算法过程和比较分析

比较分析 排序类别排序算法时间复杂度&#xff08;最好&#xff09;时间复杂度&#xff08;最坏&#xff09;时间复杂度&#xff08;平均&#xff09;辅助空间复杂度稳定性插入排序直接插入排序O(n)O(n)O(n)O(1)稳定插入排序折半插入排序O(n)O(n)O(n)O(1)稳定插入排序希尔排序…...

基于Vue+SSM+SpringCloudAlibaba书籍管理系统

功能要求 一、登录功能&#xff08;http://localhost:8080/#/login&#xff09; 输入账号和密码(admin/admin)进行登录&#xff1a; 如果密码错误&#xff0c;给出提示信息 如果密码正确&#xff0c;跳转到主页 账号或密码错误&#xff1a; 账号密码正确&#xff1a;跳转到…...

生成式 AI 增强了个人创造力,但减少了新内容的集体多样性

创造力是人类的核心。生成式人工智能 (AI)(包括强大的大型语言模型 (LLM))有望让人类通过提供新想法来更具创造力,或者通过锚定生成式 AI 想法来降低创造力。我们在一项在线实验中研究了生成式 AI 想法对短篇小说制作的因果影响,其中一些作家从 LLM 那里获得了故事创意…...

【DC简介--Part1】

DC简介-Part1 1 overview1.1 DC操作步骤1.2 Steps1.2.1 Develop HDL files1.2.2 Specify libraries1.2.3 Read design1.2.4 Define design environment1.2.5 Set design constraints1.2.6 Select compile strategy1.2.7 Synthesize and optimize the design1.2.8 Analyze and r…...

Spark写入HDFS数据SUCCESS文件生成控制

Spark写入HDFS数据SUCCESS文件 1、_SUCCESS的控制2、_SUCCESS的实现 1、_SUCCESS的控制 与Hive不同&#xff0c;MapReduce和Spark在执行写入HDFS数据任务时&#xff0c;数据输出目录一般都会有一个名为_SUCCESS的空文件&#xff0c;该文件仅用来表示任务执行成功 但有些时候&a…...

MySQL 服务器简介

通常所说的 MySQL 服务器指的是mysqld程序&#xff0c;当运⾏mysqld后对外提供MySQL 服务&#xff0c;这个专题的内容涵盖了以下关于MySQL 服务器以及相关配置的内容&#xff0c;包括&#xff1a; 服务器⽀持的启动选项。可以在命令⾏和配置⽂件中指定这些选项。 服务器系统变…...

如何使用Python从SACS结构数据文件中提取节点数据信息并导出到EXCEL

在现代工程设计中&#xff0c;结构分析和数据处理是不可或缺的一部分。特别是在海洋工程、桥梁建设等领域&#xff0c;SACS文件被广泛应用。这种文件格式包含了结构模型的各种重要信息&#xff0c;包括节点&#xff08;JOINT&#xff09;、构件&#xff08;ELEMENT&#xff09;…...

Java网约车项目实战:实现抢单功能详解

在网约车项目中&#xff0c;抢单功能是非常关键的一部分&#xff0c;它决定了司机能否及时响应乘客的订单&#xff0c;提高整个平台的运营效率。本文将详细介绍如何使用Java来实现网约车项目的抢单功能&#xff0c;并提供一个完整的代码示例&#xff0c;以便读者能够直接运行和…...

SSRF服务端请求Gopher伪协议白盒测试

前言 是什么SSRF&#xff1f; 这个简单点说就是 服务端的请求伪造 就是这个如果是个 请求图片的网站 他的目的是请求外部其他网站的 图片 但是 SSRF指的是让他请求本地的图片 再展示出来 请求的是他的服务器上的图片 SSRF(Server-Side Request Forgery:服务器端请求伪造) …...

html+css+js网页设计 美食 家美食1个页面

htmlcssjs网页设计 美食 家美食1个页面 网页作品代码简单&#xff0c;可使用任意HTML辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源码 1&#xf…...

初学stm32---高级定时器输出n个pwm波

目录 高级定时器简介&#xff1a;(F1) 高级定时器框图 重复计数器特性 高级定时器输出指定个数PWM实验原理 高级定时器输出指定个数PWM实验配置步骤 相关HAL库函数介绍 关键结构体介绍 高级定时器简介&#xff1a;(F1) 1.高级定时器 &#xff1a;TIM1/TIM8 2.主要特性&…...

旅游管理系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️&#xff1a;架构: B/S、MVC 2⃣️&#xff1a;系统环境&#xff1a;Windowsh/Mac 3⃣️&#xff1a;开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4⃣️&#xff1a;技术栈&#xff1a;Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库可…...

imgproxy图像处理的高效与安全

摘要 imgproxy作为一个高效且安全的独立服务器,为图像处理提供了全新的解决方案。它不仅简化了图像调整和转换的过程,还极大地提升了处理速度,确保了整个流程的安全性。通过集成imgproxy,用户可以轻松优化网页上的图像,提高加载速度,改善用户体验。本文将深入探讨imgpro…...

LLM并行计算的论文

LLM并行计算的论文 基础并行计算方法相关 《Gpipe: Efficient Training of Giant Neural Networks using Pipeline Parallelism》:提出了Gpipe这种流水线并行方法,通过将数据批量进一步等分成若干microbatch,并以流水线的方式执行,减少计算中空泡的比例,极大地拓展了模型…...

Linux 搭建 nginx+keepalived 高可用 | Nginx反向代理

注意&#xff1a;本文为 “Linux 搭建 nginxkeepalived (主备双主模式) 高可用 | Nginx反向代理” 相关文章合辑。 KeepalivedNginx实现高可用&#xff08;HA&#xff09; xyang0917 于 2016-09-17 00:24:15 发布 keepalived 的 HA 分为抢占模式和非抢占模式&#xff0c;抢占…...

Spring Boot 项目中 Maven 剔除无用 Jar 引用的最佳实践

目录 引言Maven 依赖管理的基础概念 2.1 什么是 Maven 依赖2.2 Maven 的依赖传递机制 无用依赖的常见问题与影响剔除无用 Jar 引用的常见方法 4.1 识别无用依赖4.2 使用 Maven 的 dependency:analyze 插件4.3 配置 scope 以优化依赖范围4.4 使用 exclude 排除传递依赖4.5 分析…...

useWhyDidYouUpdate详解

目录 API Params demo演示 源码 useWhyDidYouUpdate是ahooks库中的一个hook函数&#xff0c;用于帮助开发者排查是哪个属性改变导致了组件的 rerender。 API type IProps Record<string, any>;useWhyDidYouUpdate(componentName: string, props: IProps): void; …...

c++入门——c++输入cin和输出cout的简单使用

c输入cin、输出cout 1 cin2 cout3 cin和cout说明 c在c语言的输入、输出函数的基础上进行了封装。 1 cin c可以理解为控制台&#xff0c;in可以理解为输入。 参考代码&#xff1a; void f(){int a;float b;double c;char d;cin>>a>>b>>c>>d;//这里和…...

Spring Cloud LoadBalancer (负载均衡)

目录 什么是负载均衡 服务端负载均衡 客户端负载均衡 Spring Cloud LoadBalancer快速上手 启动多个product-service实例 测试负载均衡 负载均衡策略 自定义负载均衡策略 什么是负载均衡 负载均衡(Load Balance&#xff0c;简称 LB) , 是高并发, 高可用系统必不可少的关…...

微服务-1 认识微服务

目录​​​​​​​ 1 认识微服务 1.1 单体架构 1.2 微服务 1.3 SpringCloud 2 服务拆分原则 2.1 什么时候拆 2.2 怎么拆 2.3 服务调用 3. 服务注册与发现 3.1 注册中心原理 3.2 Nacos注册中心 3.3 服务注册 3.3.1 添加依赖 3.3.2 配置Nacos 3.3.3 启动服务实例 …...

基于51单片机的交通灯带拐弯proteus仿真

地址&#xff1a; https://pan.baidu.com/s/1cgqRHMHp9VJet4vs5LiG5A 提取码&#xff1a;1234 仿真图&#xff1a; 芯片/模块的特点&#xff1a; AT89C52/AT89C51简介&#xff1a; AT89C52/AT89C51是一款经典的8位单片机&#xff0c;是意法半导体&#xff08;STMicroelectro…...

1229java面经

1,Java中synchronized关键字是否是可重入的? 可重入的定义 可重入是指当一个线程已经获取了某个对象的锁&#xff0c;在该锁没有释放的情况下&#xff0c;如果这个线程再次请求获取这个对象的锁&#xff0c;是可以成功获取的&#xff0c;而不会出现自己把自己锁死的情况。简单…...