

子玥酱 (掘金 / 知乎 / CSDN / 简书 同名)
大家好,我是 子玥酱,一名长期深耕在一线的前端程序媛 👩💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚焦于业务型系统的工程化建设与长期维护。
我持续输出和沉淀前端领域的实战经验,日常关注并分享的技术方向包括 前端工程化、小程序、React / RN、Flutter、跨端方案,
在复杂业务落地、组件抽象、性能优化以及多端协作方面积累了大量真实项目经验。
技术方向: 前端 / 跨端 / 小程序 / 移动端工程化 内容平台: 掘金、知乎、CSDN、简书 创作特点: 实战导向、源码拆解、少空谈多落地 **文章状态:**长期稳定更新,大量原创输出
我的内容主要围绕 前端技术实战、真实业务踩坑总结、框架与方案选型思考、行业趋势解读 展开。文章不会停留在"API 怎么用",而是更关注为什么这么设计、在什么场景下容易踩坑、真实项目中如何取舍,希望能帮你在实际工作中少走弯路。
子玥酱 · 前端成长记录官 ✨
👋 如果你正在做前端,或准备长期走前端这条路
📚 关注我,第一时间获取前端行业趋势与实践总结
🎁 可领取 11 类前端进阶学习资源 (工程化 / 框架 / 跨端 / 面试 / 架构)
💡 一起把技术学"明白",也用"到位"
持续写作,持续进阶。
愿我们都能在代码和生活里,走得更稳一点 🌱
文章目录
-
- 引言
- [一、多端 UI 最大的问题,不是适配](#一、多端 UI 最大的问题,不是适配)
- 二、很多项目为什么会"看起来统一,实际上割裂"
- [三、第一种 UI 不一致:页面结构不一致](#三、第一种 UI 不一致:页面结构不一致)
- [四、第二种 UI 不一致:状态来源不一致](#四、第二种 UI 不一致:状态来源不一致)
- [五、第三种 UI 不一致:交互逻辑不一致](#五、第三种 UI 不一致:交互逻辑不一致)
- [六、第四种 UI 不一致:布局系统失控](#六、第四种 UI 不一致:布局系统失控)
- [七、第五种 UI 不一致:Task 没有统一](#七、第五种 UI 不一致:Task 没有统一)
- [八、为什么 AI 会放大"多端不一致"](#八、为什么 AI 会放大“多端不一致”)
- 九、真正优秀的鸿蒙多端项目长什么样
- 十、一个非常关键的认知
- 十一、推荐一个稳定结构
-
- [Adaptive UI 负责什么](#Adaptive UI 负责什么)
- 十二、总结
引言
很多人第一次做鸿蒙多端开发时,都会有一种期待:
text
一套代码
多端运行
自动适配
听起来非常美好,于是很多团队会觉得:
text
手机能跑
平板应该也能跑
PC 应该问题也不大
但真正做下去之后,很快就会进入一种熟悉的状态:
text
手机正常
平板错位
PC 崩布局
甚至:
- 字体大小不统一
- 组件比例异常
- 交互逻辑不一致
- 状态同步后 UI 错乱
- 同一页面多端体验完全不同
最后很多人会开始怀疑:
鸿蒙不是"一次开发,多端部署"吗?
为什么 UI 还是这么难统一?
但问题其实不在鸿蒙。真正的问题是:
很多项目本质上仍然在用"单设备思维"设计 UI。
一、多端 UI 最大的问题,不是适配
很多人会以为:
text
多端问题 = 屏幕尺寸问题
其实不是,真正的问题是:
不同设备的"交互模型"根本不同。
例如:
| 设备 | 核心交互 |
|---|---|
| 手机 | 单手触控 |
| 平板 | 双手触控 |
| PC | 鼠标键盘 |
| 车机 | 远距离触控 |
| TV | 遥控器 |
也就是说:
text
设备变了
交互语义也变了
二、很多项目为什么会"看起来统一,实际上割裂"
因为很多团队做的只是:
text
尺寸适配
例如:
ts
.width('100%')
.height('100%')
或者:
ts
if (isPad) {
this.columns = 4
}
但问题在于:
真正的多端,不只是"缩放页面"。
而是:
text
重新定义信息结构
三、第一种 UI 不一致:页面结构不一致
很多项目会这样,手机:
text
列表
↓
详情
PC:
text
左侧列表 + 右侧详情
如果你仍然强行复用:
text
同一个页面结构
后面一定会出现:
- 布局嵌套爆炸
- 条件渲染越来越多
- 状态同步越来越复杂
错误写法
ts
if (isPhone) {
showList()
} else {
showSplitView()
}
最后页面会变成:
text
巨型 if-else UI
正确做法
不是:
text
页面复用
而是:
text
信息结构复用
例如
统一:
text
数据流
状态流
Task Flow
而不是:
text
强行统一布局
四、第二种 UI 不一致:状态来源不一致
这是很多鸿蒙项目最大的坑,例如:
手机:
ts
@State currentOrder
平板:
ts
globalStore.currentOrder
结果:
text
两个端状态来源不同
后面一定:
- UI 同步异常
- 分布式刷新错乱
- 数据覆盖
正确原则
所有端必须共享同一个状态源。
推荐结构
text
DistributedState
↓
DomainStore
↓
UI
示例:
ts
orderStore.currentOrder
所有设备:
text
统一读取
而不是:
text
每个端自己存状态
五、第三种 UI 不一致:交互逻辑不一致
很多团队会忽略:
text
设备不同
交互节奏也不同
例如,手机:
text
点击跳转
PC:
text
Hover + 快捷键 + 多窗口
车机:
text
低频操作
大按钮
但很多项目会这样
text
所有设备完全同一套交互
结果:
text
每个端体验都很奇怪
真正的问题
很多人理解的:
text
一致性
其实是:
text
像素一致
但真正优秀的多端设计追求的是:
体验一致。
六、第四种 UI 不一致:布局系统失控
很多 ArkUI 项目后期会这样:
ts
.width(320)
.height(60)
到处都是:
text
固定值
手机还能看,到了:
- 平板
- PC
- 折叠屏
马上崩。
真正的问题
不是:
text
ArkUI 不行
而是:
布局仍然是"单尺寸思维"。
正确做法
必须建立:
text
响应式布局系统
例如:
ts
GridRow() {
}
或者:
ts
if (breakpoint === 'lg') {
}
核心不是:
text
适配页面
而是:
text
适配信息密度
七、第五种 UI 不一致:Task 没有统一
很多人没意识到:
真正决定 UI 的,其实不是页面。
而是:
text
Task
示例
手机:
text
创建订单
PC:
text
批量创建订单
如果:
text
Task Flow 不统一
最终:
text
UI 一定越来越割裂
正确模型
text
Intent
↓
Task
↓
State
↓
UI
真正统一的是:
- Task
- State
- 数据流
而不是:
text
页面像不像
八、为什么 AI 会放大"多端不一致"
因为 AI 天然是:
text
跨设备任务调度
例如:
ts
await agent.run("继续昨天会议")
系统可能:
- 手机上接收消息
- PC 打开文档
- 平板展示白板
如果:
text
状态不同步
Task 不统一
整个体验会:
text
瞬间崩掉
九、真正优秀的鸿蒙多端项目长什么样
不是:
text
所有设备长一样
而是:
text
所有设备"行为一致"
它们通常具备
- 统一状态源
- 统一 Task Flow
- 统一领域模型
- 响应式布局系统
- 分布式状态同步
- AI 调度边界
这些东西:
比"页面复用"重要得多。
十、一个非常关键的认知
很多人以为:
text
多端开发 = 多 UI
其实真正的多端应该是:
text
同一能力
不同呈现
例如:
text
同一个 Task
在不同设备以不同形式展示
这才是真正的:
鸿蒙多端架构。
十一、推荐一个稳定结构
text
Task
↓
State
↓
Adaptive UI
Adaptive UI 负责什么
只负责:
text
不同设备的展示差异
例如:
- 手机单栏
- PC 双栏
- 平板分屏
但:
text
Task 不变
State 不变
十二、总结
如果用一句话总结:
鸿蒙多端 UI 不一致,本质不是"布局问题"。
真正的问题是:
text
Task 不一致
State 不一致
交互模型不一致
页面只是结果
真正决定体验的是:
- 信息结构
- 状态流
- Task Flow
- 分布式同步
很多团队后期做鸿蒙多端越来越痛苦,并不是因为:
- ArkUI 不好用
- 响应式太难
- 多设备太复杂
真正的问题其实只有一个:
仍然在用"单设备页面思维"做多端系统。
记住一句话:
text
真正的多端,
统一的不是页面,
而是能力与状态。
当你真正建立:
- Task 中心化
- State 中心化
- 响应式 UI
- 分布式状态流
- 多端交互模型
你会明显发现:
text
多端 UI 开始真正"统一"了