鸿蒙 ArkUI 数独小游戏实战笔记:布局、状态与端侧渲染三点体会
最近在鸿蒙开发实践中心把「数独小游戏:HarmonyOS + ArkUI 纯端侧开发」这个案例从头跑了一遍,纯端侧、不依赖云端服务,很适合作为 ArkUI 的入门练习。这里记录三点体会,给同样在学 ArkUI 的同学做个参考。
一、九宫格用 Grid 而不是嵌套 Row/Column。数独棋盘是 9×9,用 Grid 配 columnsTemplate('1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr') 一行定义,格子交给 ForEach 渲染,代码量比手写多层嵌套少一个量级,而且自适应屏幕宽度,平板上也不会变形。需要强调的 3×3 区块分割线,用 GridItem 的 border 粗细区分即可,比叠一层遮罩更省事。
二、状态集中在一维数组上。棋盘用 number[] 表示,0 代表空格;选中格、冲突格用两个独立的 @State 记录索引。这样「点选格子 → 输入数字 → 校验行列宫 → 刷新冲突标记」就是一次纯数据更新,UI 自动重渲染,不需要手动改组件样式。ArkUI 的声明式在这里优势很明显:逻辑和视图彻底解耦,后面要加「提示」「撤销」功能时基本不用动布局代码。
三、端侧渲染的性能边界要提前想清楚。纯端侧的好处是零网络延迟、隐私数据不出端,但校验和生成题目的计算都在本机。实测一次性生成完整终盘再挖空(挖到剩余 30 个左右提示数)耗时在百毫秒级,放在任务回调里执行即可;如果做「一键求解」,建议把递归回溯放进 Worker,避免阻塞 UI 线程导致掉帧。
案例仓库在 GitCode 的 harmony-practice-center 组织下,云端实践可以一键起云手机环境,本地开发则直接用 DevEco Studio 打开。整体跑通不到一个小时,比我预想的顺利,值得作为鸿蒙入门的第一个完整小项目。
- 点赞
- 收藏
- 关注作者
评论(0)