From 46e158fa0172e08d5a5c6371abcba543c26fb346 Mon Sep 17 00:00:00 2001 From: chenjiahan Date: Mon, 14 Sep 2020 20:46:13 +0800 Subject: [PATCH] perf(Overlay): lazy render --- src/overlay/index.js | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/overlay/index.js b/src/overlay/index.js index 87da81781..a19a58418 100644 --- a/src/overlay/index.js +++ b/src/overlay/index.js @@ -1,6 +1,7 @@ import { Transition } from 'vue'; import { createNamespace, isDef, noop } from '../utils'; import { preventDefault } from '../utils/dom/event'; +import { useLazyRender } from '../composition/use-lazy-render'; const [createComponent, bem] = createNamespace('overlay'); @@ -22,7 +23,9 @@ export default createComponent({ }, setup(props, { slots }) { - return function () { + const lazyRender = useLazyRender(() => props.show); + + const renderOverlay = lazyRender(() => { const style = { zIndex: props.zIndex, ...props.customStyle, @@ -33,17 +36,17 @@ export default createComponent({ } return ( - -
- {slots.default?.()} -
-
+
+ {slots.default?.()} +
); - }; + }); + + return () => {renderOverlay()}; }, });