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
相关问题
HarmonyOS 如何自定义tab
294浏览 • 2回复 待解决
HarmonyOS 如何自定义BuildMode?
399浏览 • 1回复 待解决
自定义弹窗自定义转场动画
922浏览 • 1回复 待解决
HarmonyOS 如何设置自定义字体
680浏览 • 1回复 待解决
HarmonyOS Checkbox如何自定义图标
228浏览 • 0回复 待解决
HarmonyOS 自定义键盘
165浏览 • 1回复 待解决
HarmonyOS如何自定义视频组件样式
339浏览 • 1回复 待解决
HarmonyOS如何自定义组件的Controller?
207浏览 • 1回复 待解决
HarmonyOS 如何制作自定义加载弹窗
251浏览 • 1回复 待解决
HarmonyOS 应用名称如何自定义配置?
22浏览 • 0回复 待解决
HarmonyOS 数字自定义键盘如何实现
227浏览 • 1回复 待解决
HarmonyOS如何手动重置自定义组件?
261浏览 • 1回复 待解决
如何访问自定义文件?
642浏览 • 1回复 待解决
如何自定义Component 属性
14881浏览 • 3回复 待解决
HarmonyOS 使用自定义字体
138浏览 • 1回复 待解决
HarmonyOS 自定义弹窗选择
272浏览 • 1回复 待解决
HarmonyOS 自定义Slider样式
229浏览 • 1回复 待解决
HarmonyOS TextInput自定义键盘
277浏览 • 1回复 待解决
HarmonyOS 自定义相机demo
143浏览 • 1回复 待解决