diff --git a/packages/dropdown-item/index.js b/packages/dropdown-item/index.js
index 28b7e5c75..1e6ca8587 100644
--- a/packages/dropdown-item/index.js
+++ b/packages/dropdown-item/index.js
@@ -54,6 +54,14 @@ export default sfc({
}
},
+ beforeCreate() {
+ const createEmitter = eventName => () => this.$emit(eventName);
+
+ this.onOpen = createEmitter('open');
+ this.onClose = createEmitter('close');
+ this.onOpened = createEmitter('opened');
+ },
+
render(h) {
const {
zIndex,
@@ -87,8 +95,6 @@ export default sfc({
);
});
- const emit = eventName => () => this.$emit(eventName);
-
const style = { zIndex };
if (direction === 'down') {
style.top = `${offset}px`;
@@ -100,15 +106,15 @@ export default sfc({
{
this.transition = true;
this.showWrapper = false;
diff --git a/packages/popup/index.js b/packages/popup/index.js
index 51e5cb21d..3a14c414a 100644
--- a/packages/popup/index.js
+++ b/packages/popup/index.js
@@ -26,13 +26,20 @@ export default sfc({
}
},
+ beforeCreate() {
+ const createEmitter = eventName => event => this.$emit(eventName, event);
+
+ this.onClick = createEmitter('click');
+ this.onOpened = createEmitter('opened');
+ this.onClosed = createEmitter('closed');
+ },
+
render(h) {
if (!this.shouldRender) {
return;
}
const { position, duration } = this;
- const emit = eventName => event => this.$emit(eventName, event);
const transitionName =
this.transition ||
@@ -46,14 +53,14 @@ export default sfc({
return (
{this.slots()}
diff --git a/packages/sku/components/SkuActions.tsx b/packages/sku/components/SkuActions.tsx
index 7c691dafa..3ffb453fb 100644
--- a/packages/sku/components/SkuActions.tsx
+++ b/packages/sku/components/SkuActions.tsx
@@ -20,7 +20,7 @@ function SkuActions(
slots: DefaultSlots,
ctx: RenderContext
) {
- const emit = (name: string) => () => {
+ const createEmitter = (name: string) => () => {
props.skuEventBus.$emit(name);
};
@@ -32,7 +32,7 @@ function SkuActions(
size="large"
type="warning"
text="加入购物车"
- onClick={emit('sku:addCart')}
+ onClick={createEmitter('sku:addCart')}
/>
)}
);