ArkTS 进阶之道(24):LocalStorage 页面级状态边界——为啥同页面多组件共享页面卸载就销毁

发布时间:2026/11/8 12:21:22

ArkTS 进阶之道(24):LocalStorage 页面级状态边界——为啥同页面多组件共享页面卸载就销毁 ArkTS 进阶之道24LocalStorage 页面级状态边界——为啥同页面多组件共享页面卸载就销毁本文是「ArkTS 进阶之道」系列第 24 篇续「ArkUI 状态联动」深水区。上篇讲 AppStorage 应用级状态存储槽边界所有页面共享页面卸载状态仍存在。本文讲页面级状态边界LocalStorage 页面级局部状态存储——根因在同页面多组件共享页面卸载就销毁。能力系列篇 24 讲过 LocalStorage 怎么用本文讲为哈 LocalStorage 页面级状态合法 AppStorage 应用级状态跨页面共享冗余——根因在页面级状态存储槽。一、开篇LocalStorage 不是应用级 AppStorage是页面级局部状态存储你写 React 时页面级状态是「useState 魔法」组件卸载 state 销毁// React 页面级状态useState组件卸载 state 销毁 function Page() { const [count, setCount] useState(0) // 页面级 state return button onClick{() setCount(count 1)}count{count}/button } // React 页面级状态useState组件卸载 state 销毁不跨页面共享你写鸿蒙 ArkTS 时LocalStorage页面级局部状态存储——同页面多组件共享页面卸载就销毁// ArkTS LocalStorage 页面级局部状态存储 interface LocalState { localCount: number; localTheme: string } const localStorage new LocalStorage({ localCount: 0, localTheme: #52C41A } as LocalState) Component struct ChildA { LocalStorageLink(localCount) localCount: number 0 // ✅ LocalStorageLink 双向绑定 LocalStorage 键 build() { Button(ChildA count${this.localCount}) .onClick(() { this.localCount }) // ✅ 改 → LocalStorage 同步 → 同页面 ChildB 同步 } } // LocalStorage 页面级局部状态同页面多组件共享页面卸载就销毁useState 魔法 vs 页面级状态存储槽的区别React 把页面级状态当 useState 魔法组件卸载 state 销毁ArkTS 把 LocalStorage 当「页面级状态存储槽」同页面多组件共享页面卸载就销毁。根因不是 useState 魔法是页面级状态存储槽——LocalStorage 页面级局部状态存储同页面多组件共享页面卸载就销毁。二、根因LocalStorage 的页面级状态存储槽机制鸿蒙 ArkUI 的 LocalStorage 是页面级状态存储槽绑定——同页面多组件共享页面卸载就销毁来自三重绑定机制。机制 1LocalStorage 页面级局部状态存储——不是应用级 AppStorageLocalStorage 荬饰器页面级局部状态存储——同页面多组件共享页面卸载就销毁// ✅ 初始化 LocalStorage页面级局部状态 interface LocalState { localCount: number; localTheme: string } const localStorage new LocalStorage({ localCount: 0, localTheme: #52C41A } as LocalState) Component struct ChildA { LocalStorageLink(localCount) localCount: number 0 // ✅ LocalStorageLink 双向绑定 LocalStorage 键 build() { Column() { Text(localCount ${this.localCount}) Button(改 localCount) .onClick(() { this.localCount }) // ✅ 改 → LocalStorage 同步 → 同页面 ChildB 同步 } } } // LocalStorage 页面级局部状态同页面多组件共享页面卸载就销毁不跨页面共享页面级局部状态存储LocalStoragelocalCount页面级局部状态存储——同页面多组件共享localCount页面卸载就销毁不跨页面共享。根因不是应用级 AppStorage 是页面级状态存储槽——LocalStorage 页面级局部状态存储同页面多组件共享页面卸载就销毁。机制 2LocalStorageLink 双向绑定 LocalStorage 键——改 Storage 同页面同步LocalStorageLink 荬饰器双向绑定 LocalStorage 键——改 LocalStorageLink → LocalStorage 同步 → 同页面其他组件同步Component struct ChildA { LocalStorageLink(localCount) localCount: number 0 // ✅ LocalStorageLink 双向绑定 LocalStorage 键 LocalStorageLink(localTheme) localTheme: string #52C41A build() { Column() { Text(localCount ${this.localCount}).fontColor(this.localTheme) Button(改 localCount) .onClick(() { this.localCount }) // ✅ 改 → LocalStorage 同步 → 同页面 ChildB 同步 Button(改 localTheme红色) .onClick(() { this.localTheme #FF4D4F }) // ✅ 改 → LocalStorage 同步 → 同页面 ChildB 同步 } } } // LocalStorageLink 双向绑定 LocalStorage 键改 → LocalStorage 同步 → 同页面其他组件同步双向LocalStorageLink 双向绑定 LocalStorage 键LocalStorageLinklocalCount荬饰器双向绑定 LocalStorage 键——改localCount→ LocalStorage 同步 → 同页面其他组件同步双向。根因不是组件级 State 是页面级状态存储槽——LocalStorageLink 双向绑定 LocalStorage 键改 → LocalStorage 同步 → 同页面其他组件同步双向。机制 3同页面多组件共享 LocalStorage——ChildA 改 ChildB 同步LocalStorage同页面多组件共享——ChildA 改 LocalStorage 键 → 同页面 ChildB 同步不用 props 透传Component struct ChildA { LocalStorageLink(localCount) localCount: number 0 // ✅ ChildA 绑定 LocalStorage 键 build() { Button(ChildA 改 localCount) .onClick(() { this.localCount }) // ✅ ChildA 改 → LocalStorage 同步 → ChildB 同步 } } Component struct ChildB { LocalStorageLink(localCount) localCount: number 0 // ✅ ChildB 也绑定同一 LocalStorage 键 build() { Text(ChildB localCount ${this.localCount}) // ✅ ChildB 自动同步不用 props 透传 } } // 同页面多组件共享 LocalStorageChildA 改 → ChildB 同步不用 props 透传同页面共享同页面多组件共享 LocalStorageLocalStoragelocalCount同页面多组件共享——ChildA 改localCount→ 同页面 ChildB 同步不用 props 透传。根因不是 props 透传是页面级状态存储槽——LocalStorage 同页面多组件共享ChildA 改 → ChildB 同步不用 props 透传。机制 4LocalStorage vs AppStorage 应用级状态边界——页面级 vs 应用级LocalStorage页面级局部状态同页面多组件共享页面卸载就销毁AppStorage应用级全局状态所有页面共享页面卸载状态仍存在——根因都是状态存储但绑的机制不同// ✅ LocalStorage 路径页面级局部状态同页面多组件共享页面卸载就销毁 const localStorage new LocalStorage({ localCount: 0 } as LocalState) Component struct ChildA { LocalStorageLink(localCount) localCount: number 0 // ✅ LocalStorageLink 双向绑定 LocalStorage 键 build() { Button(ChildA ${this.localCount}).onClick(() { this.localCount }) } } Component struct ChildB { LocalStorageLink(localCount) localCount: number 0 // ✅ 同页面 ChildB 也绑定 build() { Button(ChildB ${this.localCount}).onClick(() { this.localCount }) } } // ✅ LocalStorage 页面级局部状态ChildA 改 → ChildB 同步同页面共享页面卸载就销毁 // ⚠ AppStorage 路径应用级全局状态所有页面共享页面卸载状态仍存在 AppStorage.setOrCreate(appCount, 0) Entry Component struct Page1 { StorageLink(appCount) appCount: number 0 // ⚠ StorageLink 绑定 AppStorage 键跨页面共享 build() { Button(Page1 ${this.appCount}).onClick(() { this.appCount }) } } Entry Component struct Page2 { StorageLink(appCount) appCount: number 0 // ⚠ Page2 也绑定同一 AppStorage 键 build() { Button(Page2 ${this.appCount}).onClick(() { this.appCount }) } } // ⚠ AppStorage 应用级全局状态Page1 改 → Page2 同步跨页面共享页面卸载状态仍存在LocalStorage vs AppStorage 应用级状态边界LocalStorage 路径——页面级局部状态同页面多组件共享页面卸载就销毁推荐单页面状态。AppStorage 路径——应用级全局状态所有页面共享页面卸载状态仍存在跨页面状态。根因都是状态存储但绑的机制不同——LocalStorage 页面级状态存储槽同页面共享AppStorage 应用级状态存储槽跨页面共享。三、真机配图LocalStorage 页面级状态边界——同页面多组件共享初始态ChildA/B localCount0、localTheme“#52C41A” 绿色文字均页面级状态初始态齐点调三按钮后ChildA localCount11、ChildB localCount11 同页面同步、localTheme“#FF4D4F” 红色文字同步均同页面多组件共享证据齐对比证据点 ChildA 改 localCount 后 ChildB localCount 同步同页面多组件共享点 ChildA 改 localTheme红色后 ChildB localTheme 同步红字点 ChildB 改 localCount10 后 ChildA localCount 同步ChildB 改 ChildA 也同步双向。LocalStorage 页面级局部状态——同页面多组件共享页面卸载就销毁LocalStorageLink 双向绑定 LocalStorage 键ChildA 改 ChildB 同步不用 props 透传。四、真解法LocalStorage 页面级状态的三个场景场景 1LocalStorage 同页面多组件计数器90% 场景首选页面级状态存储槽interface LocalState { localCount: number } const localStorage new LocalStorage({ localCount: 0 } as LocalState) Component struct ChildA { LocalStorageLink(localCount) localCount: number 0 // ✅ LocalStorageLink 双向绑定 LocalStorage 键 build() { Column() { Text(ChildA count ${this.localCount}) Button(ChildA 改 count) .onClick(() { this.localCount }) // ✅ 改 → LocalStorage 同步 → 同页面 ChildB 同步 } } } Component struct ChildB { LocalStorageLink(localCount) localCount: number 0 // ✅ 同页面 ChildB 也绑定 build() { Text(ChildB count ${this.localCount}) } // ✅ ChildB 自动同步不用 props 透传 }为哈能跑LocalStorage 同页面多组件计数器——页面级状态存储槽LocalStoragelocalCount页面级局部状态LocalStorageLink 双向绑定 LocalStorage 键ChildA 改localCount→ LocalStorage 同步 → 同页面 ChildB 同步双向。首选这个90% 的场景同页面多组件状态共享用 LocalStorage 页面级状态存储槽就够。要写「同页面多组件状态共享计数器等」时用这个——不用 props 透传冗余LocalStorage 页面级状态存储槽同页面多组件共享。场景 2LocalStorage 同页面多组件主题色页面级状态存储槽同页面共享主题interface LocalState { localTheme: string } const localStorage new LocalStorage({ localTheme: #52C41A } as LocalState) Component struct ThemeA { LocalStorageLink(localTheme) localTheme: string #52C41A // ✅ LocalStorageLink 绑定 build() { Column() { Text(ThemeA theme ${this.localTheme}).fontColor(this.localTheme) Button(ThemeA 改 theme红色) .onClick(() { this.localTheme #FF4D4F }) // ✅ 改 → LocalStorage 同步 → 同页面 ThemeB 同步 } } } Component struct ThemeB { LocalStorageLink(localTheme) localTheme: string #52C41A // ✅ 同页面 ThemeB 也绑定 build() { Text(ThemeB theme ${this.localTheme}).fontColor(this.localTheme) } // ✅ 自动同步 } // LocalStorage 同页面多组件主题色ThemeA 改 → ThemeB 同步同页面共享主题不用 props 透传为哈能跑LocalStorage 同页面多组件主题色——页面级状态存储槽LocalStoragelocalTheme页面级局部状态LocalStorageLink 双向绑定 LocalStorage 键ThemeA 改localTheme→ LocalStorage 同步 → 同页面 ThemeB 同步双向。要写「同页面多组件主题共享主题色等」时用这个——不用 props 透传冗余LocalStorage 页面级状态存储槽同页面多组件共享主题。场景 3LocalStorage vs AppStorage 作用域边界页面级 vs 应用级选对存储槽// ✅ LocalStorage 页面级同页面多组件共享页面卸载就销毁单页面状态用这个 const localStorage new LocalStorage({ pageState: 0 } as LocalState) Component struct PageComponent { LocalStorageLink(pageState) pageState: number 0 // ✅ 页面级页面卸载就销毁 build() { Button(页面级 ${this.pageState}).onClick(() { this.pageState }) } } // ✅ AppStorage 应用级所有页面共享页面卸载状态仍存在跨页面状态用这个 AppStorage.setOrCreate(appState, 0) Entry Component struct CrossPage { StorageLink(appState) appState: number 0 // ✅ 应用级跨页面共享页面卸载状态仍存在 build() { Button(应用级 ${this.appState}).onClick(() { this.appState }) } } // LocalStorage vs AppStorage 作用域边界单页面状态用 LocalStorage页面卸载就销毁 // 跨页面状态用 AppStorage所有页面共享页面卸载状态仍存在为哈能跑LocalStorage vs AppStorage 作用域边界——页面级状态用 LocalStorage同页面多组件共享页面卸载就销毁应用级状态用 AppStorage所有页面共享页面卸载状态仍存在。要写「选对状态存储槽页面级 vs 应用级等」时用这个——单页面状态用 LocalStorage页面卸载就销毁跨页面状态用 AppStorage跨页面共享。五、一句话哲学LocalStorage 不是应用级 AppStorage是页面级局部状态存储槽的同页面多组件共享。ArkUI 的 LocalStorage 荬饰器页面级局部状态存储同页面多组件共享页面卸载就销毁。根因不是应用级 AppStorage 是页面级状态存储槽——LocalStorage 页面级局部状态存储同页面多组件共享页面卸载就销毁 LocalStorageLink 双向绑定 LocalStorage 键改 → LocalStorage 同步 → 同页面其他组件同步双向 同页面多组件共享 LocalStorageChildA 改 ChildB 同步不用 props 透传 LocalStorage vs AppStorage 应用级状态边界页面级 vs 应用级。对比 React 页面级状态 useState 魔法组件卸载 state 销毁ArkTS LocalStorage 页面级状态存储槽同页面多组件共享。状态联动深水区串讲Watch 绑 State 变触发副作用回调槽篇 68 Link $ 语法双向绑定跨组件同步篇 69 Provide/Consume 跨层级传递槽祖辈后辈同步篇 70 Observed/ObjectLink 嵌套对象观测槽子属性改刷 UI篇 71 AppStorage 应用级状态存储槽所有页面共享篇 72 LocalStorage 页面级状态存储槽同页面多组件共享篇 73页面卸载就销毁——续「ArkUI 状态联动」深水区讲状态联动深水区Watch 副作用回调槽边界 Link $ 语法双向绑定边界 Provide/Consume 跨层级传递槽边界 Observed/ObjectLink 嵌套对象观测槽边界 AppStorage 应用级状态存储槽边界 LocalStorage 页面级状态存储槽边界。系列预告下篇篇 74讲 StorageLink/StorageProp 应用级状态绑定边界AppStorage 绑定根因续「ArkUI 状态联动」深水区。五阶段哲学体系类型哲学50-52→ 作用域哲学53-55→ 状态哲学56-59→ 渎染哲学60-62→ 组件设计63-67→ 状态联动深水区68讲清 ArkTS/ArkUI 进阶哲学。能力系列回链能力系列篇本文进阶点篇 24 LocalStorage 用法LocalStorage 页面级状态存储槽边界根因同页面多组件共享页面卸载就销毁篇 23 AppStorage 用法应用级状态存储槽边界所有页面共享页面卸载状态仍存在篇 59 Watch 用法状态联动深水区Watch 副作用回调槽 vs onClick 直接调副作用边界真机 demo 完整代码// 篇 73 demoLocalStorage 页面级状态边界 // LocalStorage 页面级局部状态同页面多组件共享页面卸载销毁 // LocalStorageLink/LocalStorageProp 绑定 LocalStorage 键 // ✅ 初始化 LocalStorage页面级局部状态 interface LocalState { localCount: number; localTheme: string } const localStorage new LocalStorage({ localCount: 0, localTheme: #52C41A } as LocalState) // ✅ 子组件1LocalStorageLink 双向绑定 LocalStorage 键页面级局部状态 Component struct ChildA { LocalStorageLink(localCount) localCount: number 0 // ✅ LocalStorageLink 双向绑定 LocalStorageLink(localTheme) localTheme: string #52C41A build() { Column({ space: 6 }) { Text(子组件 ChildALocalStorageLink 双向绑定) .fontSize(11).fontColor(#2563eb).fontWeight(FontWeight.Bold) Text(localCount ${this.localCount}).fontSize(13).fontColor(#2563eb) Text(localTheme ${this.localTheme}).fontSize(11).fontColor(this.localTheme) Button(ChildA 改 localCountLocalStorageLink 同页面同步) .width(92%).height(36).fontSize(10) .onClick(() { this.localCount }) // ✅ 改 → LocalStorage 同步 → ChildB 同步 Button(ChildA 改 localTheme红色) .width(92%).height(36).fontSize(10) .onClick(() { this.localTheme #FF4D4F }) // ✅ 改 → LocalStorage 同步 → ChildB 同步 } .width(92%).padding(8).backgroundColor(#e0f0ff).borderRadius(6) } } // ✅ 子组件2同页面另一组件也绑定 LocalStorage 键同页面多组件共享 Component struct ChildB { LocalStorageLink(localCount) localCount: number 0 // ✅ ChildB 也绑定同一 LocalStorage 键 LocalStorageLink(localTheme) localTheme: string #52C41A build() { Column({ space: 6 }) { Text(子组件 ChildB同页面共享 LocalStorage) .fontSize(11).fontColor(#ff6600).fontWeight(FontWeight.Bold) Text(localCount ${this.localCount}).fontSize(13).fontColor(#ff6600) Text(localTheme ${this.localTheme}).fontSize(11).fontColor(this.localTheme) Button(ChildB 改 localCount10LocalStorageLink 同页面同步) .width(92%).height(36).fontSize(10) .onClick(() { this.localCount 10 }) // ✅ ChildB 改 → ChildA 同步同页面共享 } .width(92%).padding(8).backgroundColor(#fff0e0).borderRadius(6) } } Entry Component struct Index { build() { Column({ space: 12 }) { Text(篇 73 配图LocalStorage 页面级状态边界) .fontSize(16).fontWeight(FontWeight.Bold).margin({ top: 16, bottom: 4 }) Text(LocalStorage 页面级局部状态同页面多组件共享页面卸载销毁vs AppStorage 应用级跨页面共享) .fontSize(10).fontColor(#888).margin({ bottom: 8 }) ChildA() ChildB() Text(同页面 ChildA 改 localCount → ChildB 同步同页面多组件共享) .fontSize(10).fontColor(#333).margin({ top: 8 }) Text(页面卸载 → LocalStorage 销毁vs AppStorage 应用级页面卸载状态仍存在) .fontSize(10).fontColor(#ff6600) } .width(100%).height(100%).alignItems(HorizontalAlign.Center) } }写鸿蒙 ArkUI 记住LocalStorage 不是应用级 AppStorage 是页面级局部状态存储槽的同页面多组件共享——LocalStorage 荬饰器页面级局部状态存储同页面多组件共享页面卸载就销毁。根因不是应用级 AppStorage 是页面级状态存储槽——LocalStorage 页面级局部状态存储同页面多组件共享页面卸载就销毁 LocalStorageLink 双向绑定 LocalStorage 键改 → LocalStorage 同步 → 同页面其他组件同步双向 同页面多组件共享 LocalStorageChildA 改 ChildB 同步不用 props 透传 LocalStorage vs AppStorage 应用级状态边界页面级 vs 应用级。LocalStorage 同页面多组件计数器用页面级状态存储槽首选90% 场景LocalStorage 同页面多组件主题色用页面级状态存储槽同页面共享主题LocalStorage vs AppStorage 作用域边界选对存储槽单页面用 LocalStorage 页面卸载就销毁跨页面用 AppStorage 跨页面共享。页面级状态存储槽同页面多组件共享页面卸载就销毁是 ArkUI 状态联动深水区核心
延伸阅读

更多相关文章

2026/11/8 13:10:50

ROS2动作通信C++实战:从接口定义到机械臂拾取放置完整实现

1. 项目概述:从话题到实战的跨越最近在机器人开发者社区里,一个高频出现的话题是“如何让ROS2的动作(Action)真正用起来”。很多朋友,尤其是从ROS1迁移过来或者刚入门的开发者,在理解了话题(Top…

2026/11/8 13:45:09

【单片机毕业设计】基于光敏红外传感器的室内节能灯光控制系统 基于嵌入式单片机的环境光照灯光档位调控系统(014901)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/10/31 13:57:58

BepInEx完整指南:如何为Unity游戏添加无限插件功能

BepInEx完整指南:如何为Unity游戏添加无限插件功能 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx 你是否想过为你最喜欢的Unity游戏添加新功能、修复Bug或创造全新的游…

2026/11/9 7:33:44

电厂电工证在哪里考取 怎么报名别踩坑

电厂电工证在哪里考取 怎么报名别踩坑 怕考不过白交培训费?我见过太多像你一样的应届生,花了几千块报班,结果考试不过,培训费打了水漂。今天就来聊一聊【电厂电工证在哪里考取】和【怎么报名】这些事,特别是南阳的工程类毕业生,你们的晋升之路和证书息…

2026/11/9 7:33:44

合肥电工证报名在哪里 在哪考外省证书能转吗

合肥电工证报名在哪里 在哪考外省证书能转吗 之前考的证在外省能不能转过来?这是很多电工朋友在换工作、换城市时最关心的问题,特别是像你在合肥工作、但证书是在外省考的,想知道 合肥电工证报名在哪里 ,以及 在哪考…

2026/11/9 7:33:44

低压电工证什么时候考值不值得 一文说清考前押题与证书价值

低压电工证什么时候考值不值得 一文说清考前押题与证书价值 证书过期了不知道怎么复审延期?你不是一个人在战斗,不少老电工都遇到过这个问题。低压电工证的复审和延期手续如果不清楚,可能直接导致你不能上岗,甚至面临处罚。现在我们就来聊聊低压电工证什…

2026/11/9 7:28:44

长沙电工证哪里办千万别踩坑,考前必看避雷指南

长沙电工证哪里办千万别踩坑,考前必看避雷指南 怕考不过白交培训费?现在网上太多培训机构打着“包过”的旗号,结果一上考场就原形毕露。别再踩坑了,长沙电工证哪里办其实有门道,关键是你得知道哪些地方靠谱、哪些考试内容必须掌握。这篇文章帮你把备考重…

2026/11/9 0:37:55

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/9 0:03:09

建设厅的特种工有哪些含金量高?别交完钱考不过

建设厅的特种工有哪些含金量高?别交完钱考不过 怕考不过白交培训费?别急,先搞清楚建设厅的特种工有哪些含金量高的证,再决定是不是值得投入时间和金钱。 建设厅的特种工证是建筑行业里最基础、也最实用的证书之一,涉及多个作业类别,每种证的 含金量…

2026/11/9 0:03:09

荆门市电工证报名怎么考才靠谱 全国通用证别交冤枉钱

荆门市电工证报名怎么考才靠谱 全国通用证别交冤枉钱 怕考不过白交培训费?荆门市电工证报名前必须知道这些避坑指南。别看网上一堆培训机构广告,真要报个电工证,很多人被坑得一塌糊涂。特别是那些打着“包过”旗号的,最后不是考试不过,就是证不是全国通…

2026/11/9 0:03:09

高空电工作业过程通过率揭秘:怎么选靠谱机构不被坑

高空电工作业过程通过率揭秘:怎么选靠谱机构不被坑 不知道去哪报名怕被中介坑?你不是一个人。现在特种作业证报名渠道五花八门,从线下培训机构到线上代理,真假难辨。尤其是像高空电工作业这类高风险、高门槛的作业类型,证书含金量和考试通过率直接影响你…

2026/11/9 6:30:27

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/7 14:50:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

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

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑