From b76adf4aa420e7f5c5b45c3c33234157096e304c Mon Sep 17 00:00:00 2001 From: DCloud-yyl Date: Wed, 11 Sep 2024 19:06:08 +0800 Subject: [PATCH] Update uts-plugin.md --- docs/plugin/uts-plugin.md | 51 ++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/docs/plugin/uts-plugin.md b/docs/plugin/uts-plugin.md index 4d73cfab..a5179bcf 100644 --- a/docs/plugin/uts-plugin.md +++ b/docs/plugin/uts-plugin.md @@ -1852,11 +1852,12 @@ utsJsonObj.forEach(function(perField:any){ `UTS插件`导出的方法中的回调函数参数触发一次后立即自动回收,避免内存泄漏,也就是默认情况下回调函数 callback 只能触发一次。这次调整可能带来向下兼容的问题,导致方法中的回调函数参数无法持续回调。 影响范围: `HBuilderX4.25+版本 iOS 平台的 uni-app 和 uni-app x 项目, Android平台的 uni-app 项目,顶层方法或者自定义 class 中的静态方法或者实例方法` -如果回调函数参数需支持可持续触发, 按以下方案进行适配: +如果回调函数参数需支持可持续触发, 按以下方案进行适配: + 将方法名称调整为`以 on 开头,且仅有一个 callback 类型的参数`,如下示例: ```ts function onTest(callback : (msg : string) => void) { - //... + //... } ``` @@ -1864,8 +1865,8 @@ function onTest(callback : (msg : string) => void) { 通过装饰器(注解) `@UTSJS.keepAlive` 声明方法中的回调函数参数一直存活(不自动回收),支持回调函数可持续触发回调,如下示例: ```ts export type Options = { - a: string - success: (res: string) => void + a: string + success: (res: string) => void } // 以 on 开头,且仅有一个 callback 类型的参数的函数 @@ -1890,35 +1891,34 @@ export function testOption(option : Options) { // 以上规则在自定义class中同样适用 export class Test { - onTest(callback : (msg : string) => void) { - callback("a") - callback("b") - } - - @UTSJS.keepAlive - testOption(option : Options) { - option.success("a") - option.success("b") - } - - + onTest(callback : (msg : string) => void) { + callback("a") + callback("b") + } + + @UTSJS.keepAlive + testOption(option : Options) { + option.success("a") + option.success("b") + } + @UTSJS.keepAlive test(callback : (msg : string) => void) { callback("a") callback("b") } - - @UTSJS.keepAlive - static testStatic(callback : (msg : string) => void) { + + @UTSJS.keepAlive + static testStatic(callback : (msg : string) => void) { callback("a") callback("b") } - - @UTSJS.keepAlive - static testOptionStatic(option : Options) { - option.success("a") - option.success("b") - } + + @UTSJS.keepAlive + tatic testOptionStatic(option : Options) { + option.success("a") + option.success("b") + } } ``` @@ -1928,6 +1928,7 @@ export class Test { > 2. 目前装饰器不支持 export const test:Test = ()=>{} // 这种导出方式,需要使用export function test(){} + ## Bug & Tips@tips ### uniapp项目安卓环境 不支持函数重载 -- GitLab