💡
原文中文,约3300字,阅读约需8分钟。
📝
内容提要
@Track是一个用于状态变量UI更新的属性装饰器。被@Track装饰的属性变化时,仅触发相关UI更新,避免冗余刷新。未标记的属性不能在UI中使用,可能导致错误。建议开发者避免混用不同类型的class对象。
🎯
关键要点
- @Track是用于状态变量UI更新的属性装饰器。
- 被@Track装饰的属性变化时,仅触发相关UI更新,避免冗余刷新。
- 未标记的属性不能在UI中使用,可能导致错误。
- 建议开发者避免混用不同类型的class对象。
- 从API version 11开始,@Track装饰器支持在ArkTS卡片中使用。
- 装饰器参数为无,可装饰的变量为class对象的非静态成员属性。
- @Track没有深度观测功能,使用它可避免冗余刷新。
- 示例中,@Track装饰的属性变化时,相关UI节点会更新,而未装饰的属性则会导致冗余刷新。
- 不能在UI中使用非@Track装饰的属性,错误使用将导致JSCrash。
- 可在非UI中使用非@Track属性,如事件回调函数、生命周期函数中。
- 使用@Track和自定义组件时,@Track属性变化会导致组件重新渲染。
❓
延伸问答
@Track装饰器的主要功能是什么?
@Track装饰器用于状态变量的UI更新,仅在相关属性变化时触发UI更新,避免冗余刷新。
使用@Track装饰器时需要注意哪些限制?
不能在UI中使用未被@Track装饰的属性,错误使用可能导致JSCrash。
@Track装饰器支持在哪个API版本中使用?
@Track装饰器从API version 11开始支持在ArkTS卡片中使用。
未标记为@Track的属性会有什么后果?
未标记的属性不能在UI中使用,可能导致错误和冗余刷新。
如何避免冗余刷新?
使用@Track装饰器可以避免冗余刷新,因为它只在相关属性变化时触发UI更新。
在什么情况下可以使用非@Track属性?
非@Track属性可以在非UI环境中使用,如事件回调函数和生命周期函数中。
➡️