diff --git a/src/action-sheet/README.md b/src/action-sheet/README.md
index 4aa3865d6..591accc8b 100644
--- a/src/action-sheet/README.md
+++ b/src/action-sheet/README.md
@@ -96,6 +96,7 @@ show-cancel | Boolean | true | 是否显示取消按钮 | N
theme | String | list | 展示类型,列表和表格形式展示。可选项:list/grid | N
visible | Boolean | false | 必需。显示与隐藏 | Y
default-visible | Boolean | undefined | 必需。显示与隐藏。非受控属性 | Y
+external-classes | Array | - | 组件类名,用于设置组件外层元素类名。`['t-class', 't-class-content', 't-class-cancel']` | N
### ActionSheet Events
diff --git a/src/action-sheet/__test__/__virtualHostSnapshot__/demo.test.js.snap b/src/action-sheet/__test__/__virtualHostSnapshot__/demo.test.js.snap
new file mode 100644
index 000000000..c0548eabf
--- /dev/null
+++ b/src/action-sheet/__test__/__virtualHostSnapshot__/demo.test.js.snap
@@ -0,0 +1,100 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`ActionSheet ActionSheet align demo works fine 1`] = `
+
+
+
+ 左对齐列表型
+
+
+`;
+
+exports[`ActionSheet ActionSheet grid demo works fine 1`] = `
+
+
+
+ 常规宫格型
+
+
+ 带翻页宫格型
+
+
+`;
+
+exports[`ActionSheet ActionSheet list demo works fine 1`] = `
+
+
+
+ 列表型
+
+
+ 带描述列表型
+
+
+ 带图标列表型
+
+
+`;
+
+exports[`ActionSheet ActionSheet status demo works fine 1`] = `
+
+
+
+ 列表型选项状态
+
+
+`;
diff --git a/src/action-sheet/action-sheet.wxml b/src/action-sheet/action-sheet.wxml
index 552708659..bf8d757cc 100644
--- a/src/action-sheet/action-sheet.wxml
+++ b/src/action-sheet/action-sheet.wxml
@@ -3,7 +3,7 @@
-
+
-
+
diff --git a/src/avatar/avatar.ts b/src/avatar/avatar.ts
index d7edc449e..888516793 100644
--- a/src/avatar/avatar.ts
+++ b/src/avatar/avatar.ts
@@ -14,7 +14,6 @@ export default class Avatar extends SuperComponent {
};
externalClasses = [
- 'class',
`${prefix}-class`,
`${prefix}-class-image`,
`${prefix}-class-icon`,
diff --git a/src/back-top/__test__/__virtualHostSnapshot__/demo.test.js.snap b/src/back-top/__test__/__virtualHostSnapshot__/demo.test.js.snap
new file mode 100644
index 000000000..739b6a071
--- /dev/null
+++ b/src/back-top/__test__/__virtualHostSnapshot__/demo.test.js.snap
@@ -0,0 +1,21 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`BackTop BackTop base demo works fine 1`] = `
+
+
+
+`;
+
+exports[`BackTop BackTop half-round demo works fine 1`] = `
+
+
+
+`;
diff --git a/src/back-top/back-top.wxml b/src/back-top/back-top.wxml
index 80f3c7e46..1d02278b1 100644
--- a/src/back-top/back-top.wxml
+++ b/src/back-top/back-top.wxml
@@ -3,7 +3,7 @@
diff --git a/src/badge/__test__/__virtualHostSnapshot__/demo.test.js.snap b/src/badge/__test__/__virtualHostSnapshot__/demo.test.js.snap
new file mode 100644
index 000000000..c8e698323
--- /dev/null
+++ b/src/badge/__test__/__virtualHostSnapshot__/demo.test.js.snap
@@ -0,0 +1,268 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Badge Badge base demo works fine 1`] = `
+
+
+ 红点徽标
+
+
+
+
+
+
+
+
+ 按钮
+
+
+
+
+ 数字徽标
+
+
+
+
+
+
+
+
+ 按钮
+
+
+
+
+ 自定义徽标
+
+
+
+
+
+
+
+`;
+
+exports[`Badge Badge size demo works fine 1`] = `
+
+
+ Large
+
+
+
+
+
+ Middle
+
+
+
+
+
+`;
+
+exports[`Badge Badge theme demo works fine 1`] = `
+
+
+ 圆形徽标
+
+
+
+
+
+
+
+ 方形徽标
+
+
+
+
+
+
+
+ 气泡徽标
+
+
+
+
+
+
+
+ 角标
+
+
+
+
+
+`;
diff --git a/src/badge/badge.ts b/src/badge/badge.ts
index 016baddae..295a9da27 100644
--- a/src/badge/badge.ts
+++ b/src/badge/badge.ts
@@ -16,7 +16,7 @@ export default class Badge extends SuperComponent {
multipleSlots: true,
};
- externalClasses = ['class', `${prefix}-class`, `${prefix}-class-count`, `${prefix}-class-content`];
+ externalClasses = [`${prefix}-class`, `${prefix}-class-count`, `${prefix}-class-content`];
properties = props;
diff --git a/src/button/__test__/__virtualHostSnapshot__/demo.test.js.snap b/src/button/__test__/__virtualHostSnapshot__/demo.test.js.snap
new file mode 100644
index 000000000..caeac6dbb
--- /dev/null
+++ b/src/button/__test__/__virtualHostSnapshot__/demo.test.js.snap
@@ -0,0 +1,368 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Button Button base demo works fine 1`] = `
+
+
+
+ 填充按钮
+
+
+ 填充按钮
+
+
+ 填充按钮
+
+
+
+
+ 描边按钮
+
+
+ 文字按钮
+
+
+
+`;
+
+exports[`Button Button block-btn demo works fine 1`] = `
+
+
+
+ 填充按钮
+
+
+
+`;
+
+exports[`Button Button disabled demo works fine 1`] = `
+
+
+
+ 填充按钮
+
+
+ 填充按钮
+
+
+ 填充按钮
+
+
+
+
+ 描边按钮
+
+
+ 文字按钮
+
+
+
+`;
+
+exports[`Button Button ghost-btn demo works fine 1`] = `
+
+
+
+ 幽灵按钮
+
+
+ 幽灵按钮
+
+
+ 幽灵按钮
+
+
+
+`;
+
+exports[`Button Button group-btn demo works fine 1`] = `
+
+
+
+ 填充按钮
+
+
+ 填充按钮
+
+
+
+`;
+
+exports[`Button Button icon-btn demo works fine 1`] = `
+
+
+
+
+ 加载中
+
+
+
+
+`;
+
+exports[`Button Button shape demo works fine 1`] = `
+
+
+
+ 填充按钮
+
+
+
+ 填充按钮
+
+
+
+
+ 填充按钮
+
+
+`;
+
+exports[`Button Button size demo works fine 1`] = `
+
+
+
+ 按钮48
+
+
+ 按钮40
+
+
+ 按钮32
+
+
+ 按钮28
+
+
+
+`;
+
+exports[`Button Button theme demo works fine 1`] = `
+
+
+
+ 填充按钮
+
+
+ 描边按钮
+
+
+ 文字按钮
+
+
+
+
+ 填充按钮
+
+
+ 描边按钮
+
+
+ 文字按钮
+
+
+
+
+ 填充按钮
+
+
+ 描边按钮
+
+
+ 文字按钮
+
+
+
+
+ 填充按钮
+
+
+ 描边按钮
+
+
+ 文字按钮
+
+
+
+`;
diff --git a/src/button/button.ts b/src/button/button.ts
index 436f305a6..f52c3bb78 100644
--- a/src/button/button.ts
+++ b/src/button/button.ts
@@ -11,7 +11,7 @@ const name = `${prefix}-button`;
export interface ButtonProps extends TdButtonProps {}
@wxComponent()
export default class Button extends SuperComponent {
- externalClasses = ['class', `${prefix}-class`, `${prefix}-class-icon`, `${prefix}-class-loading`];
+ externalClasses = [`${prefix}-class`, `${prefix}-class-icon`, `${prefix}-class-loading`];
behaviors = canIUseFormFieldButton() ? ['wx://form-field-button'] : [];
diff --git a/src/calendar/__test__/__snapshots__/index.test.js.snap b/src/calendar/__test__/__snapshots__/index.test.js.snap
index 253f60f94..56c5f98c3 100644
--- a/src/calendar/__test__/__snapshots__/index.test.js.snap
+++ b/src/calendar/__test__/__snapshots__/index.test.js.snap
@@ -4,6 +4,7 @@ exports[`calendar :base 1`] = `