开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
开发 > 框架 > 自定义组件 > 占位组件
贡献者
收藏
订阅更新
我的文档
设置
在使用静态声明的 懒加载模式分包异步化 特性时,自定义组件 所引用的其它自定义组件,在小程序刚开始进行渲染时可能处于不可用的状态,为了使渲染过程不被阻塞,不可用的自定义组件需要一个 占位组件。基础库会用占位组件替代不可用组件进行渲染,在该组件可用后,再将占位组件替换回该组件。
使用须知
非虚拟化组件节点 和占位组件同时使用时,需要基础库版本 2.8.5 及以上。
小程序基础库2.8.1 版本开始支持占位组件。
目前占位组件必须是另一个 自定义组件
当一个组件被指定为占位组件时(如配置示例中的 hello 组件),再为这个组件指定占位组件是无效的。
如果一个组件需要作为其它组件的占位组件,这个组件必须在一开始就是可用的,如下场景是不可用的。
插件开启懒加载模式后,使用插件提供的自定义组件作为占位组件,则渲染时会报错并抛出异常。
使用分包的组件做为占位组件,如果运行时该分包还未被加载,则渲染时会报错并抛出异常。
如果一个组件不可用,且其占位组件不存在,则渲染时会报错并抛出异常。
如果一个组件不存在,但为其指定了可用的占位组件,则占位组件可以被正常渲染,但后续尝试准备替换时会报错并抛出异常。
配置
componentplaceholder 字段用于指定占位组件。 说明:开发者可在页面或自定义组件对应的 json 中进行配置。
配置示例
在页面的 json 文件中进行配置:
一个组件配置多个占位组件的配置示例:
json
复制代码
{
"usingcomponents": {
"lazy-plugin-hello": "plugin://lazyplugin/hello",
"lazy-plugin-list": "plugin://lazyplugin/list",
"hello": "/components/hello"
},
"componentplaceholder": {
"lazy-plugin-hello": "hello",
"lazy-plugin-list": "hello"
}
}
一个组件配置一个占位组件的配置示例:
该配置表示组件 lazy-plugin-hello 的占位组件为自定义组件 hello(其路径在 usingcomponents 中配置)。假设该配置对应的模板如下:
小程序页面渲染时,当渲染到组件 lazy-plugin-hello,发现是一个懒加载模式的插件,此时插件还未加载完成,会自动进行插件加载,并且页面将被渲染为:
插件加载完成,lazy-plugin-hello 准备完毕后,页面被替换为:
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图