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

React事件机制

React事件机制

React 的事件机制是其实现高效、跨浏览器交互的核心系统,它通过 合成事件(SyntheticEvent)、事件委托(Event Delegation)、事件冒泡(Bubbling)事件派发(Dispatching) 等技术,解决了浏览器兼容性、性能优化和声明式编程的问题。以下是详细的机制解析:


文章目录

  • React事件机制
    • **一、React 事件机制的核心组成**
      • **1. 合成事件(SyntheticEvent)**
        • **定义**
        • **核心作用**
        • **示例**
      • **2. 事件委托(Event Delegation)**
        • **定义**
        • **优点**
        • **工作流程**
        • **示例**
      • **3. 事件冒泡(Event Bubbling)**
        • **定义**
        • **捕获阶段支持**
        • **示例:捕获 vs 冒泡**
      • **4. 事件派发(Event Dispatching)**
        • **定义**
        • **流程**
    • **二、React 事件机制的工作流程**
    • **三、React 事件机制 vs 原生 DOM 事件**
    • **四、实际应用场景**
      • **1. 阻止默认行为和冒泡**
      • **2. 在捕获阶段处理事件**
      • **3. 异步访问事件属性**
    • **五、总结**

一、React 事件机制的核心组成

1. 合成事件(SyntheticEvent)

定义

React 对原生 DOM 事件进行封装,生成 跨浏览器一致的合成事件对象。开发者通过 onClickonChange 等属性绑定的事件处理函数,实际接收的是 SyntheticEvent 对象,而非原生事件。

核心作用
  • 跨浏览器兼容性
    统一不同浏览器的事件行为(如 IE 的 event.cancelBubble 和 Chrome 的 event.stopPropagation)。
  • 事件池(Event Pooling)
    早期版本(React 17 之前)复用合成事件对象以减少内存占用,需手动调用 event.persist() 保留数据(React 17+ 已移除事件池)。
  • 自动绑定 this(类组件):
    类组件中事件处理函数的 this 自动指向组件实例。
示例
function handleClick(event) {event.preventDefault(); // 阻止默认行为(跨浏览器兼容)console.log(event.target); // 触发事件的元素
}<button onClick={handleClick}>Click Me</button>

2. 事件委托(Event Delegation)

定义

React 不直接在 DOM 元素上绑定事件监听器,而是将所有事件监听器统一挂载到根节点(如 document),利用事件冒泡机制统一处理事件。

优点
  • 性能优化:减少事件监听器数量,动态元素无需重复绑定。
  • 内存高效:集中管理事件,降低内存占用。
工作流程
  1. 用户点击按钮 → 事件冒泡到根节点(document)。
  2. React 监听根节点事件,根据事件类型和目标元素找到对应的处理函数。
  3. 调用处理函数,传递合成事件对象。
示例
function App() {const handleClick = (event) => {console.log("Button clicked:", event.target);};return (<div><button onClick={handleClick}>Click Me</button></div>);
}
  • React 在 document 上监听 click 事件,按钮点击后事件冒泡到根节点,React 派发事件。

3. 事件冒泡(Event Bubbling)

定义

DOM 事件的默认传播阶段,事件从目标元素向上传递到父元素。React 默认在冒泡阶段处理事件。

捕获阶段支持

通过 onEventCapture(如 onClickCapture)在捕获阶段处理事件。

示例:捕获 vs 冒泡
function App() {const handleCapture = (event) => {console.log("捕获阶段:", event.target); // 父元素先触发};const handleClick = (event) => {console.log("冒泡阶段:", event.target); // 子元素后触发};return (<div onClickCapture={handleCapture}><button onClick={handleClick}>Click Me</button></div>);
}

4. 事件派发(Event Dispatching)

定义

React 在根节点监听到事件后,根据事件类型和目标元素找到对应的处理函数,并调用它,传递合成事件对象。

流程
  1. 事件触发:用户与元素交互(如点击)。
  2. 事件冒泡到根节点:React 监听根节点事件。
  3. 生成合成事件:React 封装原生事件为 SyntheticEvent
  4. 派发事件:调用组件绑定的事件处理函数。

二、React 事件机制的工作流程

  1. 事件注册
    React 在组件渲染时,将事件注册到虚拟 DOM 中,并在根节点统一监听。
  2. 事件触发
    用户与元素交互(如点击按钮),触发原生 DOM 事件。
  3. 事件冒泡
    事件通过 DOM 冒泡传递到根节点(document)。
  4. 事件派发
    React 根据事件类型和目标元素找到对应的处理函数。
  5. 合成事件生成
    React 生成 SyntheticEvent 对象,传递给处理函数。
  6. 状态更新与渲染
    若处理函数触发状态更新,React 重新渲染组件。

三、React 事件机制 vs 原生 DOM 事件

特性React 合成事件原生 DOM 事件
事件绑定JSX 属性(如 onClickaddEventListener('click', ...)
跨浏览器兼容性✅ 自动处理差异❌ 需手动处理(如 e.stopPropagation
性能优化✅ 事件委托 + 合成事件❌ 每个元素单独绑定事件
内存占用✅ 事件池(React 17 之前)/ 统一管理(React 17+)❌ 每个事件独立对象
绑定方式驼峰命名(如 onClick小写命名(如 onclick
异步访问事件属性React 16 及之前需手动调用 event.persist()直接访问

四、实际应用场景

1. 阻止默认行为和冒泡

function handleLinkClick(event) {event.preventDefault(); // 阻止默认行为(如链接跳转)event.stopPropagation(); // 阻止事件冒泡
}

2. 在捕获阶段处理事件

function handleCapture(event) {console.log("捕获阶段处理");
}<div onClickCapture={handleCapture}><button onClick={handleClick}>Click Me</button>
</div>

3. 异步访问事件属性

function handleClick(event) {const targetValue = event.target.value; // ✅ 立即提取数据setTimeout(() => {console.log(targetValue); // 正常(React 17+ 无需 persist)}, 1000);
}

五、总结

  1. 合成事件(SyntheticEvent) 是 React 事件机制的核心,封装了原生事件,提供跨浏览器兼容性和性能优化。
  2. 事件委托 通过根节点统一监听事件,减少内存占用,提升动态元素的交互效率。
  3. 事件冒泡 是默认的事件传播机制,React 利用它实现高效派发。
  4. 事件派发 根据事件类型和目标元素调用对应的处理函数,传递合成事件对象。

事件(SyntheticEvent)** 是 React 事件机制的核心,封装了原生事件,提供跨浏览器兼容性和性能优化。
2. 事件委托 通过根节点统一监听事件,减少内存占用,提升动态元素的交互效率。
3. 事件冒泡 是默认的事件传播机制,React 利用它实现高效派发。
4. 事件派发 根据事件类型和目标元素调用对应的处理函数,传递合成事件对象。

React 17+ 的改进:移除了事件池机制,事件对象不再被复用,无需手动调用 event.persist()

相关文章:

React事件机制

React事件机制 React 的事件机制是其实现高效、跨浏览器交互的核心系统&#xff0c;它通过 合成事件&#xff08;SyntheticEvent&#xff09;、事件委托&#xff08;Event Delegation&#xff09;、事件冒泡&#xff08;Bubbling&#xff09; 和 事件派发&#xff08;Dispatch…...

LeetCode 45. 跳跃游戏 II(中等)

给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向后跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返回到达 nums[n - 1] 的最…...

LeetCode 热题 100 437. 路径总和 III

LeetCode 热题 100 | 437. 路径总和 III 大家好&#xff0c;今天我们来解决一道经典的二叉树问题——路径总和 III。这道题在 LeetCode 上被标记为中等难度&#xff0c;要求计算二叉树中节点值之和等于给定目标值 targetSum 的路径数目。 问题描述 给定一个二叉树的根节点 ro…...

力扣.1471数组的k个最强值,力扣.1471数组的k个最强值力扣1576.替换所有的问号力扣1419.数青蛙​编辑力扣300.最长递增子序列

目录 力扣.1471数组的k个最强值 力扣1576.替换所有的问号 力扣1419.数青蛙​编辑 力扣300.最长递增子序列 力扣.1471数组的k个最强值 class Solution {public static int[] getStrongest(int[] arr,int k) {if(karr.length){return arr;}int []retnew int[k];int narr.lengt…...

使用itextsharp5.0版本来合并多个pdf文件并保留书签目录结构

using System; using System.Collections.Generic; using System.IO; using iTextSharp.text; using iTextSharp.text.pdf;public class PdfMergeUtility {/// <summary>/// 合并多个PDF文件并保留书签目录结构/// </summary>/// <param name"inputFiles&q…...

2025-5-15Vue3快速上手

1、setup和选项式API之间的关系 (1)vue2中的data,methods可以与vue3的setup共存 &#xff08;2&#xff09;vue2中的data可以用this读取setup中的数据&#xff0c;但是反过来不行&#xff0c;因为setup中的this是undefined &#xff08;3&#xff09;不建议vue2和vue3的语法混用…...

Kafka消费者分组机制深度解析

一、集群协调者 1.1 GroupCoordinator的元数据管理 每个Broker内置的GroupCoordinator实例通过哈希算法确定消费者组的归属权。其内存模型维护三个核心数据结构&#xff1a; 成员注册表&#xff1a;采用跳表结构存储消费者ID与心跳时间戳&#xff0c;支持快速查询和过期检测…...

Python 类变量与实例变量完全指南:区别、使用场景及常见陷阱

类变量与实例变量的区别总结 代码示例 class Example:class_var "我是类变量&#xff0c;所有实例共享我" # 类变量def __init__(self, name):self.name name # 实例变量&#xff0c;每个实例独有def modify_class_var(self, new_value):Example.class_var ne…...

Ubuntu Linux bash的相关默认配置文件内容 .profile .bashrc, /etc/profile, /etc/bash.bashrc等

文章目录 文件的source顺序/etc/profile&#xff1a;系统级配置/etc/bash.bashrc&#xff1a;bash终端的系统级配置~/.profile&#xff1a;用户级配置~/.bashrc bash&#xff1a;终端的主要配置~/.bash_logout&#xff1a;bash终端登出时清理 建议的额外配置&#xff1a; 安装 …...

redis解决常见的秒杀问题

title: redis解决常见的秒杀问题 date: 2025-03-07 14:24:13 tags: redis categories: redis的应用 秒杀问题 每个店铺都可以发布优惠券&#xff0c;保存到 tb_voucher 表中&#xff1b;当用户抢购时&#xff0c;生成订单并保存到 tb_voucher_order 表中。 订单表如果使用数据…...

Springboot3自定义starter笔记

场景&#xff1a;抽取聊天机器人场景&#xff0c;它可以打招呼。 效果&#xff1a;任何项目导入此 starter 都具有打招呼功能&#xff0c;并且问候语中的人名需要可以在配置文件中修改。 创建自定义 starter 项目&#xff0c;引入 spring-boot-starter 基础依赖。 <dependen…...

Modern C++(一)基本概念

1、基本概念 1.1、注释 注释在翻译阶段3会被替换为单个空白字符从程序中移除 1.2、名字与标识符 标识符是一个由数字、下划线、大小写字符组成的任意长度序列。有效的标识符首个字符必须是以A-Z、a-z、下划线开头&#xff0c;。有效的标识符其他字符可以是0-9、A-Z、a-z、下…...

Apache HttpClient 5 用法-Java调用http服务

Apache HttpClient 5 核心用法详解 Apache HttpClient 5 是 Apache 基金会推出的新一代 HTTP 客户端库&#xff0c;相比 4.x 版本在性能、模块化和易用性上有显著提升。以下是其核心用法及最佳实践&#xff1a; 一、添加依赖 Maven 项目&#xff1a; <dependency><…...

Python中plotext 库详细使用(命令行界面中直接绘制各种图形)

更多内容请见: python3案例和总结-专栏介绍和目录 文章目录 plotext概述1.1 plotext介绍1.2 安装二、基本用法2.1 简单绘图2.2 散点图2.3 折线图2.4 条形图2.5 直方图2.6 标题和坐标轴标签2.7 网格和坐标轴2.8 颜色和样式2.9 多图叠加三、高级功能3.1 多图绘制3.2 对数坐标3.3…...

【Java Web】速通JSON

参考笔记&#xff1a;JavaWeb 速通JSON_java webapi调用传json与head-CSDN博客 目录 1.JSON基本介绍 2.JSON串的格式 3.JSON在客户端/浏览器的使用 3.1 JavaScript对象和JSON串的相互转换 3.2 案例演示 4.JSON在服务端的使用 4.1 基本说明 4.2 应用场景 4.2.1 JSON字…...

Ubuntu 20.04 LTS 中部署 网页 + Node.js 应用 + Nginx 跨域配置 的详细步骤

Ubuntu 20.04 LTS 中部署 网页 Node.js 应用 Nginx 跨域配置 的详细步骤 一、准备工作1、连接服务器2、更新系统 二、安装 Node.js 环境1、安装 Node.js 官方 PPA&#xff08;用于获取最新稳定版&#xff09;&#xff1a;2、安装 Node.js 和 npm&#xff08;LTS 长期支持版本…...

java中XML的使用

文章目录 什么是XML特点XML作用XML的编写语法基本语法特殊字符编写 约束XML的书写格式DTD文档schema文档属性命名空间XML命名空间的作用 解析XML的方法​​DOM解析XMLDOM介绍DOM解析包&#xff1a;org.w3c.dom常用接口DOM解析包的使用保存XML文件添加DOM节点修改/删除DOM节点 S…...

Spark SQL 之 Analyzer

Spark SQL 之 Analyzer // Special case for Project as it supports lateral column alias.case p: Project =>val resolvedNoOuter = p.projectList.map(resolveExpressionByPlanChildren(_, p...

Java - Junit框架

单元测试&#xff1a;针对最小的功能单元(方法)&#xff0c;编写测试代码对该功能进行正确性测试。 Junit&#xff1a;Java语言实现的单元测试框架&#xff0c;很多开发工具已经集成了Junit框架&#xff0c;如IDEA。 优点 编写的测试代码很灵活&#xff0c;可以指某个测试方法…...

麒麟系统ARM64架构部署mysql、jdk和java项目

麒麟系统ARM64架构部署mysql、jdk和java项目 一、mysql8的安装 操作步骤&#xff1a; 先下载mysql安装包 下载地址&#xff1a;https://downloads.mysql.com/archives/community/ 由于官网里&#xff0c;mysql5.7以及更低版本不支持arm版本的&#xff0c;只能安装mysql8。…...

修复“ImportError: DLL load failed while importing lib: 找不到指定的程序”笔记

#工作记录 一、问题描述 在运行CosyVoice_For_Windows项目时&#xff0c;出现以下报错&#xff1a; Traceback (most recent call last): File "D:\ProgramData\anaconda3\envs\CosyVoice\Lib\pydoc.py", line 457, in safeimport module __import__(path) …...

vllm量化03—INT4 W4A16

本系列基于Qwen2.5-7B&#xff0c;学习如何使用vllm量化&#xff0c;并使用benchmark_serving.py、lm_eval 测试模型性能和评估模型准确度。 测试环境为&#xff1a; OS: centos 7 GPU: nvidia l40 driver: 550.54.15 CUDA: 12.3本文是该系列第3篇——INT4 W4A16 一、量化 f…...

VScode各文件转化为PDF的方法

文章目录 代码.py文件.ipynb文本和代码夹杂的文件方法 1:使用 VS Code 插件(推荐)步骤 1:安装必要插件步骤 2:安装 `nbconvert`步骤 3:间接导出(HTML → PDF)本文遇见了系列错误:解决方案:问题原因步骤 1:降级 Jinja2 至兼容版本步骤 2:确保 nbconvert 版本兼容替代…...

AI日报 · 2025年5月15日|GPT-4.1 登陆 ChatGPT

AI日报 2025年5月15日&#xff5c;GPT-4.1 登陆 ChatGPT 1、OpenAI 在 ChatGPT 全面开放 GPT-4.1 与 GPT-4.1 mini 北京时间 5 月 14 日晚&#xff0c;OpenAI 在官方 Release Notes 中宣布&#xff1a;专为复杂代码与精细指令场景打造的 GPT-4.1 正式加入 ChatGPT&#xff0…...

高效管理多后端服务:Nginx 配置与实践指南

在现代的 Web 开发和运维中&#xff0c;一个系统往往由多个后端服务组成&#xff0c;每个服务负责不同的功能模块。例如&#xff0c;一个电商网站可能包括用户服务、订单服务和支付服务&#xff0c;每个服务都运行在独立的服务器或容器中。为了高效地管理这些服务并提供统一的访…...

从代码学习深度学习 - 实战 Kaggle 比赛:图像分类 (CIFAR-10 PyTorch版)

文章目录 前言1. 读取并整理数据集1.1 读取标签文件1.2 划分训练集和验证集1.3 整理测试集1.4 执行数据整理2. 图像增广2.1 训练集图像变换2.2 测试集(和验证集)图像变换3. 读取数据集3.1 创建 Dataset 对象3.2 创建 DataLoader 对象4. 定义模型4.1 获取 ResNet-18 模型4.2 损…...

什么是路由器环回接口?

路由器环回接口&#xff08;LoopbackInterface&#xff09;是网络设备中的一种逻辑虚拟接口&#xff0c;不依赖物理硬件&#xff0c;但在网络配置和管理中具有重要作用。以下是其核心要点&#xff1a; 一、基本特性 1.虚拟性与稳定性 环回接口是纯软件实现的逻辑接口&#x…...

【高频面试题】LRU缓存

文章目录 1 相关前置知识&#xff08;OS&#xff09;2 面试题 16.25. LRU 缓存2.1 题面2.2 示例2.3 解法1 &#xff08;双端队列哈希表&#xff09;思路 2.4 解法2思路 3 参考 1 相关前置知识&#xff08;OS&#xff09; 为什么需要页面置换算法&#xff1a;当进程运行时&…...

Golang

本文来源 &#xff1a;腾讯元宝 Go语言&#xff08;又称Golang&#xff09;是由Google开发的一种现代编程语言&#xff0c;自2009年发布以来&#xff0c;因其简洁性、高性能和内置并发支持而广受欢迎。以下是关于Go语言的核心特点和优势的总结&#xff1a; 1. ​​核心特点​​…...

20250515配置联想笔记本电脑IdeaPad总是使用独立显卡的步骤

20250515配置联想笔记本电脑IdeaPad总是使用独立显卡的步骤 2025/5/15 19:55 百度&#xff1a;intel 集成显卡 NVIDIA 配置成为 总是用独立显卡 百度为您找到以下结果 ?要将Intel集成显卡和NVIDIA独立显卡配置为总是使用独立显卡&#xff0c;可以通过以下步骤实现?&#xff…...

『已解决』Python virtualenv_ error_ unrecognized arguments_--wheel-bundle

&#x1f4e3;读完这篇文章里你能收获到 &#x1f40d; 了解 virtualenv 参数错误的原因及解决方案&#x1f4e6; 学习如何正确配置 Python 虚拟环境 文章目录 前言一、问题描述1.1 错误现象1.2 影响范围 二、问题分析2.1 根本原因 三、解决方案3.1 兼容处理3.2 完整解决方案 …...

使用 Apache POI 生成 Word 文档

创建一个包含标题、段落和表格的简单文档。 步骤 1:添加依赖 确保你的项目中已经添加了 Apache POI 的依赖。如果你使用的是 Maven,可以在 pom.xml 中添加以下内容: <dependency><groupId>org.apache.poi</groupId>...

表记录的检索

1.select语句的语法格式 select 字段列表 from 表名 where 条件表达式 group by 分组字段 [having 条件表达式] order by 排序字段 [asc|desc];说明&#xff1a; from 子句用于指定检索的数据源 where子句用于指定记录的过滤条件 group by 子句用于对检索的数据进行分组 ha…...

【PX4飞控】在 Matlab Simulink 中使用 Mavlink 协议与 PX4 飞行器进行交互

这里列举一些从官网收集的比较有趣或者实用的功能。 编写 m 脚本与飞行器建立 UDP 连接&#xff0c;并实时可视化 Mavlink 消息内容&#xff0c;或者读取脚本离线分析数据。不光能显示 GPS 位置或者姿态等信息的时间曲线&#xff0c;可以利用 Matlab Plot 功能快速定制化显示一…...

文章复现|(1)整合scRNA-seq 和空间转录组学揭示了子宫内膜癌中 MDK-NCL 依赖性免疫抑制环境

https://www.frontiersin.org/journals/immunology/articles/10.3389/fimmu.2023.1145300/full 目标&#xff1a;肿瘤微环境(TME)在子宫内膜癌(EC)的进展中起着重要作用。我们旨在评估EC的TME中的细胞群体。 方法&#xff1a;我们从GEO下载了EC的单细胞RNA测序(scRNA-seq)和空…...

自用Vscode 配置c++ debug环境

前言 使用vscode配置c debug环境的好处 1、可以借助vscode方便轻量的扩展和功能 2、避免了传统使用gdb 复杂按键以及不够直观的可视化 3、方便一次运行&#xff0c;断点处查看变量&#xff0c;降低找bug难度 4、某大公司项目采用类似配置&#xff0c;经过实践检验 配置c运行环…...

STM32单片机内存分配详细讲解

单片机的内存无非就两种&#xff0c;内部FLASH和SRAM&#xff0c;最多再加上一个外部的FLASH拓展。在这里我以STM32F103C8T6为例子讲解FLASH和SRAM。 STM32F103C8T6具有64KB的闪存和20KB的SRAM。 一. Flash 1.1 定义 非易失性存储器&#xff0c;即使在断电后&#xff0c;其所…...

从算力困境到创新突破:GPUGEEK如何重塑我的AI开发之旅

目录 从算力困境到创新突破&#xff1a;GPUGEEK如何重塑我的AI开发之旅开发者的算力挣扎&#xff1a;一个不得不面对的现实AI算力市场的尴尬现状&#xff1a;为什么我们需要另辟蹊径1. 资源分配失衡与价格壁垒2. 技术门槛与环境复杂性 GPUGEEK深度剖析&#xff1a;不只是又一个…...

基于OpenCV的人脸微笑检测实现

文章目录 引言一、技术原理二、代码实现2.1 关键代码解析2.1.1 模型加载2.1.2 图像翻转2.1.3 人脸检测 微笑检测 2.2 显示效果 三、参数调优建议四、总结 引言 在计算机视觉领域&#xff0c;人脸检测和表情识别一直是热门的研究方向。今天我将分享一个使用Python和OpenCV实现…...

2025认证杯数学建模第二阶段A题小行星轨迹预测思路+模型+代码

2025认证杯数学建模第二阶段思路模型代码&#xff0c;详细内容见文末名片 一、问题重述 1.1 问题背景 在浩瀚无垠的宇宙中&#xff0c;近地小行星&#xff08;NEAs&#xff09;宛如一颗颗神秘的“太空子弹”&#xff0c;其轨道相对接近地球&#xff0c;给我们的蓝色星球带来…...

Uniapp 安卓实现讯飞语音听写(复制即用)

在移动应用开发中&#xff0c;语音交互功能能够极大提升用户体验&#xff0c;让操作更加便捷自然。讯飞语音听写技术凭借其高准确率和稳定性&#xff0c;成为众多开发者的选择。本文将详细介绍如何在 Uniapp 项目中&#xff0c;实现安卓端的讯飞语音听写功能&#xff0c;帮助你…...

【FileZilla】 从事件类型到消息类型的函数形参类型转化

本篇其实是前篇【Filezilla】 dispatch函数重载的例子-CSDN博客的一个补充&#xff0c;其中涉及到【FileZilla】事件调用机制代码解析-CSDN博客中的事件分发机制时钩子函数的参数传递怎么实现的。跟【FileZilla】sftp协议的数据传输上传和下载-CSDN博客同样&#xff0c;用事件是…...

python打卡day26

函数、参数、变量 知识点回顾&#xff1a; 函数的定义变量作用域&#xff1a;局部变量和全局变量函数的参数类型&#xff1a;位置参数、默认参数、不定参数传递参数的手段&#xff1a;关键词参数传递参数的顺序&#xff1a;同时出现三种参数类型时 def function_name(parameter…...

RPC框架源码分析学习(二)

RPC框架源码分析与原理解读 前言 在分布式系统开发中&#xff0c;远程过程调用(RPC)是一项基础且关键的技术。通过对KVstorageBaseRaft-cpp项目RPC模块的源码分析&#xff0c;我深入理解了RPC框架的工作原理和实现细节。本文将从程序员视角分享我的学习心得。 框架概述 本项…...

算法分析:蛮力法

一、实验目的 1 掌握蛮力法的设计思想(利用计算机去穷举所有的可能解,再从中依次找出可行解) 2 掌握蛮力法的具体实现和时间复杂度分析 3 理解蛮力法的常见特性 实验要求&#xff1a;先用伪代码描述利用蛮力法解决的算法解决方案&#xff0c;再用程序实现&#xff0c;计算时间…...

构建RAG混合开发---PythonAI+JavaEE+Vue.js前端的实践

写在前文&#xff1a;之所以设计这一套流程&#xff0c;是因为 Python在前沿的科技前沿的生态要比Java好&#xff0c;而Java在企业级应用层开发比较活跃&#xff1b; 毕竟许多企业的后端服务、应用程序均采用Java开发&#xff0c;涵盖权限管理、后台应用、缓存机制、中间件集成…...

游戏引擎学习第280天:精简化的流式实体sim

回顾并为今天的内容做铺垫 今天的任务是让之前关于实体存储方式的改动真正运行起来。我们现在希望让实体系统变得更加真实和实用&#xff0c;能够支撑我们游戏实际所需的功能。这就要求我们对它进行更合理的实现和调试。 昨天我们基本让代码编译通过了&#xff0c;但实际上还…...

小程序映射逻辑处理

onLoad: function (options) { // 如果直接从options获取数据 this.setData({ jielunpin:发羽音, birthStr: 1944-01-01 }); // 处理诊断结论 this.processJielunpin(); // 添加一个处理诊断结论的函数 processJielunpin: function() { // 获取jielunpin和birthSt…...

亚马逊,temu测评采购低成本养号策略:如何用一台设备安全批量管理买家账号

只要能够巧妙规避平台的检测和风控措施&#xff0c;测评便可安全进行。 自养号测评&#xff0c;它更便于卖家掌控&#xff0c;且能降低风险。现在很多卖家都是自己养号&#xff0c;自己养号都是精养&#xff0c;不是自动的机刷&#xff0c;买家账号掌握在自己手里&#xff0c;更…...

TCP实现安全传输的核心机制 + TCP的报文讲解(全程图文讲解)

目录 一、TCP的协议和数据报格式 二、TCP常见的核心机制 1. 确认应答 2. 超时重传 3. 连接管理 三次握手&#xff08;建立连接&#xff09; 四次挥手&#xff08;断开连接&#xff09; 常见的状态和整体的传输流程 4. 滑动窗口 5. 流量控制 6. 拥塞控制 7. 延迟应…...