在使用分包异步化或用时注入特性时,自定义组件所引用的其他自定义组件在最初渲染时可能不可用。为了不阻塞渲染过程,不可用的自定义组件需使用占位组件(Component placeholder) 。基础库将用占位组件替换不可用组件进行渲染,当该组件可用时再将其替换回来。
自定义组件的占位组件可以是另一个自定义组件或一个内置组件。
页面或自定义组件对应的JSON配置中的componentPlaceholder字段用于指定占位组件,如:
{
"usingComponents": {
"comp-a": "./comp/compA"
},
"componentPlaceholder": {
"comp-a": "view"
}
} 该配置表示:
组件 comp-a 的占位组件为内置组件 view。
如果配置对应模板如下:
<comp-a>占位组件</comp-a>
comp目录下compA.hxml:
<view>compA</view>
在元服务启动时,页面将被渲染为:
<view>占位组件</view>
框架在comp-a注入完成后才会将占位组件替换。
<view>compA</view>