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

webpack

前言

在现代前端开发的浪潮中,Webpack 已经成为一个不可或缺的构建工具。它不仅能够帮助我们打包 JavaScript 代码,还能够处理各种资源(如 CSS、图片、字体等),并提供一系列优化手段,极大地提升开发效率和应用性能。

如果你是前端新手,或者刚刚接触到 Webpack,那么本文将为你提供一个清晰的入门指南,带你从零开始了解 Webpack,并学会如何使用它来构建你的第一个项目。

什么是 Webpack?

Webpack 本质上是一个 静态模块打包器 (static module bundler)。它可以将各种模块及其依赖关系处理成静态资源,以便浏览器加载。简单来说,Webpack 的核心工作就是:

  1. 模块化处理: 将 JavaScript、CSS、图片等各种资源视为模块。
  2. 依赖关系分析: 分析模块之间的引用关系,构建依赖图。
  3. 打包输出: 将模块按照依赖关系打包成浏览器可识别的静态资源。

Webpack 的核心概念

理解 Webpack 的核心概念,是掌握 Webpack 的关键。

  • 入口 (Entry): 指定 Webpack 从哪个模块开始分析依赖关系。
  • 出口 (Output): 指定 Webpack 将打包好的资源输出到哪里。
  • 加载器 (Loaders): 告诉 Webpack 如何处理不同类型的模块(例如,将 Sass 文件转换为 CSS,将 ES6 代码转换为 ES5)。
  • 插件 (Plugins): 扩展 Webpack 的功能,例如代码压缩、资源优化等。
  • 模式 (Mode): 指定 Webpack 的打包环境,可以选择 development (开发模式) 或 production (生产模式)。

Webpack 的优势

  • 模块化开发: 将代码分解为更小的模块,方便管理和维护。
  • 资源管理: 可以处理各种类型的资源,并进行优化。
  • 代码转换: 可以将 ES6、TypeScript 等代码转换为浏览器兼容的 JavaScript。
  • 代码优化: 可以进行代码压缩、Tree Shaking 等优化手段。
  • 热更新: 在开发过程中,可以实时更新浏览器中的代码,无需刷新页面。

开始使用 Webpack

下面我们通过一个简单的例子,演示如何使用 Webpack 构建一个简单的项目。

1. 创建项目目录和文件

mkdir webpack-demo
cd webpack-demo
npm init -y
mkdir src
touch src/index.js src/style.css index.html
  • webpack-demo: 项目根目录
  • src: 存放项目源代码
  • src/index.js: 入口文件
  • src/style.css: 样式文件
  • index.html: HTML 文件

2. 安装 Webpack 和相关依赖

npm install webpack webpack-cli style-loader css-loader --save-dev
  • webpack: Webpack 核心库
  • webpack-cli: Webpack 命令行工具
  • style-loader: 将 CSS 插入到 DOM 中
  • css-loader: 解析 CSS 文件

3. 配置 Webpack

在项目根目录下创建 webpack.config.js 文件:

const path = require('path');module.exports = {mode: 'development', // 开发模式entry: './src/index.js', // 入口文件output: {path: path.resolve(__dirname, 'dist'), // 输出目录filename: 'bundle.js', // 输出文件名},module: {rules: [{test: /\.css$/, // 匹配 CSS 文件use: ['style-loader', 'css-loader'], // 使用 style-loader 和 css-loader 处理 CSS 文件},],},
};

4. 编写代码

  • src/index.js:

    import './style.css';const element = document.createElement('h1');
    element.innerHTML = 'Hello, Webpack!';
    document.body.appendChild(element);
    
  • src/style.css:

    h1 {color: blue;
    }
    
  • index.html:

    <!DOCTYPE html>
    <html>
    <head><title>Webpack Demo</title>
    </head>
    <body><script src="./dist/bundle.js"></script>
    </body>
    </html>
    

5. 打包和运行

在项目根目录下执行以下命令:

npx webpack

Webpack 会将 src/index.js 和 src/style.css 打包到 dist/bundle.js 文件中。然后用浏览器打开 index.html 文件,你将会看到 “Hello, Webpack!” 的蓝色标题。

Webpack 的进阶应用

除了以上基础配置,Webpack 还有很多强大的功能,可以满足更复杂的开发需求:

  • 代码拆分 (Code Splitting): 将代码分割成多个 bundle,按需加载,提高页面加载速度。
  • 模块热替换 (HMR): 在开发环境下,可以实时更新修改后的模块,无需刷新整个页面。
  • 资源优化: 可以压缩代码、图片、字体等资源,减少资源体积,提高加载速度。
  • 其他 Loader: 可以使用 Babel Loader 将 ES6 代码转换为 ES5,使用 Sass Loader 将 Sass 文件转换为 CSS,使用 File Loader 处理图片、字体等静态资源。
  • 其他 Plugins: 可以使用 HTMLWebpackPlugin 自动生成 HTML 文件,使用 MiniCssExtractPlugin 将 CSS 提取到单独的文件中。

结论

Webpack 是一个功能强大且灵活的工具,掌握它可以帮助你构建更现代、更高效的前端应用。通过本文的介绍,你已经对 Webpack 有了一个初步的了解,可以开始尝试在自己的项目中使用了。

在实践的过程中,你会发现 Webpack 还有很多值得探索的地方。希望本文能够成为你学习 Webpack 的一个良好起点,祝你学习愉快!

后续学习建议

  • 阅读 Webpack 官方文档:webpack
  • 学习 Babel、ESLint 等相关工具
  • 尝试使用不同的 Loader 和 Plugin
  • 参与开源项目,学习别人的 Webpack 配置

希望这篇博客文章能够帮到你!如果你有任何问题,欢迎在评论区留言。

相关文章:

webpack

前言 在现代前端开发的浪潮中&#xff0c;Webpack 已经成为一个不可或缺的构建工具。它不仅能够帮助我们打包 JavaScript 代码&#xff0c;还能够处理各种资源&#xff08;如 CSS、图片、字体等&#xff09;&#xff0c;并提供一系列优化手段&#xff0c;极大地提升开发效率和…...

BLIP论文笔记

论文地址 BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation 论文思想 其实Clip就相当于只用了ITC...

Java List 集合详解:基础用法、常见实现类与高频面试题解析

正文 在 Java 集合框架中&#xff0c;List 是一个非常重要的接口&#xff0c;广泛用于存储有序的元素集合。本文将带你深入了解 List 接口的基本用法、常见实现类及其扩展&#xff0c;同时通过实际代码示例帮助你快速掌握这些知识。 &#x1f449;点击获取2024Java学习资料 1…...

HTML5 SSE

HTML5 SSE&#xff08;Server-Sent Events&#xff0c;服务器发送事件&#xff09;是一种允许服务器实时向浏览器推送数据的技术。它是HTML5规范的一部分&#xff0c;主要通过HTTP协议实现。SSE的主要特点包括&#xff1a; 单向通信&#xff1a;与WebSocket不同&#xff0c;SSE…...

SpringBoot篇(监控)

目录 学习前言 一、什么是监控&#xff1f; 二、监控的意义 1. 简介 2. 总结 3. 思考 三、可视化监控平台 1. 简介 2. 实操 2.1. 服务端开发 2.2. 客户端开发 配置多个客户端 2.3. 总结 2.4. 思考 四、监控原理 1. 简介 2. 总结 五、自定义监控指标 1. 简介…...

python23-常用的第三方库01:request模块-爬虫

requests 模块是 Python 中的一个第三方库&#xff0c;用于发送 HTTP 请求。 它提供了一个简单且直观的 API&#xff0c;使得发送网络请求和解析响应变得非常容易。requests 模块支持各种 HTTP 方法&#xff0c;如 GET、POST、PUT、DELETE 等&#xff0c;并且具有处理 cookies…...

【pytorch】现代卷积神经网络

文章目录 1 AlexNet2 VGG3 NiN4 GoogLeNet5 批量规范化batch normalization6 ResNet6.1 残差块6.2 resnet 7 DenseNet7.1 稠密块体7.2 过渡层7.3 DenseNet模型 1 AlexNet AlexNet由八层组成&#xff1a;五个卷积层、两个全连接隐藏层和一个全连接输出层。 AlexNet使用ReLU而不…...

Excel 身份证号计算年龄

1. 设置身份证号列格式 复制身份证列值到记事本或其他地方重新设置身份证号列单元格格式为“文本”将复制出去的身份证号重新复制粘贴回来 2. 年龄列单元格中添加公式 DATEDIF(DATE(LEFT(MID(A2, 7, 8), 4), MID(MID(A2, 7, 8), 5, 2), RIGHT(MID(A2, 7, 8), 2)), TODAY(), …...

【ArcGIS Pro】完整的nc文件整理表格模型构建流程及工具练习数据分享

学术科研啥的要用到很多数据&#xff0c;nc文件融合了时间空间数据是科研重要文件。之前分享过怎样将nc文件处理成栅格后整理成表格。小编的读者还是有跑不通整个流程的&#xff0c;再来做一篇总结篇&#xff0c;也分享下练习数据跟工具&#xff0c;如果还是弄不了的&#xff0…...

WebRTC的线程模型

WebRTC中的线程类&#xff1a; Thread类&#xff1a; &#xff08;1&#xff09;Thread类中的数据&#xff1a; class Thread {// 消息队列&#xff1a;MessageList messages_; // 消息队列&#xff0c;所有需要线程处理的消息&#xff0c;都要先入队PriorityQueue delayed_m…...

活动预告 | Microsoft Power Platform 在线技术公开课:实现业务流程自动化

课程介绍 参加“Microsoft Power Platform 在线技术公开课&#xff1a;实现业务流程自动化”活动&#xff0c;了解如何更高效地开展业务。参加我们举办的本次免费培训活动&#xff0c;了解如何借助 Microsoft AI Builder 和 Power Automate 优化工作流。结合使用这些工具可以帮…...

Docker安装(Docker Engine安装)

一、Docker Engine和Desktop区别 Docker Engine 核心组件&#xff1a;Docker Engine是Docker的核心运行时引擎&#xff0c;负责构建、运行和管理容器。它包括守护进程&#xff08;dockerd&#xff09;、API和命令行工具客户端&#xff08;docker&#xff09;。适用环境&#…...

Spring自动化创建脚本-解放繁琐的初始化配置!!!(自动化SSM整合)

一、实现功能(原创&#xff0c;转载请告知) 1.自动配置pom配置文件 2.自动识别数据库及数据表&#xff0c;创建Entity、Dao、Service、Controller等 3.自动创建database.properties、mybatis-config.xml等数据库文件 4.自动创建spring-dao.xml spring-mvc.xml …...

Llama系列关键知识总结

系列文章目录 第一章&#xff1a;LoRA微调系列笔记 第二章&#xff1a;Llama系列关键知识总结 第三章&#xff1a;LLaVA模型讲解与总结 文章目录 系列文章目录Llama: Open and Efficient Foundation Language Models关键要点LLaMa模型架构&#xff1a;Llama2分组查询注意力 (G…...

分布式系统架构6:链路追踪

这是小卷对分布式系统架构学习的第6篇文章&#xff0c;关于链路追踪&#xff0c;之前写过traceId的相关内容&#xff1a;https://juejin.cn/post/7135611432808218661&#xff0c;不过之前写的太浅了&#xff0c;且不成系统&#xff0c;只是简单的理解&#xff0c;今天来捋一下…...

flink cdc使用flink sql方式运行一直报Make sure a planner module is on the classpath

flink cdc使用flink sql方式运行一直报Make sure a planner module is on the classpath 引入jar包信息&#xff1a; flink-connector-oracle-cdc:3.2.1 flink:1.20.0 flink-table-runtime:1.20.0 flink-streaming-java:1.20.0 flink-clients:1.20.0 Exception in thread &q…...

Vue.js组件开发-怎样将style私有化

Vue.js组件开发中&#xff0c;将style私有可以通过使用<style scoped>来实现的。scoped属性会告诉Vue为这个组件的CSS样式添加一个数据属性&#xff0c;从而确保这些样式只应用于该组件的元素&#xff0c;而不会影响到其他组件或全局样式。 示例&#xff1a; 展示如何使…...

第十届“挑战杯”大学生课外学术科技作品竞赛解析及资料

“挑战杯”被誉为大学生科技创新创业的“奥林匹克”盛会&#xff0c;它汇聚了来自各个学科、各个年级的精英人才。在这里&#xff0c;同学们带着对未知的好奇和对知识的渴望&#xff0c;组成一个个团队&#xff0c;向难题发起挑战。现在&#xff0c;第十届“挑战杯”大学生课外…...

从0入门自主空中机器人-2-1【无人机硬件框架】

关于本课程&#xff1a; 本次课程是一套面向对自主空中机器人感兴趣的学生、爱好者、相关从业人员的免费课程&#xff0c;包含了从硬件组装、机载电脑环境设置、代码部署、实机实验等全套详细流程&#xff0c;带你从0开始&#xff0c;组装属于自己的自主无人机&#xff0c;并让…...

跟着逻辑先生学习FPGA-实战篇第一课 6-1 LED灯闪烁实验

硬件平台&#xff1a;征战Pro开发板 软件平台&#xff1a;Vivado2018.3 仿真软件&#xff1a;Modelsim10.6d 文本编译器&#xff1a;Notepad 征战Pro开发板资料 链接:https://pan.baidu.com/s/1AIcnaGBpNLgFT8GG1yC-cA?pwdx3u8 提取码:x3u8 1 知识背景 LED&#xff0c;又名…...

【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(四)

****非斜体正文为原文献内容&#xff08;也包含笔者的补充&#xff09;&#xff0c;灰色块中是对文章细节的进一步详细解释&#xff01; 四、提示范式&#xff08;Explanation for Prompting Paradigm&#xff09; 随着语言模型规模的扩大&#xff0c;基于提示&#xff08;prom…...

分布式算法(五):初识ZAB协议

文章目录 一、什么是Zookeeper二、ZAB与Zookeeper的关系为什么Zookeeper不直接使用Paxos 三、ZAB简介1.名词解释提案&#xff08;Proposal&#xff09;事务&#xff08;Transaction&#xff09;原子广播&#xff08;Atomic Broadcast&#xff09; 2.集群角色领导者&#xff08;…...

用Python操作字节流中的Excel工作簿

Python能够轻松地从字节流中加载文件&#xff0c;在不依赖于外部存储的情况下直接对其进行读取、修改等复杂操作&#xff0c;并最终将更改后的文档保存回字节串中。这种能力不仅极大地提高了数据处理的灵活性&#xff0c;还确保了数据的安全性和完整性&#xff0c;尤其是在网络…...

PHP-Casbin v4.0.0 发布,支持 ACL、RBAC、ABAC 等模型的访问控制框架

PHP-Casbin 是一个用 PHP 语言打造的轻量级开源访问控制框架&#xff0c;支持 ACL、RBAC、ABAC 多种模型。它采用了元模型的设计思想&#xff0c;支持多种经典的访问控制方案&#xff0c;如基于角色的访问控制 RBAC、基于属性的访问控制 ABAC 等。 更新内容&#xff1a; http…...

MIT S081 Lab 2 System Calls

Lab链接 一 实现trace功能 1 题目要求 In this assignment you will add a system call tracing feature that may help you when debugging later labs. You’ll create a new trace system call that will control tracing. It should take one argument, an integer “ma…...

Oracle Dataguard(主库为 Oracle 11g 单节点)配置详解(2):配置主数据库

Oracle Dataguard&#xff08;主库为 Oracle 11g 单节点&#xff09;配置详解&#xff08;2&#xff09;&#xff1a;配置主数据库 目录 Oracle Dataguard&#xff08;主库为 Oracle 11g 单节点&#xff09;配置详解&#xff08;2&#xff09;&#xff1a;配置主数据库一、配置…...

(leetcode算法题)10. 正则表达式匹配

10. 正则表达式匹配 - 力扣&#xff08;LeetCode&#xff09; 此题的要求一个字符串 s 和一个字符规律 p之间支持 . 和 * 的正则表达式匹配 . 匹配任意单个字符 * 匹配零个或多个前面的那一个元素 所谓匹配&#xff0c;是要涵盖 整个 字符串 s 的&#xff0c;而不是部分字符串…...

Hive性能调优考量

Hive作为大数据领域常见的数据仓库组件&#xff0c;在设计和开发阶段需要注意效率。影响Hive效率的不仅仅是数据量过大&#xff0c;数据倾斜、job&#xff08;小文件过多&#xff09;或者磁盘I/O过多、MapReduce分配不合理等因素都会对Hive的效率有影响。对Hive的调优可以从架构…...

2024-12-29-sklearn学习(26)模型选择与评估-交叉验证:评估估算器的表现 今夜偏知春气暖,虫声新透绿窗纱。

文章目录 sklearn学习(26) 模型选择与评估-交叉验证&#xff1a;评估估算器的表现26.1 计算交叉验证的指标26.1.1 cross_validate 函数和多度量评估26.1.2 通过交叉验证获取预测 26.2 交叉验证迭代器26.2.1 交叉验证迭代器–循环遍历数据26.2.1.1 K 折26.2.1.2 重复 K-折交叉验…...

Spring Boot + MinIO 实现分段、断点续传,让文件传输更高效

一、引言 在当今的互联网应用中&#xff0c;文件上传是一个常见的功能需求。然而&#xff0c;传统的文件上传方式在面对大文件或不稳定的网络环境时&#xff0c;可能会出现性能瓶颈和上传失败的问题。 传统文件上传&#xff0c;就像是用一辆小推车搬运大型家具&#xff0c;一…...

获取用户详细信息-ThreadLocal优化

Thread全局接口可用&#xff0c;不用再重复编写。所以为了代码的复用&#xff0c;使用Thread。把之前的内容&#xff08;函数的参数和map与username&#xff09;注释掉&#xff0c;换为Thread传过来的内容&#xff08;map与username&#xff09;。 因为Thread需要在拦截器里面…...

R语言6种将字符转成数字的方法,写在新年来临之际

咱们临床研究中&#xff0c;拿到数据后首先要对数据进行清洗&#xff0c;把数据变成咱们想要的格式&#xff0c;才能进行下一步分析&#xff0c;其中数据中的字符转成数字是个重要的内容&#xff0c;因为字符中常含有特殊符号&#xff0c;不利于分析&#xff0c;转成数字后才能…...

Go语言方法和接收器类型详解

Go语言方法和接收器类型详解 1. 方法接收器类型 1.1 值接收器 值接收器方法不会改变接收器的状态&#xff0c;因为Go语言会在调用时复制接收器的值。因此&#xff0c;任何对接收器成员变量的修改都只会影响副本&#xff0c;而不会影响原始结构体实例。 type Person struct …...

Linux常用命令总结

目录 查询java服务的pid查询pid上的进程占用的端口方法 1&#xff1a;使用 lsof 查询端口方法 2&#xff1a;使用 netstat 查询端口方法 3&#xff1a;使用 ss 命令查询端口 system相关命令 查询java服务的pid JPS查询pid上的进程占用的端口 要根据进程 ID&#xff08;PID&am…...

Linux总结之CentOS Stream 9安装mysql8.0实操安装成功记录

Linux总结之CentOS Stream 9安装mysql8.0实操安装成功记录 由于网上很多的mysql8.0安装教程都是老版本或者安装过程记录有问题&#xff0c;导致经常安装到一半需要删除重新安装。所以将成功的实操安装过程记录一下&#xff0c;方面后面查阅&#xff0c;大家还有问题的可以在此讨…...

ROS2软件架构全面解析-学习如何设计通信中间件框架

前言 ROS&#xff08;Robot Operating System&#xff09; 2 是一个用于开发机器人应用的软件平台&#xff0c;也称为机器人软件开发工具包 (SDK)。 ROS2是ROS1的迭代升级版本 &#xff0c;最主要的升级点是引入DDS&#xff08;Data Distribution Service&#xff09;为基础的…...

基于微信小程序的校园自助打印系统

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了多年的设计程序开发&#xff0c;开发过上千套设计程序&#xff0c;没有什么华丽的语言&#xff0c;只有实…...

Linux命令——3.网络与用户

文章目录 一、网络1.网络测试与诊断2.网络接口配置3.无线网络配置4.防火墙与网络管理6.防火墙管理1&#xff09;firewalld命令2&#xff09;iptables命令 二、用户和群组1.管理员模式2.用户账户管理1&#xff09;useradd创建2&#xff09;usermod修改3&#xff09;userdel 删除…...

2、redis的持久化

redis的持久化 在redist当中&#xff0c;高可用的技术包括持久化&#xff0c;主从复制&#xff0c;哨兵模式&#xff0c;集群。 持久化是最简单的高可用的方法&#xff0c;作用就是备份数据。即将数据保存到硬盘&#xff0c;防止进程退出导致数据丢失。 redis持久化方式&…...

建造者模式 Builder Pattern

在创建一个对象的时候&#xff0c;构造器参数有点多&#xff0c;而且有些参数还是可选的&#xff0c;再者还有不少同类型的&#xff0c;那就更应该使用 builder 模式了。 使用 Builder 模式的初衷是 把易变性&#xff08;mutability&#xff09;移动到Builder类&#xff0c;而…...

制作一个类似ChatGPT的AI对话网站,模型能力使用ChatGPT

要快速搭建一个类似ChatGPT的AI对话网站&#xff0c;并且使用类似ChatGPT的模型能力&#xff0c;可以考虑以下技术和工具&#xff1a; ### 1. **使用现有的AI模型平台** - **OpenAI API**: 如果你希望使用类似于ChatGPT的能力&#xff0c;OpenAI提供了强大的API服务&#xff08…...

LinuxC高级day2

1.在家目录下创建目录文件&#xff0c;dir a.dir下创建dir1和dir2 b.把当前目录下的所有文件拷贝到dir1中&#xff0c; c.把当前目录下的所有脚本文件拷贝到dir2中 d.把dir2打包并压缩为dir2.tar.xz e.再把dir2.tar.xz移动到dir1中 f.解压dir1中的压缩包 g.使用tree工具&#x…...

Word格式修改

经常修改格式&#xff0c;留下这篇汇总 Word的累加符号上下标变右标指定目录&#xff1a;word如何取消封面或者目录下方的页码&#xff0c;页码从正文开始加参考文献&#xff1a;【Word】怎样给论文添加引用参考文献删空白页&#xff1a; word中无法删除空白页怎么办&#xff…...

深度学习-稀疏卷积

步骤&#xff1a; 1、构建输入输出哈希表&#xff1b; 输入哈希表的键为激活点的索引&#xff0c;值为激活点的坐标&#xff1b;输出哈希表的键为激活点对应的输出点的索引&#xff0c;值为输出点的坐标。 2、构建规则书&#xff1b; 规则书的每一行包含4个值&#xff0c;分别是…...

Microsoft Visual Studio中的/MT, /MTd,/MD,/MDd分别是什么意思?

1. /MT&#xff0c;/MTd&#xff0c;/MD&#xff0c;/MDd的含义 /MT&#xff0c;/MTd&#xff0c;/MD&#xff0c;/MDd是 Microsoft Visual C 编译器的运行时库链接选项。它们决定了程序如何链接 C 运行时库&#xff08;CRT&#xff09;。具体含义如下&#xff1a; /MT&#x…...

交换机关于环路、接口绑定、链路聚合的相关知识

文章目录 1、对交换机SW-1进行配置&#xff0c;仅允许Host-1通过Ethernet0/0/1接口与Host-3和Host-4通信&#xff0c;Host-2无法与其他主机通信。2、关闭生成树协议&#xff0c;验证环路造成的影响3、关闭生成树协议通过链路聚合实现两条链路正常通信并提高链路可靠性。 内容包…...

5.微服务灰度发布落地实践(rocketmq增强)

文章目录 前言发送端灰度增强订阅端灰度增强 前言 上一篇分析了&#xff0c;在灰度发布实现中为什么要对消息队列灰度发布进行增强。本篇主要介绍如何实现rocketmq 灰度发布的增强. 发送端灰度增强 订阅端灰度增强...

32单片机从入门到精通之开发环境——库文件(六)

每个人都有自己的追求和梦想&#xff0c;但要实现这些梦想并不容易。在追逐梦想的路上&#xff0c;我们会遇到各种困难和挫折&#xff0c;甚至会感到无助和失望。然而&#xff0c;正是这些困难和挫折让我们更加坚韧和坚定地追求自己的目标。不要害怕失败&#xff0c;失败只是暂…...

大电流和大电压采样电路

大电压采样电路&#xff1a; 需要串联多个电阻进行分压&#xff0c;从而一级一级降低电压&#xff0c;防止电阻损坏或者短路直接打穿MCU。 为什么需要加电压跟随器&#xff1a;进行阻抗的隔离&#xff0c;防止MCU的IO阻抗对分压产生影响&#xff1a; 大电流检测电路&#xff…...

用户态和内核态?

目录 一、定义与特点 二、功能与权限差异 三、安全性与稳定性 四、系统调用与交互 五、参考 用户态和内核态是操作系统中的两种基本运行状态&#xff0c;它们各自具有不同的特点和权限&#xff0c;共同构成了操作系统的运行基础。以下是对用户态和内核态的详细解释&#x…...