ArkTS 进阶之道(15):@BuilderParam 组件参数化边界——为啥 @Builder 能当参数传
ArkTS 进阶之道15BuilderParam 组件参数化边界——为啥 Builder 能当参数传本文是「ArkTS 进阶之道」系列第 15 篇续「ArkUI 组件设计」阶段。上一篇讲 Builder 绑渲染树节点复用篇 63——Builder 绑渲染树节点模板调用点嵌实例复用 UI 不返值。本文讲组件参数化边界BuilderParam 荬饰器收外部传的 Builder 片段——根因在绑渲染树节点参数槽不是普参数收值BuilderParam 荬饰器绑渲染树节点参数槽收外部 Builder 片段普参数不能收 UI 片段。能力系列篇 19 讲过 Builder 怎么用本文讲为哈 BuilderParam 收 Builder 合法普参数收 UI 报错——根因在渲染树节点参数槽绑定不是普参数收值。一、开篇BuilderParam 不是普参数收值是绑渲染树节点参数槽收片段你写 TypeScript/React 时UI 片段当参数传是「魔法」React 用childrenprop / render props 收 JSX// React 用 children prop / render props 收 JSX 片段 function MyCard({ title, content }: { title: string; content: React.ReactNode }) { return ( View Text{title}/Text {content} ← children prop 收 JSX 片段值返值收值魔法 /View ) } function Component() { return ( View MyCard title卡片1 content{Text内容片段/Text} / ← 传 JSX 值 /View ) } // React 用 children prop / render props 收 JSX 值是返值收值魔法你写鸿蒙 ArkTS 时BuilderParam绑渲染树节点参数槽收片段——不用返值收值// ArkTS BuilderParam 绑渲染树节点参数槽收 Builder 片段 Component struct MyCard { Prop title: string BuilderParam contentBuilder: () void ← BuilderParam 绑渲染树节点参数槽 build() { Column() { Text(this.title) this.contentBuilder() ← 嵌外部传的 Builder 片段绑渲染树节点不收值 } } } Entry Component struct Index { Builder MyContent() { Text(内容片段) } build() { Column() { MyCard({ title: 卡片1 }) { this.MyContent() ← 传 Builder 片段绑渲染树节点参数槽不收 JSX 值 } } } } // BuilderParam 绑渲染树节点参数槽收 Builder 片段不是普参数收 JSX 值魔法 vs 荬饰器的区别React 把 UI 片段当参数传用 children prop / render props 收 JSX 值返值收值魔法ArkTS 把 BuilderParam 当「绑渲染树节点参数槽荬饰器」不收值绑渲染树节点参数槽收 Builder 片段。根因不是魔法是渲染树节点参数槽绑定——BuilderParam 不收 UI 值是绑渲染树节点参数槽收外部 Builder 片段的荬饰器。二、根因BuilderParam 的渲染树节点参数槽绑定收片段机制鸿蒙 ArkUI 的 BuilderParam 是渲染树节点参数槽绑定收片段——子组件编译期把 BuilderParam 绑成渲染树节点参数槽父组件传 Builder 片段嵌槽复用 UI不是普参数收值来自三重绑定机制。机制 1BuilderParam 编译期绑渲染树节点参数槽——不是普参数收值BuilderParam 荬饰器编译期绑渲染树节点参数槽——把 BuilderParam 字段编成渲染树的可复用节点参数槽不是收 UI 值的普参数Component struct MyCard { Prop title: string BuilderParam contentBuilder: () void ← BuilderParam 荬饰器编译期绑渲染树节点参数槽 build() { Column() { Text(this.title) this.contentBuilder() ← 调用点嵌渲染树节点参数槽实例绑槽不收值 } } } // 编译期BuilderParam contentBuilder 绑成渲染树可复用节点参数槽 // 调用点this.contentBuilder() 嵌外部传的 Builder 片段绑渲染树节点槽不收 UI 值编译期绑参数槽BuilderParamcontentBuilder荬饰器编译期把字段绑成渲染树的可复用节点参数槽——调用this.contentBuilder()在调用点嵌渲染树节点参数槽实例绑槽不收 UI 值。绑槽不收值不是普参数收值。根因不是收值是渲染树节点参数槽绑定。机制 2父组件传 Builder 片段嵌槽复用——两种传法BuilderParam 爬饰器父组件传 Builder 片段嵌槽复用——trailing lambda 传单槽 / 显式参数传多槽复用子组件结构嵌外部片段// ✅ 传法1trailing lambda单 BuilderParam90% 场景 Component struct MyContentCard { Prop title: string BuilderParam contentBuilder: () void ← 单 BuilderParam 支持 trailing lambda build() { Column() { Text(this.title) this.contentBuilder() ← 嵌外部传的 content 片段 } } } Entry Component struct Index { Builder MyContent() { Text(内容) } build() { Column() { MyContentCard({ title: 卡片1 }) { this.MyContent() ← ✅ trailing lambda 传 Builder content 片段嵌槽 } } } } // ✅ 传法2显式参数多 BuilderParam带默认值覆盖 Component struct MyFullCard { Prop title: string BuilderParam contentBuilder: () void BuilderParam footerBuilder: () void this.DefaultFooter ← 带默认值的 BuilderParam Builder DefaultFooter() { Text(默认页脚) } build() { Column() { Text(this.title) this.contentBuilder() this.footerBuilder() } } } Entry Component struct Index { Builder MyContent() { Text(内容) } Builder MyFooter() { Text(外部页脚) } build() { Column() { MyFullCard({ title: 卡片2, contentBuilder: this.MyContent, footerBuilder: this.MyFooter }) // ✅ 显式参数传多 BuilderParamcontent footer 覆盖默认 MyFullCard({ title: 卡片3, contentBuilder: this.MyContent }) // ✅ 只传 contentfooter 显默认值 } } }父组件传片段嵌槽复用trailing lambda 传单 BuilderParam90% 场景首选——父组件调子组件后跟{ this.MyContent() }块传单片段嵌槽。显式参数传多 BuilderParam带默认值覆盖——父组件调子组件时参数传contentBuilder: this.MyContent, footerBuilder: this.MyFooter多片段嵌多槽footerBuilder 带默认值不传显默认。根因不是普参数传值是渲染树节点参数槽嵌片段复用。机制 3trailing lambda 单槽约束——只支持单 BuilderParamBuilderParam 爬饰器trailing lambda 单槽约束——trailing lambda 传法只支持单 BuilderParam 子组件多 BuilderParam 要显式参数传// ✅ trailing lambda子组件只能有单 BuilderParam约束 Component struct MyContentCard { Prop title: string BuilderParam contentBuilder: () void ← 单 BuilderParam 支持 trailing lambda build() { Column() { Text(this.title); this.contentBuilder() } } } Entry Component struct Index { Builder MyContent() { Text(内容) } build() { Column() { MyContentCard({ title: 卡片1 }) { this.MyContent() ← ✅ trailing lambda 传单 BuilderParam 合法 } } } } // ❌ trailing lambda 多 BuilderParam 报错子组件有多 BuilderParam // Component // struct MyFullCard { // BuilderParam contentBuilder: () void // BuilderParam footerBuilder: () void ← 多 BuilderParam 不支持 trailing lambda // } // MyFullCard({ title: 卡片 }) { this.MyContent() } ← trailing lambda 多 BuilderParam 报错 // 报错In the trailing lambda case, MyFullCard must have one and only one property decorated with BuilderParamtrailing lambda 单槽约束trailing lambda 传法只支持子组件有单 BuilderParam——多 BuilderParam 时 trailing lambda 不知道传哪个槽报错。多 BuilderParam 要用显式参数传法参数名指明传哪个槽。根因不是语法限制是 trailing lambda 单槽映射的约束——trailing lambda 只能绑单槽多槽要显式参数指明。机制 4普参数收 UI 报错边界——收值跟渲染树绑定冲突普参数不能收 UI 片段——BuilderParam 绑渲染树节点参数槽不收值普参数收 UI 片段当值传跟渲染树绑定冲突报错Component struct MyCard { Prop title: string BuilderParam contentBuilder: () void ← ✅ BuilderParam 绑渲染树节点参数槽 // ❌ 普通参数不能收 UI 片段 // content: string ← 普通参数收 string 值合法收 UI 片段报错 build() { Column() { Text(this.title) this.contentBuilder() } } } Entry Component struct Index { Builder MyContent() { Text(内容) } build() { Column() { // ❌ 普通参数收 UI 片段报错收值跟渲染树绑定冲突 // MyCard({ title: 卡片, content: this.MyContent() }) ← 普通参数收 UI 值报错 // ✅ BuilderParam 绑渲染树节点参数槽收 Builder 片段 MyCard({ title: 卡片 }) { this.MyContent() ← BuilderParam 收 Builder 片段绑槽合法 } } } } // 普通参数收 UI 报错根因普参数收值UI 片段是渲染树节点不是值 // BuilderParam 收 Builder 合法根因绑渲染树节点参数槽收片段嵌槽不收值普参数收 UI 报错边界普参数收 UI 片段当值传报错根因是普参数收值string/number 等UI 片段是渲染树节点不是值——普参数收 UI 值跟渲染树节点绑定冲突报错。BuilderParam 收 Builder 合法根因是绑渲染树节点参数槽收片段嵌槽不收值。根因不是语法限制是渲染树节点参数槽绑定 vs 普参数收值的边界冲突。三、真机配图BuilderParam 组件参数化边界——绑渲染树节点参数槽收片段初始态3 卡片均嵌外部传的 content 片段、卡片2/3 footer 分别显外部/默认均组件参数化边界初始值点调按钮后3 卡片 content 均刷到 count1、BuilderParam 传的片段都刷均组件参数化边界对比证据齐对比证据点改 count 按钮后 3 卡片 content 均刷到 count1BuilderParam 传的片段都刷了绑渲染树节点参数槽追踪依赖卡片2 显外部页脚显式参数覆盖默认卡片3 显默认页脚只传 content 不传 footer。BuilderParam 不是普参数收值是绑渲染树节点参数槽收片段——BuilderParam 荬饰器编译期绑渲染树节点参数槽父组件传 Builder 片段嵌槽复用 UI 不收值。普参数收 UI 报错根因是普参数收值跟渲染树节点绑定冲突。四、真解法BuilderParam 组件参数化的三个场景场景 1trailing lambda 传单片段90% 场景首选子组件嵌外部片段Component struct MyContentCard { Prop title: string BuilderParam contentBuilder: () void ← 单 BuilderParam 支持 trailing lambda build() { Column() { Text(this.title) this.contentBuilder() ← 嵌外部传的 content 片段 } } } Entry Component struct Index { Builder MyContent() { Text(内容片段) } build() { Column() { MyContentCard({ title: 卡片1 }) { this.MyContent() ← trailing lambda 传 Builder content 片段 } } } }为哈能跑trailing lambda 传单片段——子组件单 BuilderParam父组件调后跟{ }块传单片段嵌槽。首选这个90% 的场景子组件嵌外部片段用 trailing lambda 就够。要写「子组件结构嵌外部片段」时用这个——不用 children prop/render propsBuilderParam 绑渲染树节点参数槽 trailing lambda 传片段嵌槽。场景 2显式参数传多片段多 BuilderParam带默认值覆盖Component struct MyFullCard { Prop title: string BuilderParam contentBuilder: () void BuilderParam footerBuilder: () void this.DefaultFooter ← 带默认值 Builder DefaultFooter() { Text(默认页脚) } build() { Column() { Text(this.title) this.contentBuilder() ← 嵌 content 片段 this.footerBuilder() ← 嵌 footer 片段默认/外部覆盖 } } } Entry Component struct Index { Builder MyContent() { Text(内容) } Builder MyFooter() { Text(外部页脚) } build() { Column() { MyFullCard({ title: 卡片, contentBuilder: this.MyContent, footerBuilder: this.MyFooter }) // 显式参数传多片段footer 覆盖默认 MyFullCard({ title: 卡片, contentBuilder: this.MyContent }) // 只传 contentfooter 显默认 } } }为哈能跑显式参数传多片段——子组件多 BuilderParam父组件参数名指明传哪个槽带默认值的不传显默认。要写「子组件嵌多外部片段content footer 等」时用这个——显式参数传多 BuilderParam不用 trailing lambda单槽约束。场景 3BuilderParam 带默认值复用子组件自带片段外部不传显默认Component struct MyCard { Prop title: string BuilderParam contentBuilder: () void this.DefaultContent ← 带默认值 Builder DefaultContent() { Text(默认内容外部没传显) } build() { Column() { Text(this.title) this.contentBuilder() ← 嵌片段外部传/默认 } } } Entry Component struct Index { Builder MyContent() { Text(外部内容) } build() { Column() { MyCard({ title: 卡片1 }) ← 不传 content显默认内容 MyCard({ title: 卡片2 }) { this.MyContent() ← 传 content显外部内容覆盖默认 } } } }为哈能跑BuilderParam 带默认值复用——子组件自带片段外部不传显默认 / 外部传覆盖默认。要写「子组件自带片段外部可选覆盖」时用这个——BuilderParam 带默认值不用外部必传外部可选覆盖显默认。五、一句话哲学BuilderParam 不是普参数收值是绑渲染树节点参数槽收 Builder 片段。ArkUI 的 BuilderParam 荬饰器编译期绑渲染树节点参数槽父组件传 Builder 片段嵌槽复用 UI 不收值。根因不是普参数收值是渲染树节点参数槽绑定——BuilderParam 编译期绑参数槽渲染树可复用节点参数槽 父组件传片段嵌槽复用trailing lambda 单槽 / 显式参数多槽 trailing lambda 单槽约束只支持单 BuilderParam 普参数收 UI 报错边界普参数收值跟渲染树节点绑定冲突。对比 React children prop / render props 收 JSX 值ArkTS BuilderParam 绑渲染树节点参数槽不收值。组件设计阶段串讲Builder 绑渲染树节点复用篇 63调用点嵌节点实例复用 UI 不返值→ BuilderParam 绑渲染树节点参数槽收片段篇 64父组件传片段嵌槽复用子组件结构——两篇讲清 ArkUI 组件复用哲学渲染树节点绑定复用Builder 绑节点模板 / BuilderParam 绑参数槽根因都是绑渲染树节点不收值不返值。从「单组件内复用」Builder到「跨组件传片段复用」BuilderParam扩展。系列预告下篇篇 65如续讲 Styles/Extend 样式复用边界或系列就此打住。五阶段哲学体系类型哲学50-52→ 作用域哲学53-55→ 状态哲学56-59→ 渎染哲学60-62→ 组件设计63讲清 ArkTS/ArkUI 进阶哲学。能力系列回链能力系列篇本文进阶点篇 19 Builder 用法BuilderParam 组件参数化边界根因绑渲染树节点参数槽篇 16 组件复用用法上一篇Builder 绑渲染树节点复用根因篇 13 State 基础用法状态哲学State 赋值就刷 UI 依赖追踪真机 demo 完整代码// 篇 64 demoBuilderParam 收 Builder 片段trailing lambda 显式参数两种传法 // 对比BuilderParam 收 Builder 合法 vs 普通参数收 UI 报错 // ✅ 子组件1单 BuilderParam trailing lambda 传法90% 场景 Component struct MyContentCard { Prop title: string BuilderParam contentBuilder: () void // ✅ 单 BuilderParam 支持 trailing lambda build() { Column({ space: 8 }) { Text(this.title).fontSize(14).fontWeight(FontWeight.Bold).fontColor(#2563eb) this.contentBuilder() // ✅ 嵌外部传的 Builder content 片段 } .width(88%).padding(12).backgroundColor(#f5f5f5).borderRadius(8) } } // ✅ 子组件2多 BuilderParam 显式参数传法带默认值 Component struct MyFullCard { Prop title: string BuilderParam contentBuilder: () void BuilderParam footerBuilder: () void this.DefaultFooter // ✅ 带默认值的 BuilderParam Builder DefaultFooter() { Text(默认页脚外部没传 footerBuilder 显).fontSize(11).fontColor(#888) } build() { Column({ space: 8 }) { Text(this.title).fontSize(14).fontWeight(FontWeight.Bold).fontColor(#2563eb) this.contentBuilder() // ✅ 嵌 content 片段 Divider().color(#eee).strokeWidth(1).margin(4) this.footerBuilder() // ✅ 嵌 footer 片段带默认 } .width(88%).padding(12).backgroundColor(#f5f5f5).borderRadius(8) } } Entry Component struct Index { State count: number 0 State log: string (未操作) // ✅ 父组件 Builder 片段content Builder MyContent() { Column({ space: 4 }) { Text(内容片段count${this.count}).fontSize(13).fontColor(#2563eb) Text(✅ BuilderParam 收外部传的 Builder 片段).fontSize(12).fontColor(#666) } .alignItems(HorizontalAlign.Center) } // ✅ 父组件 Builder 片段footer覆盖默认 Builder MyFooter() { Text(外部传的页脚覆盖默认).fontSize(11).fontColor(#dc2626) } build() { Column({ space: 12 }) { Text(篇 64 配图BuilderParam 组件参数化边界) .fontSize(18).fontWeight(FontWeight.Bold).margin({ top: 20, bottom: 8 }) Text(BuilderParam 收 Builder 片段两种传法trailing 显式参数) .fontSize(12).fontColor(#888).margin({ bottom: 16 }) Column({ space: 6 }) { Text(count ${this.count}).fontSize(15).fontWeight(FontWeight.Bold) Text(日志${this.log}).fontSize(12).fontColor(#333).margin({ top: 4 }) } .width(92%).padding(12).backgroundColor(#f5f5f5).borderRadius(8) // ✅ 传法1trailing lambda单 BuilderParam90% 场景 MyContentCard({ title: 卡片1trailing lambda 传 content }) { this.MyContent() // ✅ trailing lambda 传 Builder content } // ✅ 传法2显式参数传多 BuilderParamcontent footer 带默认 MyFullCard({ title: 卡片2显式传 content footer 覆盖默认, contentBuilder: this.MyContent, // ✅ 显式参数传 Builder content footerBuilder: this.MyFooter // ✅ 显式参数传 Builder footer覆盖默认 }) // ✅ 传法3显式参数只传 contentfooter 显默认 MyFullCard({ title: 卡片3只传 contentfooter 默认, contentBuilder: this.MyContent // ✅ 只传 contentfooter 显默认值 }) // ❌ 普通参数不能收 UI 片段对比证据注释掉避编译炸 // MyContentCard({ title: 卡片, content: this.MyContent() }) ← 普通参数收 UI 报错 Button(改 countBuilderParam 传的片段都刷) .width(92%).height(44).fontSize(14) .onClick(() { this.count // ✅ count 变 BuilderParam 传的片段都刷 this.log count${this.count}BuilderParam 传的片段都刷绑渲染树节点追踪 }) } .width(100%).height(100%).alignItems(HorizontalAlign.Center) } }写鸿蒙 ArkUI 记住BuilderParam 不是普参数收值是绑渲染树节点参数槽收 Builder 片段——BuilderParam 荬饰器编译期绑渲染树节点参数槽父组件传 Builder 片段嵌槽复用 UI 不收值。根因不是普参数收值是渲染树节点参数槽绑定——BuilderParam 编译期绑参数槽渲染树可复用节点参数槽 父组件传片段嵌槽复用trailing lambda 单槽 / 显式参数多槽 trailing lambda 单槽约束只支持单 BuilderParam 普参数收 UI 报错边界普参数收值跟渲染树节点绑定冲突。trailing lambda 传单片段用子组件嵌外部片段首选90% 场景显式参数传多片段用多 BuilderParam 带默认值覆盖BuilderParam 带默认值用子组件自带片段外部可选覆盖。绑渲染树节点参数槽收片段不收值是 ArkUI 组件设计哲学核心

相关新闻

RimWorld模组管理终极指南:RimSort让你的游戏体验飞升[特殊字符]

RimWorld模组管理终极指南:RimSort让你的游戏体验飞升[特殊字符]

RimWorld模组管理终极指南:RimSort让你的游戏体验飞升🚀 【免费下载链接】RimSort RimSort is an open source mod manager for the video game RimWorld. There is support for Linux, Mac, and Windows, built from the ground up to be a reliable, c…

2026/10/22 21:35:41 阅读更多 →
强力解析:PEGTL如何重新定义C++语法解析范式

强力解析:PEGTL如何重新定义C++语法解析范式

强力解析:PEGTL如何重新定义C语法解析范式 【免费下载链接】PEGTL Parsing Expression Grammar Template Library 项目地址: https://gitcode.com/gh_mirrors/pe/PEGTL 你是一个文章写手,你负责为开源项目写专业易懂的文章。今天要介绍的是PEGTL&…

2026/10/22 21:36:01 阅读更多 →
活字格AI Coding插件五大核心能力深度解析(三)

活字格AI Coding插件五大核心能力深度解析(三)

在明确了“前端先行”的AI落地策略后,如何让AI在前端开发中真正发挥工程化价值?活字格AI Coding插件围绕这一目标,构建了从快速生成到深度管控的完整能力体系。本文将全面解析其五大核心能力,揭示“AI负责高效创新,低代…

2026/10/21 12:23:09 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/22 10:18:38 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/22 11:01:53 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/22 9:44:47 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/22 10:42:00 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/22 10:40:08 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/22 10:56:37 阅读更多 →

日新闻

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/22 1:47:45 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/22 21:33:42 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/22 5:12:39 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 21:50:56 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 21:51:55 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/22 19:06:46 阅读更多 →