index.vue 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <template>
  2. <PageWrapper title="懒加载基础示例" content="向下滚动到可见区域才会加载组件">
  3. <div class="lazy-base-demo-wrap">
  4. <h1>向下滚动</h1>
  5. <div class="lazy-base-demo-box">
  6. <LazyContainer>
  7. <TargetContent />
  8. <template #skeleton>
  9. <Skeleton :rows="10" />
  10. </template>
  11. </LazyContainer>
  12. </div>
  13. </div>
  14. </PageWrapper>
  15. </template>
  16. <script lang="ts">
  17. import { defineComponent } from 'vue';
  18. import { Skeleton } from 'ant-design-vue';
  19. import TargetContent from './TargetContent.vue';
  20. import { LazyContainer } from '/@/components/Container/index';
  21. import { PageWrapper } from '/@/components/Page';
  22. export default defineComponent({
  23. components: { LazyContainer, PageWrapper, TargetContent, Skeleton },
  24. });
  25. </script>
  26. <style lang="less">
  27. .lazy-base-demo {
  28. &-wrap {
  29. display: flex;
  30. width: 50%;
  31. height: 2000px;
  32. margin: 20px auto;
  33. text-align: center;
  34. background-color: @component-background;
  35. justify-content: center;
  36. flex-direction: column;
  37. align-items: center;
  38. }
  39. &-box {
  40. width: 300px;
  41. height: 300px;
  42. }
  43. h1 {
  44. height: 1300px;
  45. margin: 20px 0;
  46. }
  47. }
  48. </style>