mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-24 02:16:12 +08:00
feat: add use-lazy-render
This commit is contained in:
parent
bd41102cf3
commit
d9e9879465
13
src/api/use-lazy-render.ts
Normal file
13
src/api/use-lazy-render.ts
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
import { ref, Ref, watch } from 'vue';
|
||||||
|
|
||||||
|
export function useLazyRender(show: Ref<boolean>) {
|
||||||
|
const inited = ref(show.value);
|
||||||
|
|
||||||
|
watch(show, (value) => {
|
||||||
|
if (value) {
|
||||||
|
inited.value = value;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return inited;
|
||||||
|
}
|
@ -6,6 +6,7 @@ import { raf, doubleRaf } from '../utils/dom/raf';
|
|||||||
|
|
||||||
// Composition
|
// Composition
|
||||||
import { useParent } from '../api/use-relation';
|
import { useParent } from '../api/use-relation';
|
||||||
|
import { useLazyRender } from '../api/use-lazy-render';
|
||||||
|
|
||||||
// Components
|
// Components
|
||||||
import Cell from '../cell';
|
import Cell from '../cell';
|
||||||
@ -42,7 +43,7 @@ export default createComponent({
|
|||||||
});
|
});
|
||||||
|
|
||||||
const show = ref(expanded.value);
|
const show = ref(expanded.value);
|
||||||
const inited = ref(expanded.value);
|
const shouldRender = useLazyRender(show);
|
||||||
|
|
||||||
const onTransitionEnd = () => {
|
const onTransitionEnd = () => {
|
||||||
if (!expanded.value) {
|
if (!expanded.value) {
|
||||||
@ -59,7 +60,6 @@ export default createComponent({
|
|||||||
|
|
||||||
if (value) {
|
if (value) {
|
||||||
show.value = true;
|
show.value = true;
|
||||||
inited.value = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use raf: flick when opened in safari
|
// Use raf: flick when opened in safari
|
||||||
@ -118,7 +118,7 @@ export default createComponent({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const renderContent = () => {
|
const renderContent = () => {
|
||||||
if (inited.value) {
|
if (shouldRender.value) {
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
ref={wrapper}
|
ref={wrapper}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user