HarmonyOS 如何自定义注解?

类似于 ARouter 的注解实现,希望能在编译过程中生成一些中间文件来实现自动注入的能力。

HarmonyOS
2024-11-05 09:01:48
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

ArkTS自定义注解与TS自定义注解实现方式一致,可以参考如下的aop demo:

@Entry 
@Component 
struct Page { 
  @State message: string = 'Hello World'; 
  aboutToAppear() { 
    this.demo('hello!!!') 
  } 
 
  build() { 
    Flex() { }.backgroundColor(Color.Green).height('100%'); 
  } 
 
  @MyDescriptor 
  demo(param: string) { 
    console.info('...' + param); 
    return param; 
  } 
} 
 
export function MyDescriptor(target: Object, key: string, descriptor: PropertyDescriptor): PropertyDescriptor { 
  const originalMethod: Function = descriptor.value 
  descriptor.value = (args: Object[]) => { 
    console.info(`...Calling ${target.constructor.name} method ${key} with argument: ${args}`) 
    const result: Object = originalMethod(args) 
    console.info(`...Method ${key} returned: ${result}`) 
    return result; 
  } 
  return descriptor; 
}
分享
微博
QQ
微信
回复
2024-11-05 16:22:29
相关问题
自定义弹窗自定义转场动画
1157浏览 • 1回复 待解决
HarmonyOS 如何自定义BuildMode?
561浏览 • 1回复 待解决
HarmonyOS 如何自定义tab
435浏览 • 2回复 待解决
HarmonyOS Checkbox如何自定义图标
371浏览 • 0回复 待解决
HarmonyOS 如何自定义 toast 样式?
77浏览 • 1回复 待解决
HarmonyOS 如何设置自定义字体
863浏览 • 1回复 待解决
HarmonyOS 自定义键盘
247浏览 • 1回复 待解决
HarmonyOS 自定义接口如何使用?
163浏览 • 1回复 待解决
HarmonyOS如何自定义组件的Controller?
369浏览 • 1回复 待解决
HarmonyOS如何自定义视频组件样式
462浏览 • 1回复 待解决
HarmonyOS 如何主动销毁自定义组件
46浏览 • 1回复 待解决
HarmonyOS 使用自定义字体
246浏览 • 1回复 待解决
HarmonyOS 自定义弹窗选择
377浏览 • 1回复 待解决
如何自定义Component 属性
15017浏览 • 3回复 待解决
如何访问自定义文件?
709浏览 • 1回复 待解决