一、LazyForEach: 数据懒加载
LazyForEach 必须在容器组件内使用,仅有 List、Grid、Swiper 以及 WaterFlow 组件支持数据懒加载(可配置 cachedCount 属性,即只加载可视部分以及其前后少量数据用于缓冲),其他组件仍然是一次性加载所有的数据。支持数据懒加载的父组件根据自身及子组件的高度或宽度计算可视区域内需布局的子节点数量,高度或宽度的缺失会导致部分场景懒加载失效。
List 设置 cachedCount 后,显示区域外上下各会预加载并布局 cachedCount 行 ListItem。计算 ListItem 行数时,会计算 ListItemGroup 内部的 ListItem 行数。如果 ListItemGroup 内没有 ListItem,则整个 ListItemGroup 算一行。
List 下嵌套使用 LazyForEach,并且 LazyForEach 下嵌套使用 ListItemGroup 时,LazyForEach 会在 List 显示区域外上下各会创建 cachedCount 个 ListItemGroup。
二、ohos.data.preferences (用户首选项)
- getPreferences(context: Context, name: string): Promise:获取 Preferences 实例,使用 Promise 异步回调。
- getPreferences(context: Context, options: Options, callback: AsyncCallback): void:获取 Preferences 实例,使用 callback 异步回调。
- getPreferencesSync(context: Context, options: Options): Preferences:获取 Preferences 实例,此为同步接口。
三、@Builder 装饰器:自定义构建函数
装饰器使用说明 @Builder 装饰器有两种使用方式,分别是定义在自定义组件内部的私有自定义构建函数和定义在全局的全局自定义构建函数。
使用方法: 允许在自定义组件内定义一个或多个@Builder 函数,该函数被认为是该组件的私有、特殊类型的成员函数。 私有自定义构建函数允许在自定义组件内、build 函数和其他自定义构建函数中调用。 在自定义组件中,this 指代当前所属组件,组件的状态变量可在自定义构建函数内访问。建议通过 this 访问组件的状态变量,而不是通过参数传递。
四、User-Agent 开发指导
通过 setCustomUserAgent() 接口设置自定义用户代理,但请注意,此操作会覆盖系统的用户代理。因此,我们建议将扩展字段追加在默认用户代理的末尾,比如三方应用程序的开发场景,可以在系统默认用户代理字符串的末尾追加特定的 APP 标识,这样既能保留原有用户代理信息,又能增加自定义的应用识别信息。
当 Web 组件 src 设置了 url 时,建议在onControllerAttached回调事件中设置 User-Agent,设置方式请参考示例。不建议将 User-Agent 设置在 onLoadIntercept 回调事件中,会概率性出现设置失败。如果未在 onControllerAttached 回调事件中设置 User-Agent,再调用 setCustomUserAgent 方法时,可能会出现加载的页面与实际设置 User-Agent 不符的异常现象。
当 Web 组件 src 设置为空字符串时,建议先调用 setCustomUserAgent 方法设置 User-Agent,再通过 loadUrl 加载具体页面。
五、Profile Manager
在 Create Profile 界面,填写新增设备的信息,如 Profile ID(设备型号)、Device type(设备类型)、Resolution(分辨率)和 Language and region(语言和区域)等。其中 Device type 只能选择 module.json5 中 deviceTypes 字段已定义的设备。
六、UIAbility 组件启动模式
singleton(单实例模式)、multiton(多实例模式)、specified(指定实例模式)。 说明:standard 是 multiton 的曾用名,效果与多实例模式一致。
如果需要使用 singleton 启动模式,在 module.json5 配置文件中的 launchType 字段配置为 singleton 即可。
{
"module":


