类Web开发范式自定义组件基本用法
自定义组件通过element
引入到宿主页面。
Props自定义属性
自定义属性支持类型 String,Number,Boolean,Array,Object。
命名规范:
命名时禁止以on、@、on:、grab:等保留关键字为开头。
必须用小写开头,不能以$或_开头,不要使用保留字for, if, show, tid。
当属性名使用驼峰命名法时,在外部父组件传递参数时需要使用短横线分隔命名
自定义属性默认值
通过固定值default设置默认值,当父组件没有设置该属性时,将使用其默认值,此情况下props属性必须为对象形式,不能用数组形式
。
数据单向性
web开发父子组件之间数据的传递是单向的,只能从父组件传递给子组件
,子组件不能直接修改父组件传递下来的值。
感知数据改变
通过$watch
方法增加属性变化回调。
计算属性
使用computed
字段
自定义事件
子组件也可以通过绑定的事件向父组件传递参数,父组件接收时通过e.detail
来获取参数
生命周期定义
onAttached
:自定义组件被创建后,加入到Page组件树时,触发该回调,该回调触发时,表示组件将被进行显示,该生命周期可用于初始化显示相关数据,通常用于加载图片资源、开始执行动画等场景
。
Canvas属性
lineWidth
:设置绘制线条的宽度 ctx.lineWidth = 5;
strokeStyle: 设置描边的颜色 ctx.strokeStyle = ‘#0000ff’;
svg子组件
声明式开发范式自定义组件基本用法
@Component
装饰的struct表示该结构体具有组件化能力
,也称为自定义组件
自定义组件生命周期
onPageShow
当此页面显示时触发一次 包括路由过程、应用进入前后台等场景,仅@Entry修饰的自定义组件生效
onPageHide
当此页面消失时触发一次 仅@Entry修饰的自定义组件生效
onBackPress
当用户点击返回按钮时触发 仅@Entry修饰的自定义组件生效
声明式开发范式动画
转场动画
:页面间转场
、组件内转场
、共享元素转场
;
属性动画
流转任务管理服务提供如下流转方式
系统推荐流转
用户手动流转
跨端迁移概念
一种实现用户应用程序流转的技术方案,指在A端运行的FA迁移到B端上,完成迁移后,B端FA继续任务,而A端应用根据业务需求选择退出或继续运行
。
跨端迁移—流转完成
设备A
上的应用通过调用分布式任务调度的能力,如continueAbility等,向设备B的应用发起跨端迁移
。流转中将流转状态上报到流转任务管理服务。
跨端迁移
调用continueAbility()
或continueAbilityReversibly()
方法发起流转。
设备不支持流转任务管理服务时如何实现跨端迁移?
需要指定对端设备的deviceId
实现跨端迁移。关键代码所示:
跨端迁移回调方法执行顺序
FA发起迁移后,主要有以下几种回调方法:
onStartContinuation
,FA发起迁移时的回调,在此回调中应用可以根据当前状态决定是否迁移;
onSaveData
,保存状态数据的回调,开发者需要往参数对象中填入需迁移到目标设备上的数据。
onRestoreData
,恢复发起迁移时onSaveData方法保存的数据的回调;
onCompleteContinuation
,迁移完成的回调,在调用端被触发,表示应用迁移到目标设备上的结果。
多端协同
一种实现用户应用程序流转的技术方案,指多端上的不同FA/PA同时运行、或者交替运行实现完整的业务;或者,多端上的相同FA/PA同时运行实现完整的业务
。
多端协同流程
流转进行
:设备A
上的应用通过调用分布式任务调度的能力,如startAbility
, connectAbility
等,向设备B的应用发起多端协同
。流转中将流转状态上报到流转任务管理服务。
设备不支持流转任务管理服务时如何实现多端协同?
需要在Intent中指定对端设备的deviceId。
跨端原子化服务安装
当设备A的用户应用程序向设备B的原子化服务发起多端协同,如果设备B上没有安装对应服务,HarmonyOS会自动下载相关原子化服务
,和A端的用户应用程序一起进行多端协同。
如跨端被拉起的程序设计为传统方式的需要安装的应用
,则当设备A的用户应用程序向设备B的原子化服务发起多端协同,如果设备B上没有安装相关应用,会提示流转失败
。