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

vue的 props 与 $emit 以及 provide 与 inject 的 组件之间的传值对比

好的,下面是 props$emit 以及 provideinject 的对比:

1. props$emit

  • props:父组件通过 props 向子组件传递数据,子组件接收后不可修改。子组件只能读取 props 传递给它的数据。如果需要修改或更新父组件的状态,子组件必须通过 $emit 发射事件将变化传递回父组件。

  • $emit:子组件通过 $emit 向父组件发送事件通知,通常携带事件的相关数据。父组件通过事件监听器(@event)接收并处理事件,从而更新父组件的状态。

使用场景
  • props 用于父组件向子组件传递数据。
  • $emit 用于子组件向父组件传递事件或更新通知。

2. provideinject

  • provide:父组件使用 provide 向其所有子孙组件提供一个数据源。provide 提供的是一个共享的数据源,所有子孙组件都可以通过 inject 获取到这些数据。provide 并不会创建副本,而是传递引用,所以子组件对数据的修改会直接影响父组件。

  • inject:子组件通过 inject 获取父组件(或祖先组件)通过 provide 提供的数据。通过 inject 获取到的数据通常可以直接修改(因为它是引用类型),不过需要注意可能会影响到父组件的状态。

使用场景
  • provideinject 用于祖先组件与后代组件之间的数据传递。provide 提供数据,inject 接收数据,并且在需要时可以修改这些数据。

对比总结

特性props$emitprovideinject
数据流父组件 → 子组件子组件 → 父组件父组件 → 所有子孙组件子组件 → 获取父组件或祖先组件的数据
数据修改子组件不能直接修改父组件的数据子组件通过 $emit 向父组件通知修改子组件可以直接修改数据子组件可以直接修改数据
用途用于父组件向子组件传递数据用于子组件向父组件发出事件用于祖先组件向后代组件共享数据用于后代组件接收祖先组件共享的数据
作用范围仅限于父子组件之间仅限于父子组件之间祖先组件可以向所有子孙组件提供数据后代组件可以接收祖先组件提供的数据
是否创建新副本会为每个子组件创建数据的副本不涉及数据副本提供的数据是引用类型,不会创建副本获取的是引用类型的数据
数据传递方式单向数据流,父组件传递给子组件子组件通过事件通知父组件数据通过引用共享给所有后代组件子组件通过引用访问祖先组件提供的数据
父子组件关系父组件控制子组件的数据,子组件只读数据子组件通知父组件,父组件处理事件祖先组件与后代组件之间共享数据后代组件通过 inject 获取祖先组件提供的数据

总结:

  • props$emit父子组件 之间常用的通信机制,父组件通过 props 传递数据给子组件,子组件通过 $emit 将事件和数据传递回父组件。
  • provideinject祖先组件与后代组件 之间的通信机制,适用于不直接相邻的组件之间的数据传递。provide 提供共享数据,inject 接收共享数据,且子组件可以修改这些数据。

除了 props$emitprovideinject,Vue 中还有其他几种数据传递和通信方式,特别是适用于不同组件间的交互。以下是一些常见的传值方式:

1. v-model 双向数据绑定

  • 用法v-model 是 Vue 提供的双向数据绑定的语法糖,主要用于父子组件之间的值传递。通过 v-model,子组件可以绑定父组件传递的值,并且可以修改这个值,父组件会接收到修改后的值。

  • 工作原理v-model 会在父组件中生成一个绑定的属性(通常是 value),子组件会通过 modelValue(Vue 3 中)或 value(Vue 2 中)接收这个值,并通过 $emit 发射事件更新值。

  • 示例

    <!-- 父组件 -->
    <child-component v-model="message"></child-component><!-- 子组件 -->
    <template><input :value="modelValue" @input="$emit('update:modelValue', $event)">
    </template>
    

    这样,v-model 可以实现父子组件的双向数据绑定。


2. 事件总线 (Event Bus)

  • 用法:事件总线是通过 Vue 实例来实现组件之间的通信,适用于多个组件之间没有直接关系时的通信。父子组件关系无法满足的情况时,可以使用事件总线。

  • 工作原理:通过 new Vue() 创建一个中央事件总线,将事件注册在事件总线上,其他组件可以通过 $on 监听事件,通过 $emit 触发事件。

  • 示例

    // 在事件总线文件中创建一个 Vue 实例
    export const EventBus = new Vue();// 组件1:触发事件
    EventBus.$emit('eventName', data);// 组件2:监听事件
    EventBus.$on('eventName', data => {// 处理数据
    });
    
  • 注意:事件总线通常不推荐用于大型应用,因为它可能导致难以追踪的状态和事件,尤其是当项目变大时。


3. Vuex 状态管理

  • 用法:Vuex 是一个专为 Vue.js 应用程序开发的状态管理库,用于在不同组件之间共享状态。它是适用于跨组件、跨页面、跨模块的数据共享方案。

  • 工作原理:Vuex 使用一个中央的 store 来存储数据,组件通过 store 访问状态并提交更改,Vuex 会自动更新相关组件的视图。

  • 示例

    // Vuex store 配置
    const store = new Vuex.Store({state: {count: 0},mutations: {increment(state) {state.count++;}}
    });// 组件访问 Vuex 状态
    this.$store.state.count;
    this.$store.commit('increment');
    
  • 适用场景:适用于复杂的状态管理,特别是当需要跨组件或跨页面共享和更新状态时,Vuex 是一个非常好的选择。


4. Scoped Slots (作用域插槽)

  • 用法:作用域插槽允许子组件向父组件暴露数据,父组件可以通过插槽的作用域来访问这些数据。它是通过插槽和插槽内容传递数据的一种方式。

  • 工作原理:通过作用域插槽,父组件可以传递函数给子组件,子组件通过插槽将数据传递给父组件使用。

  • 示例

    <!-- 父组件 -->
    <child-component><template #default="{ item }"><p>{{ item.name }}</p></template>
    </child-component><!-- 子组件 -->
    <template><slot :item="item"></slot>
    </template>
    
  • 适用场景:当你想让父组件能够接收到子组件的数据并动态渲染子组件的内容时,可以使用作用域插槽。


5. Local Storage / Session Storage

  • 用法localStoragesessionStorage 是浏览器提供的 Web 存储机制,它们可以存储数据并在不同的页面或组件之间共享。localStorage 是持久化存储,sessionStorage 在会话结束时清除。

  • 工作原理:你可以通过 localStorage.setItemsessionStorage.setItem 将数据存储到浏览器的本地存储中,然后在其他页面或组件中读取该数据。

  • 示例

    // 存储数据
    localStorage.setItem('key', 'value');// 获取数据
    const value = localStorage.getItem('key');
    
  • 适用场景:适用于需要在多个页面或应用程序会话中保持数据的场景,尤其是需要跨页面共享数据时。


6. Cookie

  • 用法:Cookie 是浏览器用于存储少量数据的机制,通常用于保存会话信息、用户认证信息等。

  • 工作原理:通过 document.cookie 设置和读取 Cookie 数据,浏览器会在后续请求时自动带上 Cookie 数据。

  • 示例

    // 设置 Cookie
    document.cookie = "username=John Doe";// 获取 Cookie
    const cookies = document.cookie;
    
  • 适用场景:适用于跨页面、跨会话的简单数据存储,特别是用户认证和会话信息。


总结对比

传值方式适用场景数据流优点缺点
props$emit父子组件之间的数据传递与事件处理父 → 子,子 → 父简单易用,直观,适用于父子组件间数据交互只适用于父子组件关系
provideinject祖先组件与后代组件之间的数据传递父 → 后代,子 → 祖先适用于非直系组件间共享数据可能引发数据依赖问题
v-model双向绑定父子组件间的数据父 ↔ 子自动实现双向绑定需要约定规范,可能引起混乱
EventBus跨多个组件间的通信,尤其是非直接关系的组件组件 → 组件灵活,适用于多个组件之间的事件通信难以追踪和管理,容易引发不必要的依赖
Vuex跨多个组件、页面间共享复杂的状态管理全局状态管理强大的状态管理功能,适合大规模应用配置和维护比较复杂
Scoped Slots父组件控制子组件的内容,同时接收子组件暴露的数据父 ↔ 子灵活的内容插入机制使用场景较为特定
LocalStorage/SessionStorage跨页面数据共享,数据持久化浏览器存储,跨页面数据持久化,跨页面可访问只适用于简单数据,不适合复杂状态
Cookie跨会话共享数据,通常用于存储认证信息跨会话,跨页面浏览器自动管理,跨会话持久化存储容量小,安全性较低

相关文章:

vue的 props 与 $emit 以及 provide 与 inject 的 组件之间的传值对比

好的&#xff0c;下面是 props 与 $emit 以及 provide 与 inject 的对比&#xff1a; 1. props 与 $emit props&#xff1a;父组件通过 props 向子组件传递数据&#xff0c;子组件接收后不可修改。子组件只能读取 props 传递给它的数据。如果需要修改或更新父组件的状态&#…...

数据结构——环形数组

环形数组 start 指向第一个有效元素的索引&#xff0c;end 指向最后一个有效元素的下一个位置索引。 注意&#xff1a; start是闭区间&#xff0c;先左移后赋值&#xff0c;先赋值(null)后右移&#xff1b;end是开区间&#xff0c;先赋值再右移&#xff0c;先左移再赋值(null…...

k8s面试题总结(十五)

1.如何使用Kubernetes进行多环境部署&#xff08;如开发&#xff0c;测试和生产环境&#xff09;&#xff1f; 使用命名空间&#xff08;namespaces&#xff09;&#xff1a; 命名空间是用于逻辑隔离和资源分组的一种方式&#xff0c;可以为每个环境创建单独的命名空间。 2.使…...

深度学习项目--基于DenseNet网络的“乳腺癌图像识别”,准确率90%+,pytorch复现

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 前言 如果说最经典的神经网络&#xff0c;ResNet肯定是一个&#xff0c;从ResNet发布后&#xff0c;很多人做了修改&#xff0c;denseNet网络无疑是最成功的…...

蓝桥杯 17110抓娃娃

问题描述 小明拿了 n 条线段练习抓娃娃。他将所有线段铺在数轴上&#xff0c;第 i 条线段的左端点在 li&#xff0c;右端点在 ri​。小明用 m 个区间去框这些线段&#xff0c;第 i个区间的范围是 [Li​, Ri​]。如果一个线段有 至少一半 的长度被包含在某个区间内&#xff0c;…...

探索高性能AI识别和边缘计算 | NVIDIA Jetson Orin Nano 8GB 开发套件的全面测评

随着边缘计算和人工智能技术的迅速发展&#xff0c;性能强大的嵌入式AI开发板成为开发者和企业关注的焦点。NVIDIA近期推出的Jetson Orin Nano 8GB开发套件&#xff0c;凭借其40 TOPS算力、高效的Ampere架构GPU以及出色的边缘AI能力&#xff0c;引起了广泛关注。本文将从配置性…...

基于强化学习建立代理模型来预测飞机升阻力特性的一般步骤

以下是一个基于强化学习建立代理模型来预测飞机升阻力特性的一般步骤&#xff1a; 1. 问题定义与环境设置 明确目标&#xff1a;确定要准确预测飞机在不同飞行条件下的升力和阻力系数。状态空间定义&#xff1a;选取与飞机升阻力相关的状态变量&#xff0c;如飞行速度、攻角、…...

使用Qt创建悬浮窗口

在Qt中创建悬浮窗口&#xff08;如无边框、可拖动的浮动面板或提示框&#xff09;可以通过以下方法实现。以下是几种常见场景的解决方案&#xff1a; 方法1&#xff1a;使用无边框窗口 鼠标事件拖动 适用于自定义浮动工具窗口&#xff08;如Photoshop的工具栏&#xff09;。 …...

C/C++都有哪些开源的Web框架?

CppCMS CppCMS是一个采用C语言开发的高性能Web框架&#xff0c;通过模版元编程方式实现了在编译期检查RESTful路由系统&#xff0c;支持传统的MVC模式和多种语言混合开发模式。 CppCMS最厉害的功能是WebSocket&#xff0c;10万连接在内存中长期保存占用的大小不超过600MB&…...

Unity基于C#+UGUI解决方案,制作每日签到系统(本地存储签到数据)

一、需求介绍:基于本地存储系统制作一个每日签到系统界面,相关签到界面如下图所示,点击“签到有礼”按钮后就会跳转到“每日登录礼”这个界面,点击“立即签到”按钮之后,按钮就会置灰,而且按钮的文字会变成“等待明日”。 二、制作界面显示相关功能,需要在Unity中新建一…...

VBA+FreePic2Pdf 找出没有放入PDF组合的单个PDF工艺文件

设计部门针对某个项目做了一个工艺汇总报告&#xff0c;原先只要几十个工艺文件&#xff0c;组合成一个PDF&#xff0c;但后来要求要多放点PDF进去&#xff0c;但工艺文件都混在一起又不知道哪些是重复的&#xff0c;找上我让我帮忙处理一下&#xff0c;我开始建议让她重新再组…...

工程化与框架系列(31)--前端依赖管理实践

前端依赖管理实践 &#x1f4e6; 引言 前端依赖管理是现代Web开发中的重要环节。本文将深入探讨前端依赖管理的最佳实践&#xff0c;包括包管理工具、版本控制、依赖分析和优化等方面&#xff0c;帮助开发者更好地管理项目依赖。 依赖管理概述 前端依赖管理主要包括以下方面…...

【vscode-01】vscode不同项目不同语言扩展插件隔离方案

vscode不同项目不同语言扩展插件隔离方案 1. 背景2. vscode 扩展插件隔离方案2.1 code-profile 配置文件2.2 配合extensions.json 1. 背景 最近打开vscode 发现越来越卡&#xff0c;这是一个轻量级代码编辑器&#xff0c;怎么会如此占用内存呢&#xff1f; 我使用了‘code --l…...

17 | 实现简洁架构的 Biz 层

提示&#xff1a; 所有体系课见专栏&#xff1a;Go 项目开发极速入门实战课&#xff1b;欢迎加入 云原生 AI 实战 星球&#xff0c;12 高质量体系课、20 高质量实战项目助你在 AI 时代建立技术竞争力&#xff08;聚焦于 Go、云原生、AI Infra&#xff09;&#xff1b;本节课最终…...

DNS解析错误要怎么处理

在互联网时代&#xff0c;网络已经成为人们生活和工作中不可或缺的一部分。然而&#xff0c;当遇到DNS 解析错误时&#xff0c;原本畅通无阻的网络访问会突然陷入困境&#xff0c;让人感到十分困扰。DNS&#xff0c;即域名系统&#xff0c;它如同互联网的电话簿&#xff0c;将人…...

【Rust基础】Rust后端开发常用库

使用Rust有一段时间了&#xff0c;期间尝试过使用Rust做后端开发、命令行工具开发&#xff0c;以及做端侧模型部署&#xff0c;也尝试过交叉编译、FFI调用等&#xff0c;也算是基本入门了。在用Rust做后端接口开发时&#xff0c;常常会找不到一些合适库&#xff0c;而这些库在J…...

【附JS、Python、C++题解】Leetcode面试150题(9)——三数之和

一、题目​​​​​ 15. 三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足&#xff1a; i!j、i!k 且 j! k &#xff0c;同时还满足&#xff1a;nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意…...

脑电波控制设备:基于典型相关分析(CCA)的脑机接口频率精准解码方法

文章目录 前言一、CCA的用途二、频率求解思路三、输入数据结构四、判断方法五、matlab实践1.数据集获取及处理2.matlab代码3.运行及结果 六、参考文献 前言 在脑机接口(BCI)领域&#xff0c;有SSVEP方向&#xff0c;中文叫做稳态视觉诱发电位&#xff0c;当人观看闪烁的视觉刺激…...

Golang学习笔记_44——命令模式

Golang学习笔记_41——观察者模式 Golang学习笔记_42——迭代器模式 Golang学习笔记_43——责任链模式 文章目录 一、核心概念1. 定义2. 解决的问题3. 核心角色4. 类图 二、特点分析三、适用场景1. 事务管理系统2. 多媒体遥控器3. 操作审计系统 四、Go语言实现示例五、高级应用…...

vue项目如何实现条件查询?

目录 1.前端 2.后端 3.mybatis的sql语句 结语 1.前端 说白了就是&#xff0c;无论该参数是否是空字符串&#xff0c;都会传递到后端。&#xff08;反正不是null就行&#xff09;。 2.后端 在controller层中&#xff0c;使用RequestParam注解接收名为registerName的参数&…...

windows平台的ffmpeg编译使用

windows平台的ffmpeg编译使用 一、现状 本人使用libgdx开发galGame,发现扩展包gdx-video不支持mp4,不能忍,正好看到官网有支持自定义编译的文档,所以操作一下,自定义编译。本文重点在于操作windows平台,linux平台太简单了。 整个过程包括如下几个步骤。 二、代码下载…...

Android 14 昼夜色切换多屏时候非主屏的Activity无法收到onConfigurationChanged

记录一下遇见的这个问题和查看源码的过程 首先先说遇见的问题 Android 14 昼夜色切换多屏时候 非主屏的Activity 会经常收不到 onConfigurationChanged的回调 分析原因源码中ActivityThread::performActivityConfigurationChanged 里面 private Configuration performActivi…...

NLP常见任务专题介绍(4)-ConditionalGeneration和CasualLM区别

在 transformers 库中,ConditionalGeneration 和 CausalLM 是两种不同类型的语言模型,各自适用于不同的任务: 类别Conditional Generation (条件生成)CausalLM (因果语言模型)核心区别依赖输入 条件 生成文本只能 自回归 生成文本训练方式Encoder-Decoder(编码-解码) 结构…...

【vue+excel】导出excel(目前是可以导出两个sheet)

项目里经常用到的导出ecxel功能是默认导出一个sheet页 现在需要导出两个sheet&#xff0c;一个是总计&#xff0c;另一个是明细 效果如下&#xff1a; 我就在现有的单个导出的功能上改造了一下&#xff0c;只支持导出两个&#xff08;代码不够灵活&#xff0c;如果需要多个&…...

【数据结构】6栈

0 章节 3&#xff0e;1到3&#xff0e;3小节。 认知与理解栈结构&#xff1b; 列举栈的操作特点。 理解并列举栈的应用案例。 重点 栈的特点与实现&#xff1b; 难点 栈的灵活实现与应用 作业或思考题 完成学习测试&#xff12;&#xff0c;&#xff1f; 内容达成以下标准(考核…...

【C++】每日一练(有效的括号)

本篇博客给大家带来的是用C语言来解答有效的括号&#xff01; &#x1f41f;&#x1f41f;文章专栏&#xff1a;每日一练 &#x1f680;&#x1f680;若有问题评论区下讨论&#xff0c;我会及时回答 ❤❤欢迎大家点赞、收藏、分享&#xff01; 今日思想&#xff1a;不服输的少年…...

数字化新零售与 AI 大模型,如何重塑大健康赛道?​

在数字化浪潮中&#xff0c;大健康赛道正经历深刻变革。数字化新零售营销模式的兴起&#xff0c;与 AI 大模型的强大能力相结合&#xff0c;为大健康领域带来了全新的发展机遇。 数字化新零售营销模式融合线上线下&#xff0c;运用大数据、云计算分析消费者行为&#xff0c;实…...

Android实现Socket通信

问题&#xff1a; 我在Android端对接后端Socket服务实现消息模块的时候&#xff0c;使用WebSocketClient 库&#xff0c;手动构造了订阅和发送消息的 STOMP 帧&#xff0c;&#xff0c;Socket连接成功建立&#xff0c;但是当用户发送消息的时候&#xff0c;对方无法接受到。 …...

✅ Vue 3 响应式写法小抄表(Composition API 实战模板)

&#x1f4e6; 引入核心响应式工具 import { ref, reactive, computed, watch, toRefs } from vue1️⃣ 基本类型&#xff08;string / number / boolean&#xff09; → 推荐使用 ref() const username ref() const count ref(0) const isLoading ref(false)2️⃣ 对象/表…...

Python数据分析之数据可视化

Python 数据分析重点知识点 本系列不同其他的知识点讲解&#xff0c;力求通过例子让新同学学习用法&#xff0c;帮助老同学快速回忆知识点 可视化系列&#xff1a; Python基础数据分析工具数据处理与分析数据可视化机器学习基础 四、数据可视化 图表类型与选择 根据数据特…...

TCP协议支持全双工原因TCP发送接收数据是生产者消费者模型

一、TCP支持全双工的原因 TCP协议支持全双工&#xff0c;即使用TCP协议进行通信时&#xff0c;服务端和客户端可以同时进行数据的发送和接收&#xff0c;互不干扰&#xff0c;实现同时双向传输数据。 这是因为使用TCP协议通信时&#xff0c;读写套接字的文件描述符既用来发送…...

【ODHead】BEVDet的 CenterHead的推理和拓展到蒸馏损失的算法细节

文章目录 背景常识1、BEVDet的CenterHead整体方案2、蒸馏部分3、输出 preds_dicts 部分3.1、headmap3.2、bbox3.3、Mask掩膜3.4、损失 背景常识 在BEVDet和BEVFormer里&#xff0c;使用了不同的3D detection head&#xff08;BEVDet用了centerhead&#xff0c;BEVFormer用了de…...

在 CentOS 7 上安装 PHP 7.3

在 CentOS 7 上安装 PHP 7.3 可以按照以下步骤进行操作&#xff1a; 1. 安装必要的依赖和 EPEL 仓库 EPEL&#xff08;Extra Packages for Enterprise Linux&#xff09;是为企业级 Linux 提供额外软件包的仓库&#xff0c;yum-utils 用于管理 yum 仓库。 sudo yum install -…...

vue+dhtmlx-gantt 实现甘特图-快速入门【甘特图】

文章目录 一、前言二、使用说明2.1 引入依赖2.2 引入组件2.3 引入dhtmlx-gantt2.4 甘特图数据配置2.5 初始化配置 三、代码示例3.1 Vue2完整示例3.2 Vue3 完整示例 四、效果图 一、前言 dhtmlxGantt 是一款功能强大的甘特图组件&#xff0c;支持 Vue 3 集成。它提供了丰富的功…...

关于ModbusTCP/RTU协议对接Ethernet/IP(CIP)协议的方案

IGT-DSER智能网关模块支持西门子、倍福(BECKHOFF)、罗克韦尔AB&#xff0c;以及三菱、欧姆龙等各种品牌的PLC之间通讯&#xff0c;支持Ethernet/IP(CIP)、Profinet(S7)&#xff0c;以及FINS、MC等工业自动化常用协议&#xff0c;同时也支持PLC与Modbus协议的工业机器人、智能仪…...

python-leetcode 49.二叉树中的最大路径和

题目&#xff1a; 二叉树中的路径被定义为一条节点序列&#xff0c;序列中每对相邻节点之间都存在一条边&#xff0c;同一个节点在一条路径序列中至多出现一次&#xff0c;该路径至少包含一个节点&#xff0c;且不一定经过根节点。 路径和是路径中各节点值得总和&#xff0c;…...

C语言基础知识04

指针 指针概念 指针保存地址&#xff0c;地址是字节的编号 指针类型和保存的地址类型要一直 使用时注意&#xff0c;把地址转换为&变量的格式来看 int a[3]; a转为&a[0] 指针的大小 64bit 固定8字节&#xff0c; 32bit 固定4字节 指针…...

使用 Golang 操作 MySQL

在Go语言中&#xff0c;操作SQL数据库&#xff0c;通常会用到一些第三方库来简化数据库的连接、查询和操作过程。其中原生的 database/sql go-sql-driver/mysql 库更符合sql语句使用习惯。‌ 安装 go get github.com/go-sql-driver/mysql 直接上代码来演示基本的创建&#xff…...

前端面试:cookie 可以实现不同域共享吗?

在前端开发中&#xff0c;Cookie 不能直接实现不同域之间的共享。Cookie 的作用域受到域的限制&#xff0c;浏览器不会允许一个域下的 Cookie 被另一个域访问。这是为了保护用户隐私及安全&#xff0c;防止跨站请求伪造&#xff08;CSRF&#xff09;等安全问题。 Cookie 的基本…...

MyBatis-Plus接入和简单使用

如何接入 https://baomidou.com/getting-started/ 简单使用方法 使用 MyBatis-Plus 时&#xff0c;大多数场景下不需要编写 XML 和 SQL&#xff0c;因为它提供了强大的通用 CRUD 操作和条件构造器。但以下情况可能需要手动编写 SQL&#xff1a; 1. 不需要写 XML/SQL 的场景 …...

【Go万字洗髓经】Golang内存模型与内存分配管理

本文目录 1. 操作系统中的虚拟内存分页与进程管理虚拟内存与内存隔离 2. Golang中的内存模型内存分配流程内存单元mspan线程缓存mcache中心缓存mcentral全局堆缓存mheapheapArena空闲页索引pageAlloc 3. Go对象分配mallocgc函数tiny对象分配内存 4.结合GMP模型来看内存模型tiny…...

mov格式视频如何转换mp4?

mov格式视频如何转换mp4&#xff1f;在日常的视频处理中&#xff0c;经常需要将MOV格式的视频转换为MP4格式&#xff0c;以兼容更多的播放设备和平台。下面给大家分享如何将MOV视频转换为MP4&#xff0c;4款视频格式转换工具分享。 一、牛学长转码大师 牛学长转码大师是一款功…...

鸿蒙OS开发ForEach循环渲染

摘要 在ForEach循环渲染过程中&#xff0c;如果修改列表项中的数据&#xff0c;但是UI页面不会刷新。在最近开发公司app时遇到了这个问题&#xff0c;经过查看官方文档找到了解决方式 官方地址&#xff1a;数据变化不刷新 一、具体解决方案 思路&#xff1a;通过父子组件传…...

【算法】DFS、BFS、拓扑排序

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;算法 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 持续更新中...1、DFS2、BFSN 叉树的层序遍历二叉树的锯齿形层序遍历二叉树最大宽度 3、多源BFS腐烂的苹果 4、拓扑排序 持续更新中…...

【Godot4.0】贝塞尔曲线在游戏中的实际应用

概述 之前研究贝塞尔曲线绘制&#xff0c;完全是以绘图函数&#xff0c;以及实现节点连接为思考。并没有实际考虑贝塞尔曲线在游戏中的应用。今日偶然看到悦千简一年多前发的一个用贝塞尔曲线实现追踪弹或箭矢效果&#xff0c;还有玩物不丧志的老李杀戮尖塔系列中的卡牌动态箭…...

MongoDB 数据导出与导入实战指南(附完整命令)

1. 场景说明 在 MongoDB 运维中&#xff0c;数据备份与恢复是核心操作。本文使用 mongodump 和 mongorestore 工具&#xff0c;演示如何通过命令行导出和导入数据&#xff0c;解决副本集连接、路径指定等关键问题。 2. 数据导出&#xff08;mongodump&#xff09; 2.1 导出命…...

『Rust』Rust运行环境搭建

文章目录 rust编译工具rustupVisual Studio VS Code测试编译手动编译VSCode编译配置 参考完 rust编译工具rustup https://www.rust-lang.org/zh-CN/tools/install 换源 RUSTUP_DIST_SERVER https://rsproxy.cn RUSTUP_UPDATE_ROOT https://rsproxy.cn修改rustup和cargo的安…...

CPU+GPU结合的主板设计思路与应用探讨

在高性能计算和图形处理需求不断增长的背景下&#xff0c;CPUGPU结合的主板设计逐渐成为硬件架构的重要趋势。本文将探讨基于CPUGPU架构的主板设计思路、关键技术考量以及应用前景。 1. 设计思路概述 CPU&#xff08;中央处理器&#xff09;擅长处理复杂的逻辑运算和多任务控制…...

latex问题汇总

latex问题汇总 环境问题1 环境 texlive2024 TeXstudio 4.8.6 (git 4.8.6) 问题1 编译过程有如下错 ! Misplaced alignment tab character &. l.173 International Conference on Infrared &Millimeter Waves, 2004: 667--... I cant figure out why you would wa…...

学习springboot-Bean管理(Bean 注册,Bean 扫描)

Bean 扫描 可以浏览下面的博客链接 &#xff1a;spring 学习 &#xff08;注解&#xff09;-CSDN博客 在学习spring 注解时&#xff0c;我们使用 Component &#xff0c;Service,Controller等 这样的注解&#xff0c;将目标类信息&#xff0c;传递给IOC容器&#xff0c;为其创…...