开发

扩展组件

宿主可以封装一些固定的组件,扩展到 extension 包中,作为正常的组件提供给宿主的小程序开发者使用。

原理

智能小程序提供的组件与视图渲染,是基于开源的 San 框架开发的。智能小程序运行时会将 swan-extension 模块中定义的 components 与智能小程序本身提供的 components 合并,一起注册到组件工厂中,其中组件名为“宿主名-组件名”,提供给小程序开发者使用。

扩展方法

以宿主 hostA 扩展 view 组件举例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const components = {
'view': {
behaviors: ['userTouchEvents'],
template: '<div>'
+ '<div class="test-title">{{title}}</div>'
+ '<p><slot></slot></p>'
+ '</div>';
initData() {
return {
title: 'Extension Component Title'
}
},
attached() {
console.log('Extension Component Attached');
},
detached() {
console.log('Extension Component Detached');
}
}
};

宿主小程序开发者的使用方式为<hostA-view bindtap="tap">xxx</hostA-view>,此处的 “hostA” 为 swan-extension 模块中的 name 属性,即宿主的名字。
具体内部详细的组件定义、描述、生命周期等信息,请参考 San 官网