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

VUE.js笔记

1.介绍vue

Vue 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面,Vue 都可以胜任。

Vue 应用程序的基本结构通常围绕组件(Components)来组织。组件是 Vue 应用的构建块,它们可以包含 HTML、JavaScript 和 CSS,并且可以独立于其他组件工作。

2.框架结构

1. 根实例和根组件

  • 每个 Vue 应用都是从一个根实例开始的。
  • 根实例通常与一个根组件(App.vue)相关联,这个组件作为应用的入口点和顶层容器。

2. 组件结构

  • 单文件组件:在 Vue 项目中,每个组件通常是一个 .vue 文件,它包含三个部分:<template><script> 和 <style>
  • 组件嵌套:组件可以包含其他子组件,形成嵌套结构。这允许开发者构建复杂的用户界面。

3. 组件通信

  • 父子通信:父组件可以通过 props 向子组件传递数据,子组件可以通过事件向父组件发送消息。
  • 子父通信:子组件可以使用 this.$emit 触发事件,父组件监听这些事件并作出响应。
  • 事件总线:对于更复杂的应用,可以使用事件总线(Event Bus)或 Vuex 进行跨组件通信。

4. 路由(Vue Router)

  • 视图管理:Vue Router 允许你构建单页面应用程序,通过不同的路径来切换不同的视图(组件)。
  • 路由配置:在 router/index.js 中配置路由,定义路径与组件之间的映射关系。

5. 状态管理(Vuex)

  • 集中式存储:Vuex 提供了一个集中式存储管理应用的所有组件的状态。
  • 状态修改:通过提交 mutation 来修改状态,通过 action 处理异步操作。

6. 资源和插件

  • 插件:Vue 插件可以提供额外的功能,如 vue-router 和 vuex
  • 资源:静态资源(如图片、样式表)通常放在 public 目录中。

7. 构建和开发工具

  • Vue CLI:Vue CLI 提供了项目脚手架、构建和开发服务器。
  • 构建配置:通过 vue.config.js 文件自定义构建配置。

8. 项目目录结构

一个典型的 Vue 项目目录结构可能如下所示:

my-project/
│
├── public/             # 静态资源文件
│
├── src/                 # 源代码
│   ├── assets/          # 静态资源,如图片、样式
│   ├── components/      # 应用组件
│   ├── views/           # 视图组件
│   ├── router/          # 路由配置
│   ├── store/           # Vuex 状态管理
│   ├── App.vue          # 根组件
│   └── main.js          # 入口文件
│
├── tests/               # 测试文件
│
├── .gitignore            # Git 忽略文件配置
├── package.json         # 项目依赖和脚本
├── README.md            # 项目说明文件
└── vue.config.js        # Vue CLI 构建配置

理解这些基本结构和组件组织方式有助于开发者更好地组织和管理 Vue 应用程序的代码,使其更加模块化、可维护和可扩展。

3.vue模板语法

【电脑关机重启后,vue项目需要再次使用运行命令,使之运行。】

组件化开发:

组件:由三种语法组成,html,css ,js

语法模板就是{{  }}  双层大括号。

 {{变量名,简单计算,简单的判断(只能是一行内完成) }}

4.生命周期钩子

在 Vue.js 中,生命周期钩子(Lifecycle Hooks)是特殊的函数,可以在 Vue 实例或组件的不同阶段被调用。这些钩子允许开发者在实例或组件的生命周期中的特定时刻执行代码。

1.beforeCreate(创建前)

在实例初始化之后,数据观测和事件/侦听器配置之前被调用。

2.created(创建后)

在实例创建完成后被调用,此时数据观测和事件/侦听器已经设置好,但组件尚未挂载到 DOM 上。

3.beforeMount(组件特有-渲染前):

在首次渲染之前调用,此时虚拟 DOM 已经创建,但尚未挂载到真实 DOM 上。

4.mounted(渲染后)

在实例或组件挂载到 DOM 上后调用,此时可以访问到 DOM 元素。

5.beforeUpdate(更新前)

在数据变化导致虚拟 DOM 重新渲染之前调用。

6.updated(更新后)

在虚拟 DOM 重新渲染并打补丁完成后调用,此时组件已经更新。

7.beforeDestroy(销毁前)

在实例或组件销毁之前调用,此时实例或组件仍然完全可用。

8.destroyed(销毁后)

在实例或组件销毁后调用,此时实例或组件已经不可用。

9.activated(组件特有,用于 keep-alive 缓存的组件):

被 keep-alive 缓存的组件被激活时调用。

10.deactivated(组件特有,用于 keep-alive 缓存的组件):

被 keep-alive 缓存的组件被停用时调用。

11.errorCaptured(Vue 2.5.0+):

捕获组件内的错误时调用。

12.钩子使用

使用生命周期钩子,开发者可以在 Vue 实例或组件的不同阶段执行初始化、数据获取、清理工作等操作。这些钩子是 Vue 应用开发中不可或缺的一部分,它们提供了对组件生命周期的细粒度控制。

new Vue({data: {message: 'Hello World!'},beforeCreate: function() {console.log('beforeCreate - 实例创建,数据观测和事件/侦听器尚未设置。');},created: function() {console.log('created - 实例已创建,数据观测和事件/侦听器已设置。');},beforeMount: function() {console.log('beforeMount - 首次渲染之前。');},mounted: function() {console.log('mounted - 实例已挂载到 DOM 上。');},beforeUpdate: function() {console.log('beforeUpdate - 数据变化,虚拟 DOM 重新渲染之前。');},updated: function() {console.log('updated - 虚拟 DOM 重新渲染并打补丁完成。');},beforeDestroy: function() {console.log('beforeDestroy - 实例销毁之前。');},destroyed: function() {console.log('destroyed - 实例销毁后。');}
});

5.工具和库

Vue Router、Vuex 和 Vue CLI 是 Vue 生态系统中的三个重要组成部分,它们共同支持构建现代的单页面应用程序(SPA)。

Vue Router、Vuex 和 Vue CLI 一起构成了 Vue.js 的官方“三个火枪手”,它们为构建大型、复杂的单页面应用程序提供了必要的工具和模式。通过这些工具,开发者可以更高效地构建和管理现代的前端应用。

1.Vue Router

Vue Router 是 Vue.js 的官方路由管理器。它允许你构建多视图的单页面应用程序,通过不同的路径来切换组件,而不需要重新加载页面。Vue Router 与 Vue.js 核心深度集成,使得在 Vue 应用中使用路由变得简单而直观。

主要特点:

  • 嵌套路由:支持嵌套的路由和视图。
  • 路由参数:可以捕获 URL 中的参数并作为组件的 props 传递。
  • 路由守卫:提供了不同的守卫钩子,如全局守卫、路由独享的守卫和组件内的守卫。
  • 懒加载:支持路由级别的代码分割,可以提高应用的加载速度。

2.Vuex

Vuex 是 Vue.js 的官方状态管理模式。它用于在应用程序中集中管理状态(也称为状态管理模式),适用于复杂应用。Vuex 通过集中存储管理所有组件的状态,并通过相应的规则保证状态以一种可预测的方式发生变化。

主要特点:

  • 单一状态树:整个应用的状态被集中管理在一个对象中。
  • 状态管理:提供了响应式的状态管理。
  • 变更跟踪:可以跟踪状态的变化,方便调试和时间旅行。
  • 热重载:支持热重载和开发工具集成。

3.Vue CLI

Vue CLI 是 Vue.js 的官方命令行工具,用于快速搭建 Vue 项目。它提供了一个易于使用且可扩展的界面,允许开发者快速开始开发 Vue 应用,并包含现代前端开发所需的所有工具。

主要特点:

  • 项目脚手架:快速创建新项目的模板。
  • 插件系统:支持扩展和自定义项目配置。
  • 构建和服务:提供了构建和本地服务的功能。
  • 现代工具链:集成了 Babel、Webpack、PostCSS 等现代前端工具。

使用 Vue CLI 创建项目通常涉及以下步骤:

bash

# 全局安装 Vue CLI
npm install -g @vue/cli# 创建一个新的 Vue 项目
vue create my-project# 进入项目目录
cd my-project# 启动开发服务器
npm run serve

6.响应式数据绑定

Vue.js 实现响应式数据绑定和双向数据流主要依赖于以下几个核心技术:

通过这种方式,Vue.js 使得数据和视图之间的同步变得简单和高效,同时保持了代码的简洁性。开发者不需要手动操作 DOM 或监听事件来更新视图,Vue 的响应式系统会自动处理这些任务。

  1. 响应式系统

    Vue 使用响应式系统来跟踪数据的变化。在 Vue 中,数据通常是通过 data 函数返回的对象来定义的。
  2. 依赖收集

    当组件的模板被渲染时,Vue 会触发数据的 getter,从而将依赖(通常是模板中的变量)收集起来。
  3. 观察者模式

    Vue 的响应式系统基于观察者模式,当数据变化时,依赖于这些数据的观察者(如组件的渲染函数)会被通知并更新。
  4. 虚拟 DOM

    Vue 通过维护一个虚拟 DOM 树来表示真实 DOM 的状态。当数据变化时,Vue 会计算出最小的 DOM 更新。
  5. 双向数据绑定

    Vue 提供了 v-model 指令来实现双向数据绑定。v-model 通常用于表单输入元素,如 <input><textarea> 和 <select>

1.响应式数据绑定:

1.初始化

当创建 Vue 实例时,Vue 会遍历 data 对象中的属性,并使用 Object.defineProperty 将它们转换为 getter/setter。

2.依赖收集

当组件的模板被渲染时,Vue 会访问这些属性(getter),并记录下哪些组件依赖于这些属性。

3.数据变化

当数据发生变化时,触发 setter,Vue 会通知所有依赖于这些数据的组件。

4.异步更新队列

Vue 将所有数据变化放入一个异步队列,然后批量处理这些变化。

5.视图更新

在下一个事件循环中,Vue 清空异步队列,并更新所有依赖的组件的视图。

2.双向数据绑定:

1.v-model 指令

在模板中使用 v-model 指令可以将表单输入元素与数据属性绑定。

2.输入事件监听

Vue 在输入元素上监听 input 事件(对于 <textarea> 可能是 change 事件),并在事件处理函数中更新数据。

3.数据同步

当用户输入时,Vue 通过事件处理函数同步更新数据,从而实现双向绑定。

4.视图响应

由于数据是响应式的,数据的变化会自动触发视图的更新,使得输入元素的值与数据保持一致。

7.组件系统

Vue 的组件系统是构建大型应用程序的关键。通过组件化开发,可以将界面分解为独立的、可复用的组件,每个组件负责应用程序的一部分功能。

通过这些概念和工具,Vue 的组件系统提供了强大的能力来构建和管理复杂的用户界面。开发者可以创建可复用的组件,构建模块化的代码,从而提高开发效率和应用程序的可维护性。

1.组件创建

  • 单文件组件:在 Vue 中,通常使用 .vue 单文件组件,它将模板、脚本和样式整合在一个文件中。
  • 组件结构:一个基本的 Vue 组件至少包含一个 <template>、一个 <script> 部分,可选的 <style> 部分。

2.组件注册

  • 局部注册:在 Vue 组件的 <script> 部分使用 components 属性定义并注册组件。
  • 全局注册:使用 Vue 的 Vue.component 方法在全局范围内注册组件。

3.Props

  • 传递数据:Props 是父组件传递给子组件的数据。子组件通过声明 props 属性来接收从父组件传递的数据。
  • 单向数据流:Props 形成了父子组件之间的单向数据流,即数据只能从父组件流向子组件。

4.事件传递

  • 自定义事件:子组件可以通过 this.$emit 方法触发事件,并将数据传递给父组件。
  • 监听事件:父组件使用 v-on 或 @ 语法监听子组件触发的事件,并定义相应的处理函数。

5.组件通信

  • 父子通信:通过 props 和事件,实现父子组件之间的数据和事件传递。
  • 兄弟通信:通常通过共同的父组件来协调兄弟组件之间的通信。
  • 跨级通信:可以使用事件总线、Vuex 或提供/注入模式来实现。

6.插槽(Slots)

  • 内容分发:插槽允许子组件将内容传递回父组件的模板中,实现更灵活的内容插入。
  • 具名插槽:可以定义具名插槽来插入特定的内容。

7.动态组件

  • <component> 标签:使用 is 属性动态切换不同的组件。

8.混入(Mixins)

  • 代码复用:混入允许你定义可复用的组件逻辑,然后在多个组件中使用这些逻辑。

9.组件库

  • 第三方组件库:如 Vuetify、Element UI 等,提供了一套预制的组件,可以加速开发过程。

8.计算属性与侦听器

在 Vue.js 中,计算属性(Computed Properties)和侦听器(Watchers)是处理复杂数据逻辑的两个重要工具。它们都基于 Vue 的响应式系统,但用途和工作方式有所不同。

计算属性:适用于需要根据现有数据计算新值的场景,且计算结果会被缓存。

侦听器:适用于需要对数据变化做出响应并执行复杂逻辑的场景。

合理使用计算属性和侦听器可以帮助你构建更高效、更易于维护的 Vue 应用程序。

1.计算属性(Computed Properties)

计算属性是基于它们的响应式依赖进行缓存的。只有当计算属性依赖的数据发生变化时,计算属性才会重新计算。它们通常用于以下情况:

  1. 派生状态:当数据需要根据现有数据进行转换或计算时。
  2. 性能优化:避免在模板中进行复杂的逻辑处理,从而提高渲染效率。
new Vue({el: '#app',data: {firstName: 'Jane',lastName: 'Doe'},computed: {// 计算属性 fullName 依赖于 firstName 和 lastNamefullName: function () {return this.firstName + ' ' + this.lastName;}}
});

在上面的例子中,fullName 是一个计算属性,它依赖于 firstNamelastName。当 firstNamelastName 发生变化时,fullName 会自动更新。

2.侦听器(Watchers)

侦听器用于在数据变化时执行异步或开销较大的操作。它们可以用来监听数据的变化,并在变化发生时执行任何响应。

new Vue({el: '#app',data: {question: '',answer: 'I cannot answer until you ask a question!'},watch: {// 侦听器监听 question 的变化question: function (newQuestion, oldQuestion) {this.answer = 'Waiting for you to stop typing...';this.debouncedGetAnswer();}},methods: {debouncedGetAnswer: function () {setTimeout(() => {this.answer = 'Thinking...';setTimeout(() => {this.answer = 'The answer is: 42';}, 1000);}, 500);}}
});

在这个例子中,question 是一个被侦听的数据属性。当用户输入问题时,侦听器会触发,执行 debouncedGetAnswer 方法,该方法使用 setTimeout 来模拟异步操作。

相关文章:

VUE.js笔记

1.介绍vue Vue 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建&#xff0c;并提供了一套声明式的、组件化的编程模型&#xff0c;帮助你高效地开发用户界面。无论是简单还是复杂的界面&#xff0c;Vue 都可以胜任。 Vue 应用程序的基本…...

SpringBoot--yml配置文件的时间/大小的单位转换

原文网址&#xff1a;SpringBoot--yml配置文件的时间/大小的单位转换_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍SpringBoot的yml&#xff08;properties&#xff09;配置文件的时间/大小的单位转换。 概述 SpringBoot可以将yml中的配置绑定到一个Java类的字段&#x…...

【算法业务】互联网风控业务中的拒绝推断场景算法应用分享(涉及半监督算法、异常检测、变分自编码、样本权重自适应调整、迁移学习等)

1. 业务目标和任务描述 该项目是很早期的一个工作&#xff0c;属于互联网信贷风控场景&#xff0c;研究并应用信贷中的拒绝推断任务&#xff0c;处理方式也许对于目前的一些业务还有参考意义&#xff0c;因此这里做下分享。拒绝推断是指在信贷业务中&#xff0c;利用已知的接受…...

Windows PowerShell相关笔记

之前我写的一篇&#xff0c;把我的PS&#xff08;power shell&#xff09;该了配置文件 pyqt5vscode 配置坑笔记_vscode使用pyqt command failed-CSDN博客 文件里写的自动加载conda #region conda initialize # !! Contents within this block are managed by conda init !!…...

力扣9.24

2207. 字符串中最多数目的子序列 给你一个下标从 0 开始的字符串 text 和另一个下标从 0 开始且长度为 2 的字符串 pattern &#xff0c;两者都只包含小写英文字母。 你可以在 text 中任意位置插入 一个 字符&#xff0c;这个插入的字符必须是 pattern[0] 或者 pattern[1] 。…...

NRF21540—低功耗蓝牙,蓝牙mesh、Thread和Zigbee和2.4 GHz私有协议范围扩展射频前端模块

nRF21540是一款射频前端模块(FEM)&#xff0c;可用于改善短距离无线产品的传输范围和连接鲁棒性。作为一款辅助性设备&#xff0c;nRF21540是一种“即插即用型”的无线传输范围扩展器&#xff0c;可与nRF52和nRF53系列的高级多协议无线SoC搭配使用&#xff0c;所需的外部器件数…...

2024最新Linux Socket编程

我们深谙信息交流的价值&#xff0c;那网络中进程之间如何通信&#xff0c;如我们每天打开浏览器浏览网页时&#xff0c;浏览器的进程怎么与web服务器通信的&#xff1f;当你用QQ聊天时&#xff0c;QQ进程怎么与服务器或你好友所在的QQ进程通信&#xff1f;这些都得靠socket&am…...

Linux下的驱动开发二

一、IO模型 I/O 模型在操作系统中用于处理应用程序与设备驱动之间的数据传输。I/O 通信模型的核心是解决程序与设备之间如何高效、合理地进行数据通信。不同的模型通过阻塞、非阻塞、同步、异步的方式来控制数据流和处理 I/O 请求。 注&#xff1a;在驱动开发中可以定义一个全…...

【JAVA报错已解决】 Java.lang.ArrayIndexOutOfBoundsException

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…...

2024 CSP 游记

J 组 初赛 早上也是五点钟就起来 打游戏 了。 考点在八达小学&#xff0c;除了感觉小、破、旧就没有其他感觉&#xff08; 我妈也是成功的给我提前一小时到达考场。 拿到试卷后&#xff0c;瞄一眼&#xff0c;咋这么简单&#xff0c;和一本通的模拟卷难度一样&#xff1f;…...

双十一有什么推荐好物?,这些你不能错过的宝藏好物推荐

随着双十一的临近&#xff0c;这场盛大的购物狂欢蓄势待发&#xff01;为了让大家不在琳琅满目的商品中徘徊&#xff0c;琪琪用心归纳了一份购物清单&#xff0c;分享那些我亲自使用过&#xff0c;觉得必须拥有的商品。 这些商品不仅价格公道&#xff0c;而且质量上乘&#xf…...

NSSCTF [HUBUCTF 2022 新生赛]simple_RE(变种base64编码)

文件无壳 拖入IDA中 shiftF12查看可疑字符串 发现两串字符串 一看这两个等于号就猜测是base64编码 进入主函数看看 这段代码是一个简单的 C 语言程序&#xff0c;主要功能是接受用户输入的字符串作为“flag”&#xff0c;然后通过对输入的字符串进行一些处理和比较来验证是否输…...

clickhouse使用extract提取分号之前,之后,中间的内容

Area&#xff1a;‘安徽;宣城;宣州’&#xff0c;要提取分号之前&#xff0c;两个分号之前&#xff0c;最后一个分号之后的内容作为省市区 这是最后得到的正确的结果&#xff0c;感谢chatgpt 刚开始本来想使用splitByString -- 宣城 select splitByString(;,安徽;宣城;宣州)[2…...

Unity3D Compute Shader同步详解

前言 在Unity3D中&#xff0c;Compute Shader是一种强大的工具&#xff0c;它利用GPU的并行处理能力来执行复杂的计算任务&#xff0c;从而减轻CPU的负担&#xff0c;提高游戏的性能和效率。然而&#xff0c;由于GPU的工作方式&#xff0c;对共享资源的访问需要特别注意同步问…...

3D模型在UI设计中应用越来越多,给UI带来了什么?

当前3D模型在UI设计中应用很多&#xff0c;极大地拓展了UI设计的发挥空间&#xff0c;也拓宽了UI的应用领域&#xff0c;本文分享下UI中引入3D模型到底能带来什么价值. 3D模型在UI设计中的应用可以给用户界面带来以下几个方面的好处&#xff1a; 更真实的视觉体验&#xff1a;…...

前端框架的选择与考量:一场技术的盛宴

在当今快速迭代的Web开发领域&#xff0c;前端框架的选择成为了项目启动初期不可忽视的重要环节。随着React、Vue、Angular等主流框架的崛起&#xff0c;以及Svelte、Quasar等新兴力量的加入&#xff0c;开发者们面临着前所未有的选择难题。本文旨在探讨前端框架的选择依据、主…...

第五部分:7---信号的捕捉

目录 信号递达期间&#xff0c;该信号会被屏蔽直到递达完成。 sigaction实现信号的捕捉&#xff1a; 案例&#xff1a;在处理2号信号时屏蔽3号信号。 子进程退出向父进程发送SIGCHLD信号&#xff1a; 信号递达期间&#xff0c;该信号会被屏蔽直到递达完成。 当某个信号的处…...

HarmonyOS鸿蒙开发实战( Beta5.0)页面加载效果实现详解实践案例

鸿蒙HarmonyOS开发实战往期必看文章&#xff1a;&#xff08;持续更新......&#xff09; HarmonyOS NEXT应用开发性能实践总结&#xff08;持续更新......&#xff09; HarmonyOS NEXT应用开发案例实践总结合集&#xff08;持续更新......&#xff09; 一分钟了解”纯血版&…...

计算机网络中的VLAN详解

文章目录 计算机网络中的VLAN详解一、引言二、VLAN的作用与原理1、VLAN的作用2、VLAN的工作原理2.1、VLAN标签&#xff08;Tag&#xff09; 三、VLAN的配置与接口类型1、VLAN的配置2、接口类型 四、VLAN的应用场景1、企业网络2、数据中心3、教育网络 五、VLAN间的通信六、总结 …...

Nacos学习

系列文章目录 JavaSE基础知识、数据类型学习万年历项目代码逻辑训练习题代码逻辑训练习题方法、数组学习图书管理系统项目面向对象编程&#xff1a;封装、继承、多态学习封装继承多态习题常用类、包装类、异常处理机制学习集合学习IO流、多线程学习仓库管理系统JavaSE项目员工…...

5分钟搞定AI超清画质增强:镜像部署与使用全攻略

5分钟搞定AI超清画质增强&#xff1a;镜像部署与使用全攻略 1. 引言&#xff1a;为什么需要AI画质增强 1.1 低清图像的普遍困扰 我们每天都会遇到各种低质量图片&#xff1a;模糊的老照片、压缩过度的网络图片、分辨率不足的截图。传统放大方法就像简单拉伸橡皮筋&#xff0…...

Biome 代码检查:别再等 ESLint 慢吞吞了

Biome 代码检查&#xff1a;别再等 ESLint 慢吞吞了 毒舌时刻这代码写得跟网红滤镜似的——仅供参考。各位前端同行&#xff0c;咱们今天聊聊 Biome。别告诉我你还在用 ESLint Prettier&#xff0c;那感觉就像用老爷车跑高速——能跑&#xff0c;但慢得让人崩溃。 为什么你需要…...

【信号处理实战】从原理到代码:手把手实现三次样条插值

1. 三次样条插值&#xff1a;从数学定义到生活场景 想象你正在用一根柔软的弹性尺子连接一组图钉&#xff0c;这些图钉固定在木板上代表你的数据点。这根尺子需要光滑地穿过每一个图钉&#xff0c;同时保持自然的弯曲形态——这就是三次样条插值要解决的问题。作为信号处理中最…...

大模型学习6-模型量化与推理部署

LLM中的量化技术 本部分将系统介绍如何通过模型量化&#xff08;Quantization&#xff09;技术压缩LLM。首先&#xff0c;从量化背景出发&#xff0c;说明当前模型压缩的现实需求&#xff1b;其次&#xff0c;概述深度学习中的通用量化原理&#xff1b;最后&#xff0c;结合LL…...

避坑指南:在Ubuntu 20.04上用XTDrone跑通ORB-SLAM3仿真,我踩过的那些编译坑

避坑指南&#xff1a;Ubuntu 20.04下XTDrone与ORB-SLAM3仿真的深度排雷手册 当你在Ubuntu 20.04上尝试用XTDrone运行ORB-SLAM3仿真时&#xff0c;可能会遇到各种棘手的编译错误和环境配置问题。本文将从实战角度出发&#xff0c;分享我在这一过程中踩过的坑以及如何系统性地解决…...

面试官最爱问的归并排序:从递归到非递归,带你彻底搞懂边界条件与内存管理(避坑指南)

归并排序实战&#xff1a;从递归陷阱到非递归优化的工程级实现 在技术面试中&#xff0c;归并排序就像一位老练的考官&#xff0c;总能用各种边界条件挑战候选人的代码功底。我曾见过不少开发者能流畅写出递归版本&#xff0c;却在非递归实现中陷入无限循环&#xff1b;也有候选…...

UABEA资产编辑异常解决方案:从报错到修复的完整技术故障排除指南

UABEA资产编辑异常解决方案&#xff1a;从报错到修复的完整技术故障排除指南 【免费下载链接】UABEA UABEA: 这是一个用于新版本Unity的C# Asset Bundle Extractor&#xff08;资源包提取器&#xff09;&#xff0c;用于提取游戏中的资源。 项目地址: https://gitcode.com/gh…...

Cosmos-Reason1-7B模型微调实战:基于领域数据提升专业问答效果

Cosmos-Reason1-7B模型微调实战&#xff1a;基于领域数据提升专业问答效果 想让一个通用大模型变成你所在领域的专家吗&#xff1f;比如&#xff0c;让它精通法律条文解读&#xff0c;或者能回答专业的医疗咨询。直接拿现成的Cosmos-Reason1-7B来用&#xff0c;效果可能差强人…...

音频可视化创新实践:从原理到场景的桌面交互指南

音频可视化创新实践&#xff1a;从原理到场景的桌面交互指南 【免费下载链接】rainmeter Desktop customization tool for Windows 项目地址: https://gitcode.com/gh_mirrors/ra/rainmeter 解析音频信号&#xff1a;从声波到视觉的转化机制 当音乐在耳边响起时&#x…...

微信小程序UI组件库终极指南:WeUI-WXSS与Vant、ColorUI深度对比分析

微信小程序UI组件库终极指南&#xff1a;WeUI-WXSS与Vant、ColorUI深度对比分析 【免费下载链接】weui-wxss A UI library by WeChat official design team, includes the most useful widgets/modules. 项目地址: https://gitcode.com/gh_mirrors/we/weui-wxss WeUI-WX…...