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')} /> )}
);