logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

HarmonyOS 多设备短视频开发 :25 — 数据持久化 Preferences 与状态恢复

Preferences 以"键-值"对形式存储,值为 number、string、boolean、Array 等简单类型,适合保存用户偏好与轻量状态,不适合大数据与复杂查询。存储项类型来源状态用途videoIndexnumber恢复上次观看的视频下标number恢复播放位置tabIndexnumber恢复底部页签string断点偏好记录对比关系型数据库(RelationalStore):Prefe

文章图片
#harmonyos#音视频#华为
HarmonyOS 多设备短视频开发 :24 — AppStorage/AppStorageV2 应用级状态

V2 工程优先使用 AppStorageV2:connect 连接 @ObservedV2 类,类型安全、属性级可观察、全模块共享。WindowInfo 是"全局状态单例"的教科书实现:单例维护(WindowUtil)+ 全局存储(AppStorageV2)+ 组件观察(@Local + getWindowInfoState)三层协作。页面级共享状态(主题、侧栏、路由)用 @Provider/@C

文章图片
#harmonyos#ubuntu#华为
HarmonyOS 多设备短视频开发 :23 — @Monitor 与 @Computed:计算与监听

用 @Monitor 把"状态变化"与"业务副作用"显式关联:切视频暂停/起播、窗口变化重排、进度跳转,都收敛为一条清晰的联动链路。多属性联动的场景(宽高、坐标)一次 @Monitor 监听多个属性,利用批量去重天然抗抖。需要变化前后值(拖拽回退、差值统计)时使用 IMonitorChange 参数。派生展示值(百分比、时间文本、格式化文案)用 @Computed,享受缓存的同时保持代码整洁。

文章图片
#音视频#harmonyos
HarmonyOS 多设备短视频开发: 22 — 状态管理 V2 装饰器体系

组件内私有状态一律 @Local;只读入参用 @Param;行为上抛用 @Event,保持单向数据流。数据模型按需加 @ObservedV2/@Trace:对象属性需要细粒度刷新时标记,纯数据容器不滥用。跨层级共享用 @Provider/@Consumer,优先在页面根部(Index.ets)收敛全局 Provider,key 命名统一字符串常量。高频状态(播放进度、窗口尺寸)借助 @Trace

文章图片
#harmonyos#音视频#华为
HarmonyOS 多设备短视频开发 :21 — 状态管理 V1 装饰器体系

状态就近声明:只被单个组件使用的状态用 @State,避免无谓提升。参数只读优先 @Prop,需要回写才用 @Link;跨层共享优先 @Provide/@Consume,减少逐层透传。对象级数据用 @Observed + @ObjectLink,保证细粒度刷新。需要感知状态变化执行副作用(保存、埋点、联动播放器)时使用 @Watch。V1 的"就近管理"思想是 V2 的基石;新项目建议直接采用 V

文章图片
#音视频#harmonyos
HarmonyOS 多设备短视频开发 : 20 — 自定义组件与 @Builder/@BuilderParam

标记必传参数 src,编译期约束调用方;其余 @Param 提供默认值,调用方按需覆盖(如评论头像44 : 32组件自带 aboutToAppear/aboutToDisappear 生命周期,可做数据加载与资源释放。高频 UI 片段封装为自定义组件(MSVTextIcon),必传参数用 @Require @Param,可选参数给默认值。组件内复用用 @Builder,跨模块复用用导出 @Buil

#harmonyos
HarmonyOS 多设备短视频开发 : 19 — 弹窗体系:半模态、CustomDialog 与提示

半模态优先用 bindSheet + $$ 双向绑定,弹窗内容抽成 @Builder 以便复用。输入条用 RelativeContainer 锚定底部,依赖系统键盘避让,并预留列表底部间距。同一评论组件以不同外壳呈现(半模态/分栏/全屏),断点驱动形态,避免三套 UI 代码。确认弹窗用 CustomDialog、轻提示用 promptAction,职责单一、调用简单。深色模式与毛玻璃按断点差异化启

#harmonyos
HarmonyOS 多设备短视频开发 : 18 — 侧边栏 SideBarContainer 与分栏交互

侧边栏常驻用 autoHide(false) + showControlButton(false),菜单自绘保证全设备视觉一致。侧面板优先用 Navigation Split 模式而非弹窗,大屏下避免模态割裂、内容上下文不丢失。断点 + 布尔开关(showSideComment/showSideIndividual)驱动形态:大屏分栏、手机半模态,一套业务逻辑。divider 与选中高亮提升信息层

#harmonyos
HarmonyOS 多设备短视频开发 : 17 — Navigation 路由与 NavPathStack

NavPathStack 全局唯一,用 @Provider/@Consumer 传递避免层层透传;页面内导航用 onReady 的页面级栈。路由统一注册到 route_map.json,buildFunction 与导出 @Builder 同名,保证映射可维护。模式切换由业务开关驱动,配合 enableModeChangeAnimation(false) 防止闪烁。大屏用 Split 分栏、小屏用

#harmonyos
HarmonyOS 多设备短视频开发 : 16 — Tabs 组件与 MSVTabs 封装

其余"朋友、消息、我的"为图文形态,仅传文本与内容 Builder。用数据模型驱动页签,新增页签只加一条数据,内容与图标统一收敛。参数化 + @Builder 自定义 TabBar,一套组件覆盖底部、顶部、纯图标、下划线多种形态。canIUse 探测 + useFloating 开关实现 HDS 悬浮与原生 Tabs 双轨降级。设备差异收敛在产品层:手机/平板复用 MSVTabs,TV 独立实现

#harmonyos
    共 347 条
  • 1
  • 2
  • 3
  • 35
  • 请选择