[improvement] create emitter (#3656)

This commit is contained in:
neverland
2019-06-27 10:28:37 +08:00
committed by GitHub
parent c0e82773ea
commit 1d9301b158
3 changed files with 27 additions and 14 deletions
+11 -4
View File
@@ -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 (
<transition
name={transitionName}
onAfterEnter={emit('opened')}
onAfterLeave={emit('closed')}
onAfterEnter={this.onOpened}
onAfterLeave={this.onClosed}
>
<div
vShow={this.value}
style={style}
class={bem({ [position]: position })}
onClick={emit('click')}
onClick={this.onClick}
>
{this.slots()}
</div>