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

UniApp页面路由详解

一、路由系统概述

1.1 路由机制原理

UniApp基于Vue.js实现了一套跨平台的路由管理系统,其核心原理是通过维护页面栈来管理应用内不同页面之间的跳转关系。在小程序端,UniApp的路由系统会映射到对应平台的原生导航机制;在H5端则基于HTML5 History API实现;而App端则采用原生导航栏结合Webview管理的方式。

页面栈管理遵循以下规则:
• 最大页面栈深度为10层(微信小程序规范)

• 页面跳转方式影响栈结构(push/pop/replace)

• 页面生命周期与栈变化密切相关

1.2 路由配置基础

路由系统的核心配置文件是pages.json,位于项目根目录。该文件采用JSON格式,包含以下主要配置节点:

{"pages": [{"path": "pages/index/index","style": {...}}],"globalStyle": {...},"tabBar": {...},"condition": {...},"subPackages": [...],"preloadRule": {...}
}

1.3 平台差异说明

特性微信小程序H5App支付宝小程序
页面栈最大深度10无限制1010
原生导航栏支持✔️✔️✔️✔️
自定义导航栏性能一般一般
路由传参方式URLURLURLURL
动态修改导航栏APICSS原生APIAPI
页面预加载✔️✔️✔️

二、pages.json深度解析

2.1 globalStyle全局样式

全局样式配置影响所有页面的默认表现,优先级低于页面级样式配置。

2.1.1 导航栏配置
"globalStyle": {"navigationBarTextStyle": "white","navigationBarTitleText": "全局标题","navigationBarBackgroundColor": "#007AFF","backgroundColor": "#F8F8F8"
}
2.1.2 下拉刷新配置
"globalStyle": {"enablePullDownRefresh": true,"onReachBottomDistance": 100,"backgroundTextStyle": "dark"
}
2.1.3 平台专属配置
"globalStyle": {"mp-weixin": {"navigationBarTitleText": "微信专属标题"},"app-plus": {"titleNView": {"buttons": [...]}}
}

2.2 pages页面配置

定义应用页面路径及页面级样式,数组第一项为首页入口。

2.2.1 基本配置格式
"pages": [{"path": "pages/home/home","style": {"navigationBarTitleText": "首页","enablePullDownRefresh": true}}
]
2.2.2 样式继承关系

全局样式 → 页面样式 → 组件样式 → 内联样式

2.2.3 特殊页面配置
{"path": "pages/detail/_id","style": {"navigationBarTitleText": "详情页","disableScroll": true}
}

2.3 tabBar底部导航

实现多Tab应用的核心配置,支持丰富的自定义选项。

2.3.1 基础配置示例
"tabBar": {"color": "#7A7E83","selectedColor": "#007AFF","borderStyle": "white","backgroundColor": "#F8F8F8","list": [{"pagePath": "pages/home/home","text": "首页","iconPath": "static/tab-home.png","selectedIconPath": "static/tab-home-active.png"}]
}
2.3.2 高级功能实现
  1. 凸起按钮:
"midButton": {"width": "80px","height": "50px","text": "发布","iconPath": "static/mid-button.png","backgroundImage": "static/mid-bg.png"
}
  1. 角标显示:
uni.showTabBarRedDot({index: 1
})
  1. 动态修改:
uni.setTabBarItem({index: 0,text: '新首页',iconPath: 'static/new-icon.png'
})

2.4 分包加载配置

优化小程序体积的重要机制,支持按需加载。

2.4.1 基础分包配置
"subPackages": [{"root": "packageA","pages": [{"path": "page1/page1","style": {...}}]}
]
2.4.2 分包预加载
"preloadRule": {"pages/home/home": {"network": "wifi","packages": ["packageA"]}
}
2.4.3 分包优化策略
  1. 公共组件提取到主包
  2. 静态资源按分包存放
  3. 首屏无关功能延迟加载
  4. 使用分包预加载提升体验

2.5 条件编译配置

"condition": {"current": 0,"list": [{"name": "测试环境","path": "pages/debug/debug","query": "env=test"}]
}

三、路由跳转机制

3.1 路由API详解

3.1.1 基本跳转方法
方法说明栈变化
uni.navigateTo保留当前页,打开新页push
uni.redirectTo关闭当前页,打开新页replace
uni.reLaunch关闭所有页,打开新页clear+push
uni.switchTab切换Tab页clear+push
uni.navigateBack返回上一页pop
3.1.2 参数传递方式
// 跳转时传参
uni.navigateTo({url: '/pages/detail/detail?id=1&name=test'
})// 页面接收参数
export default {onLoad(options) {console.log(options.id) // 1}
}
3.1.3 复杂参数处理
// 对象参数序列化
const params = {id: 1,data: { name: 'test' }
}
uni.navigateTo({url: `/pages/detail/detail?params=${encodeURIComponent(JSON.stringify(params))}`
})// 接收端解析
const params = JSON.parse(decodeURIComponent(options.params))

3.2 页面生命周期

完整生命周期流程:

创建阶段:
beforeCreate → onLoad → onShow → onReady运行阶段:
onHide/onShow → onResize → onPullDownRefresh → onReachBottom → onPageScroll销毁阶段:
onUnload → beforeDestroy → destroyed

3.3 路由守卫实现

通过拦截器实现全局路由守卫:

// main.js
const routerInterceptor = {navigateTo: function(options) {if (!checkAuth()) {return uni.redirectTo({ url: '/pages/login/login' })}return uni.navigateTo(options)},// 其他方法拦截...
}function createInterceptor() {['navigateTo', 'redirectTo', 'reLaunch', 'switchTab'].forEach(apiName => {const original = uni[apiName]uni[apiName] = function(options) {return routerInterceptor[apiName](options) || original.call(uni, options)}})
}createInterceptor()

四、高级路由技巧

4.1 自定义导航栏

实现步骤:

  1. 配置取消原生导航栏
"globalStyle": {"navigationStyle": "custom"
}
  1. 创建自定义导航组件
<template><view class="custom-navbar"><view class="navbar-left" @click="handleBack"><uni-icons type="arrowleft" size="24" /></view><view class="navbar-title">{{ title }}</view><view class="navbar-right"><slot name="right"></slot></view></view>
</template><script>
export default {props: ['title'],methods: {handleBack() {uni.navigateBack()}}
}
</script><style>
.custom-navbar {height: var(--status-bar-height);padding-top: env(safe-area-inset-top);/* 其他样式 */
}
</style>

4.2 页面过渡动画

配置页面切换动画:

{"path": "pages/detail/detail","style": {"app-plus": {"animationType": "slide-in-right","animationDuration": 300}}
}

4.3 多窗口适配

宽屏设备适配方案:

"leftWindow": {"path": "responsive/left-window.vue","style": {"width": "300px"}
},
"rightWindow": {"path": "responsive/right-window.vue","matchMedia": {"minWidth": 768}
}

4.4 性能优化策略

  1. 页面预加载:
"preloadRule": {"pages/detail/detail": {"network": "wifi","packages": ["__APP__"]}
}
  1. 组件按需注册:
// 使用easycom自动引入
"easycom": {"autoscan": true,"custom": {"^uni-(.*)": "@/components/uni-$1.vue"}
}
  1. 图片懒加载:
<image lazy-load :src="imageUrl" />
  1. 虚拟列表优化:
<uni-list><uni-list-item v-for="item in virtualList" :key="item.id" />
</uni-list>

五、常见问题解决方案

5.1 路由传参限制

问题:URL参数长度限制
解决方案:

  1. 使用全局状态管理(Vuex/Pinia)
  2. 本地存储方案(uni.setStorageSync)
  3. Base64编码压缩
  4. 复杂数据使用云数据库ID传递

5.2 页面栈溢出

问题:超过10层页面栈导致无法跳转
解决方案:

  1. 合理使用redirectTo替换navigateTo
  2. 关键页面使用reLaunch重置栈
  3. 实现页面栈管理中间件
function smartNavigateTo(url) {const pages = getCurrentPages()if (pages.length >= 9) {uni.redirectTo({ url })} else {uni.navigateTo({ url })}
}

5.3 页面白屏优化

优化策略:

  1. 启用分包加载
  2. 使用骨架屏技术
  3. 关键资源预加载
  4. 优化图片资源(WebP格式)
  5. 启用CDN加速

5.4 跨平台兼容处理

典型问题处理:

  1. 导航栏高度适配:
.navbar {height: calc(44px + env(safe-area-inset-top));padding-top: env(safe-area-inset-top);
}
  1. 下拉刷新差异:
// 统一处理下拉刷新
onPullDownRefresh() {this.loadData().finally(() => {#ifdef H5this.$nextTick(() => uni.stopPullDownRefresh())#elseuni.stopPullDownRefresh()#endif})
}
  1. TabBar点击事件:
uni.onTabBarMidButtonTap(() => {// 处理中间按钮点击
})

六、最佳实践指南

6.1 项目结构规范

推荐目录结构:

├── api
├── components
│   └── common
├── pages
│   ├── home
│   └── user
├── static
│   ├── images
│   └── fonts
├── store
├── utils
└── uni_modules

6.2 路由配置规范

  1. 页面路径使用kebab-case命名
  2. 主包不超过2MB
  3. 公共组件放在主包components目录
  4. 静态资源按页面分类存放

6.3 安全注意事项

  1. 参数校验过滤XSS攻击
  2. 敏感操作增加权限验证
  3. 使用HTTPS传输数据
  4. 定期更新第三方依赖

七、调试与性能分析

7.1 常用调试技巧

  1. 页面栈查看:
console.log(getCurrentPages())
  1. 路由参数检查:
onLoad(options) {console.log('路由参数:', options)
}
  1. 自定义编译模式:
    通过修改condition配置快速调试特定页面

7.2 性能分析工具

  1. 微信开发者工具Audits面板
  2. Chrome Performance分析
  3. UniApp性能统计面板
  4. 真机性能监控工具

7.3 内存泄漏排查

常见内存泄漏场景:

  1. 全局事件监听未移除
  2. 定时器未清除
  3. 大对象缓存未释放
  4. 闭包引用未处理

优化建议:

onUnload() {// 清理操作this.timer && clearInterval(this.timer)uni.$off('event', this.handler)
}

八、扩展与进阶

8.1 插件系统集成

路由相关插件推荐:

uni-simple-router:功能强大的路由管理插件

8.2 微前端架构

UniApp微前端实现方案:

  1. 基于Webview的嵌套方案
  2. 使用Module Federation模块联邦
  3. 通过URL Scheme通信的独立子应用

8.3 服务端路由集成

前后端路由统一方案:

  1. 服务端渲染(SSR)配置
  2. 路由权限同步验证
  3. 动态路由规则生成

相关文章:

UniApp页面路由详解

一、路由系统概述 1.1 路由机制原理 UniApp基于Vue.js实现了一套跨平台的路由管理系统&#xff0c;其核心原理是通过维护页面栈来管理应用内不同页面之间的跳转关系。在小程序端&#xff0c;UniApp的路由系统会映射到对应平台的原生导航机制&#xff1b;在H5端则基于HTML5 Hi…...

探索无人机模拟环境的多元景象及AI拓展

无人驾驶飞行器&#xff08;UAVs&#xff09;在各行各业的迅速普及&#xff0c;从农业和检测到空中操作和人机交互等令人兴奋的前沿领域&#xff0c;都引发了一个关键需求&#xff1a;强大而逼真的模拟环境。直接在物理硬件上测试尖端算法存在固有的风险——成本高昂的坠机、中…...

Java后端开发day39--方法引用

&#xff08;以下内容全部来自上述课程&#xff09; 1.1 含义 把已经有的方法拿过来用&#xff0c;当作函数式接口中抽象方法的方法体。 已经有的方法&#xff1a;可以是Java自己写的&#xff0c;也可以是第三方的。 示例语句&#xff1a; &#xff1a;&#xff1a;是方法引…...

C# 14 field keyword:属性简化新利器

引言 在 C# 的不断发展历程中&#xff0c;每一个新版本都带来了令人期待的新特性&#xff0c;而 C# 14 中的 field keyword 无疑是其中一颗璀璨的明星 。对于广大 C# 开发者来说&#xff0c;属性的使用频率极高&#xff0c;而 field keyword 的出现&#xff0c;为我们简化属性…...

破茧成蝶:一家传统制造企业的年轻化转型之路

2004 年&#xff0c;在长三角的轻工业重镇杭集&#xff0c;一家专注于植毛机器设备研发的小工厂悄然诞生。那时&#xff0c;它以 “齿轮与钢铁” 为语言&#xff0c;为全国近千家牙刷生产企业提供核心装备&#xff0c;用机械臂的精准律动&#xff0c;编织着传统制造业的经纬。然…...

【语法】C++的继承

目录 继承基本语法&#xff1a; protected访问限定符&#xff1a; 子类和父类之间的赋值兼容规则&#xff1a; 重定义(隐藏)&#xff1a; 继承中的友元/继承中的静态成员&#xff1a; 子类中的默认成员函数 构造函数/拷贝构造函数&#xff1a; 赋值重载函数&#xff…...

如何知道Ubuntu的端口是否被占用,被那个进程占用?如何终止进程

要检查Ubuntu系统中某个端口&#xff0c;比如5034&#xff0c;是否被占用及终止对应进程&#xff0c;请按以下步骤操作&#xff1a; 1. 检查端口占用情况 方法一&#xff1a;使用 lsof 命令 sudo lsof -i :5034输出结果会显示占用该端口的进程名、PID等信息。 方法二&#x…...

verdi使用tcl脚本批量添加波形

打开verdi console功能 在verdi的tools 里使能工具中的console功能; 在console执行tcl脚本 set cell_list { ts_0_lockup_latchn_clkc45_intno45811_i u_rst_scan_n_tp/u_scan_crl_reg/u_cell u_scan_crl_reg/u_cell u_scan_crl_reg/u_cell } ## specify the waveform window…...

【行业特化篇3】制造业简历优化指南:技术参数与标准化流程的关键词植入艺术

写在最前 作为一个中古程序猿,我有很多自己想做的事情,比如埋头苦干手搓一个低代码数据库设计平台(目前只针对写java的朋友),比如很喜欢帮身边的朋友看看简历,讲讲面试技巧,毕竟工作这么多年,也做到过高管,有很多面人经历,意见还算有用,大家基本都能拿到想要的offe…...

oracle怎样通过固化较优执行计划来优化慢sql

一 问题描述 有次生产环境cpu使用率增高&#xff0c;ADDM报告提示某条sql比较耗费cpu&#xff1a; 提示&#xff1a; 在分析期间, 此 SQL 语句至少利用了 6 个不同的执行计划 #查看该sql都有哪些执行计划 SELECT * FROM table(DBMS_XPLAN.DISPLAY_AWR(sqlid值)); 我手动执…...

【无标题】好用的远程链接插件

现在在做后端开发有的时候需要链接到远程服务器,有很多插件看不到整体的目录结构 推荐 trae的 ssh Client 有很清晰的目录结构...

Plant Simulation MultiPortalCrane Store 小案例

一个天车从库区移动商品到指定地点的案例 库区商品&#xff1a;库区上随机位置摆放商品&#xff0c;在源上绑定方法&#xff08;应该也可以直接在库区上生成&#xff0c;我这里是使用源可以改变生成多少个商品&#xff09; // 源的self.OnExit var Store : object : 存储 var …...

MyBatis 使用 POJO 参数动态查询教程

项目结构概览&#xff08;基于图片描述&#xff09;&#xff1a; mybatis02 ├─ src/main/java │ └─ cn.cjxy │ ├─ domain # 实体类&#xff08;如 Emp.java&#xff09; │ ├─ mapper # Mapper 接口&#xff08;如 EmpMapper.java&#xff09; │…...

【MCP Node.js SDK 全栈进阶指南】高级篇(5):MCP之微服务架构

引言 在软件架构中,微服务模式已成为构建可扩展系统的主流方案。 将MCP与微服务架构结合,能够为AI驱动的应用带来显著优势。 本文将探讨如何在微服务环境中集成和部署MCP服务,以及如何利用云原生技术实现高可用、高性能的MCP应用。 目录 MCP在微服务中的角色服务网格集成容…...

UBUS 通信接口的使用——添加一个object对象(ubus call)

1&#xff0c;引入 ubus提供了一种多进程通信的机制。存在一个守护进程ubusd&#xff0c;所以进程都注册到ubusd&#xff0c;ubusd进行消息的接收、分发管理。 ubus对多线程支持的不好&#xff0c;例如在多个线程中去请求同一个服务&#xff0c;就有可能出现不可预知的结果。 …...

强化学习贝尔曼方程推导

引言 强化学习中贝尔曼方程的重要性就不说了&#xff0c;本文利用高中生都能看懂的数学知识推导贝尔曼方程。 回报 折扣回报 G t G_t Gt​的定义为&#xff1a; G t R t 1 γ R t 2 γ 2 R t 3 ⋯ ∑ k 0 ∞ γ k R t k 1 (1) G_t R_{t1} \gamma R_{t2} \gamm…...

【MCP Node.js SDK 全栈进阶指南】高级篇(2):MCP高性能服务优化

前言 随着MCP应用规模的扩大和用户量的增加,性能优化成为系统稳定运行的关键因素。高性能的MCP服务不仅能提供更好的用户体验,还能降低运营成本,提高系统的可扩展性。本文将深入探讨MCP TypeScript-SDK的性能优化策略,帮助开发者构建高效、稳定的MCP服务。 1. 性能瓶颈识…...

图片识别为提示词,背景信息提取 -从头设计数字生命第7课, demucs——仙盟创梦IDE

1. 图像内容理解与标注 用途&#xff1a;在大规模图像数据集的整理和标注工作中&#xff0c;通过特定提示词可引导图片识别系统更准确地提取图像中的背景信息&#xff0c;并进行标注。例如在医学图像库标注中&#xff0c;使用 “疾病相关背景特征” 作为提示词&#xff0c;系统…...

域对齐是什么

域对齐&#xff08;Domain Alignment&#xff09;是在机器学习和计算机视觉等领域中常用的技术 定义 域对齐旨在将不同域&#xff08;Domain&#xff09;的数据映射到一个共同的特征空间中&#xff0c;使得来自不同域的数据在该空间中具有相似的分布。这里的“域”可以指代不…...

opencv 直方图均衡化

直方图均衡化 1. 啥叫直方图2. 绘制直方图3. 直方图均衡化3.1 自适应直方图均衡化&#xff08;cv2.equalizeHist()&#xff09;3.2 对比度受限的自适应直方图均衡化(cv2.createCLAHE()) 1. 啥叫直方图 直方图是对数据进行统计的一种方法&#xff0c;并且将统计值组织到一系列实…...

JDK 8 函数式接口全集

JDK 8 函数式接口全集 函数式接口如何定义关于注解 FunctionalInterface 函数式接口的分类与简单使用生产型接口 Supplier使用 消费型接口 Consumer使用 ​​函数型接口&#xff08;Function&#xff09;​​实例(合并字符串) ​​断言型接口&#xff08;Predicate&#xff09;…...

网站防护无惧DDoS攻击:2025年实战指南

在数字化时代&#xff0c;DDoS攻击已成为企业生存的“生死线”。2024年全球日均攻击峰值突破5.4Tbps&#xff08;Cloudflare数据&#xff09;&#xff0c;电商、金融行业更是重灾区。本文将结合最新技术趋势和实战案例&#xff0c;为你提供一套低成本、高可靠的防御方案。 一、…...

【AI论文】BitNet v2:针对1位LLM的原生4位激活和哈达玛变换

摘要&#xff1a;激活异常值阻碍了1位大型语言模型&#xff08;LLM&#xff09;的有效部署&#xff0c;这使得低比特宽度的量化变得复杂。 我们介绍了BitNet v2&#xff0c;这是一个新的框架&#xff0c;支持1位LLM的原生4位激活量化。 为了解决注意力和前馈网络激活中的异常值…...

windows 使用 FFmpeg 放大视频原声

问题&#xff1a;原视频声音太小&#xff0c;就算把视频音量调到最大&#xff0c;声音也听不太清 一、下载 下载地址&#xff1a;Download FFmpeg 根据需要选择合适版本下载解压&#xff0c;如浏览器下载速度慢&#xff0c;可使用迅雷下载 二、配置环境变量 1.把解压的文件放…...

RHCE第七章:SElinux

一、SElinux SELinux 是一套安全策略系统 1.作用&#xff1a; &#xff08;1&#xff09;SELinux 域限制&#xff1a;对服务程序的功能进行限制&#xff0c;以确保服务程序做不了出格的事 &#xff08;2&#xff09;SELinux 安全上下文&#xff1a;对文件资源的访问限制&am…...

一文简单记录打通K8s+Kibana流程如何启动(Windows下的Docker版本)

为ES和Kibana组建Docker网络 docker network create elastic下载8.18.0版本镜像Es并启动 docker run --name es-node01 --net elastic -p 9200:9200 -p 9300:9300 -t docker.elastic.co/elasticsearch/elasticsearch:8.18.0启动Kibana&#xff08;简单一些直接咯和ES对应版本…...

【系统参数合法性校验】spring-boot-starter-validation

JSR303校验 统一校验的需求 前端请求后端接口传输参数&#xff0c;是在controller中校验还是在Service中校验&#xff1f; 答案是都需要校验&#xff0c;只是分工不同。 Contoller中校验请求参数的合法性&#xff0c;包括&#xff1a;必填项校验&#xff0c;数据格式校验&…...

蓝桥杯 10. 凯撒加密

凯撒加密 原题目链接 题目描述 给定一个单词&#xff0c;请使用凯撒密码将这个单词加密。 凯撒密码是一种替换加密的技术&#xff0c;单词中的所有字母都在字母表上向后偏移 3 位后被替换成密文。 即&#xff1a; a → db → e⋯w → zx → ay → bz → c 输入描述 输入…...

Discord多账号注册登录:如何同时管理多个账户?

Discord是许多人、特别是游戏玩家和社区管理者的重要沟通工具。随着用户需求的增长&#xff0c;越来越多的人开始在Discord上注册多个账号进行管理。例如&#xff0c;个人和工作账号的区分&#xff0c;多个游戏社区的参与&#xff0c;或者通过不同的身份进行更灵活的社交互动。…...

Harbor默认Redis与Notary组件弱口令漏洞分析与修复指南

一、 背景 某资源池控制面和运行面生产环境部署的harbor被漏扫出弱口令需要进行整改&#xff0c;主要涉及 default、server、signer用户存在弱口令。 二、 分析与处理 首先需求确认这三个用户是harbor那个组件使用&#xff0c;最好确认的是default这个用户&#xff0c;它是r…...

【Prometheus-Postgres Exporter安装配置指南,开机自启】

目录 内容概述 一、安装步骤1. 安装 PostgreSQL Exporter2. 创建 PostgreSQL 监控用户3. 配置 Systemd 服务4. 启动并验证服务5. 集成到 Prometheus 内容概述 本教程详细指导如何安装 PostgreSQL Exporter&#xff08;版本 0.15.0&#xff09;&#xff0c;包括&#xff1a; 软…...

leetcode:3005. 最大频率元素计数(python3解法)

难度&#xff1a;简单 给你一个由 正整数 组成的数组 nums 。 返回数组 nums 中所有具有 最大 频率的元素的 总频率 。 元素的 频率 是指该元素在数组中出现的次数。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,2,3,1,4] 输出&#xff1a;4 解释&#xff1a;元素 1 和 2 的…...

论文导读 - 基于特征融合的电子鼻多任务深度学习模型研究

基于特征融合的电子鼻多任务深度学习模型研究 原论文地址&#xff1a;https://www.sciencedirect.com/science/article/pii/S0925400524009365 引用此论文&#xff08;GB/T 7714-2015&#xff09;&#xff1a; NI W, WANG T, WU Y, et al. Multi-task deep learning model f…...

VSCode突然连接不上服务器(已解决)

可恶&#xff0c;不知道昨天还好好的VSCode还可以连接到服务器&#xff0c;今天打开就连接不上了&#xff0c;搜了一圈很多都说是服务端的vscode-server这个文件里面保存的commitID与当前我们VSCode上的ID不一致导致连接失败&#xff08;据说是因为VSCode自动更新导致的&#x…...

解决Ollama run qwen3:32b: Error: unable to load model问题

问题描述 在尝试使用Ollama部署Qwen3模型时&#xff0c;许多用户遇到了以下错误&#xff1a; ollama run qwen3:32b Error: unable to load model: /Users/xxxx/.ollama/models/blobs/sha256-3291abe70f16ee9682de7bfae08db5373ea9d6497e614aaad63340ad421d6312这个错误通常会…...

C++ 单例对象自动释放(保姆级讲解)

目录 单例对象自动释放&#xff08;重点*&#xff09; 方式一&#xff1a;利用另一个对象的生命周期管理资源 方式二&#xff1a;嵌套类 静态对象&#xff08;重点&#xff09; 方式三&#xff1a;atexit destroy 方式四&#xff1a;atexit pthread_once 单例对象自动释…...

李录谈卖出股票的时机:价值投资的动态决策框架

作为最贴近芒格与巴菲特投资理念的中国投资人&#xff0c;李录对卖出时机的思考融合了价值投资的核心逻辑与实战经验。通过其在哥伦比亚大学的多场演讲及访谈&#xff08;主要集中于2006年、2013年及后续公开内容&#xff09;&#xff0c;我们可以将其观点归纳为以下五个维度&a…...

Docker的简单使用(不全)

Docker Hello World Docker 允许在容器内运行应用程序&#xff0c;使用docker run命令来在容器内运行一个应用程序 输出Hello World runoobrunoob:~$ docker run ubuntu:15.10 /bin/echo "Hello world"Hello world docker&#xff1a;Docker的二进制执行文件 run…...

A2A与MCP:理解它们的区别以及何时使用

随着AI不断深入到商业工作流中&#xff0c;多个AI代理&#xff08;Agent&#xff09;之间的无缝协作成为了一个主要挑战。 为了解决这个问题&#xff0c;Google Cloud推出了一种名为Agent2Agent&#xff08;A2A&#xff09;的开放协议&#xff0c;旨在使不同平台和系统中的AI代…...

AI Agent开源技术栈

构建和编排Agent的框架 如果您是从头开始构建&#xff0c;请从这里开始。这些工具可以帮助您构建Agent的逻辑——做什么、何时做以及如何处理工具。您可以将其视为将原始语言模型转化为更自主的模型的核心大脑。 2. 计算机和浏览器的使用 一旦你的Agent能够规划&#xff0c…...

判断用户选择的Excel单元格区域是否跨页?

VBA应用程序开发过程中&#xff0c;经常需要处理用户选中的单元格区域&#xff0c;有的应用场景中&#xff0c;需要限制用户选中区域位于同一页中&#xff08;以打印预览显示的分页划分&#xff09;&#xff0c;但是VBA对象模型中并没有提供相应的接口&#xff0c;用于快速查询…...

驱动开发硬核特训 · Day 24(上篇):走进Linux内核时钟子系统 —— 硬件基础全解析

一、前言 在 SoC&#xff08;System on Chip&#xff09;设计中&#xff0c;“时钟&#xff08;Clock&#xff09;”不仅是信号同步的基石&#xff0c;也是各个模块协调运作的前提。没有合理的时钟体系&#xff0c;CPU无法运行&#xff0c;外设无法通信&#xff0c;存储器无法…...

【GPU 微架构技术】Pending Request Table(PRT)技术详解

PRT&#xff08;Pending Request Table&#xff09;是 GPU 中用于管理 未完成内存请求&#xff08;outstanding memory requests&#xff09;的一种硬件结构&#xff0c;旨在高效处理大规模并行线程的内存访问需求。与传统的 MSHR&#xff08;Miss Status Handling Registers&a…...

角度(degrees)和弧度(radians)转换关系

目录 1.从角度转换到弧度&#xff1a; 2.从弧度转换到角度&#xff1a; 示例 将90度转换为弧度&#xff1a; 将π/3​弧度转换为角度&#xff1a; 角度&#xff08;degrees&#xff09;和弧度&#xff08;radians&#xff09;之间的转换关系可以通过以下公式来实现&#xff…...

【大语言模型DeepSeek+ChatGPT+GIS+Python】AI大语言模型驱动的地质灾害全流程智能防治:风险评估、易发性分析与灾后重建多技术融合应用

地质灾害是指全球地壳自然地质演化过程中&#xff0c;由于地球内动力、外动力或者人为地质动力作用下导致的自然地质和人类的自然灾害突发事件。在降水、地震等自然诱因的作用下&#xff0c;地质灾害在全球范围内频繁发生。我国不仅常见滑坡灾害&#xff0c;还包括崩塌、泥石流…...

第十六届蓝桥杯 2025 C/C++组 25之和

目录 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; 思路&#xff1a; 思路详解&#xff1a; 代码&#xff1a; 代码详解&#xff1a; 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; P12339 [蓝桥杯 2025 省 B/Python B 第二场] 25 之和…...

万界星空科技QMS质量管理系统几大核心功能详解

QMS质量管理系统&#xff08;Quality Management System&#xff09;是一款专为现代企业设计的、全面且高效的质量管理工具&#xff0c;融合了现代质量管理理念与前沿的信息技术&#xff0c;旨在帮助企业构建完善的质量管理体系&#xff0c;确保产品和服务质量。以下为你详细介…...

SSR同构渲染深度解析

同构渲染&#xff08;Isomorphic Rendering&#xff09;是SSR&#xff08;服务器端渲染&#xff09;的核心概念&#xff0c;指同一套代码既能在服务器端运行&#xff0c;也能在客户端运行。下面我将从原理到实践全面介绍SSR同构渲染。 一、同构渲染核心原理 1. 基本工作流程 …...

【论文阅读/复现】RT-DETR的网络结构/训练/推理/验证/导出模型

利用ultralytics仓库&#xff0c;复现RT-DETR官方实验环境。 使用基于ResNet50和ResNet101的RT-DETR。 目录 一 RT-DETR的网络结构 1 编码器结构 2 RT-DETR 3 CCFF中的融合块 4 实验结果 二 RT-DETR的安装/训练/推理/验证/导出模型 1 安装 2 配置文件 3 训练 4 推理 …...

KUKA机器人关机时冷启动介绍

KUKA机器人在正常关机时&#xff0c;可以从示教器上操作。在示教器上操作时需要选择“冷启动”方式关闭计算机。等示教器屏幕关闭之后&#xff0c;再把主开关旋钮关闭。 一、先登录【管理员】权限&#xff0c;再在【主菜单】下选择【关机】。 二、在关机的默认中&#xff0c;…...