代码之家  ›  专栏  ›  技术社区  ›  Luiz Alves

如何在vuetify timeline中使用虚拟滚动

  •  0
  • Luiz Alves  · 技术社区  · 4 年前

    我正在使用vuetify框架中的vuetify timeline组件。

    嗨,我有一个类似于vuetify timeline的示例( https://codepen.io/luizalves/pen/bGoxEvz?editors=101 ).

    我的问题是,当有很多项目时,向下滚动时dom需要很长时间来呈现时间线项目。

    我怎么能用v-virtual-scroll来解决这个问题,或者像延迟加载这样的东西呢?

    密码

        <div id="app">
          <v-app id="inspire">
            <v-timeline
              align-top
              :dense="$vuetify.breakpoint.smAndDown"
            >
              <v-timeline-item
                v-for="(item, i) in items"
                :key="i"
                :color="item.color"
                :icon="item.icon"
                fill-dot
              >
                <v-card
                  :color="item.color"
                  dark
                >
                  <v-card-title class="text-h6">
                    Lorem Ipsum Dolor
                  </v-card-title>
                  <v-card-text class="white text--primary">
                    <p>Lorem ipsum dolor sit amet, no nam oblique veritus. Commune scaevola imperdiet nec ut, sed euismod convenire principes at. Est et nobis iisque percipit, an vim zril disputando voluptatibus, vix an salutandi sententiae.</p>
                    <v-btn
                      :color="item.color"
                      class="mx-0"
                      outlined
                    >
                      Button
                    </v-btn>
                  </v-card-text>
                </v-card>
              </v-timeline-item>
            </v-timeline>
          </v-app>
        </div>
    
        new Vue({
          el: '#app',
          vuetify: new Vuetify(),
          data: () => ({
            items: [
              {
                color: 'red lighten-2',
                icon: 'mdi-star',
              },
              {
                color: 'purple darken-1',
                icon: 'mdi-book-variant',
              },
              {
                color: 'green lighten-1',
                icon: 'mdi-airballoon',
              },
              {
                color: 'indigo',
                icon: 'mdi-buffer',
              },
            ],
          }),
        })
    
    0 回复  |  直到 4 年前
        1
  •  0
  •   Ferry Kranenburg    4 年前

    你试过这样的吗?你可以替换 v-for 循环并将其交给虚拟滚动组件。

    <v-virtual-scroll
          :items="items"
          :item-height="50"
          height="300"
        >
          <template v-slot:default="{ item }">
              <v-timeline-item
                :color="item.color"
                :icon="item.icon"
                fill-dot
              >
    
    ....
    
    推荐文章