Vue-masonry 插件不适用于 Vuetify

Vue-masonry plugin doesn't work with Vuetify

我尝试通过 vue-masonry 插件实现砌体网格。我使用 Nuxt 和 Vuetify。似乎 vue-masonry 不能与 vuetify 一起工作。

  1. 我将 vue-masonry 作为插件 (vue-masonry.js) 连接到我的 Nuxt 项目

    import Vue from 'vue'
    import {VueMasonryPlugin} from 'vue-masonry'
    
    Vue.use(VueMasonryPlugin)
    
  2. 我在nuxt.config.js

    中设置了插件
    plugins: [
       { src: '~/plugins/vue-masonry', ssr: false }
    ],
    
  3. 接下来我尝试将 vuetify grid 与 vue-masonry 一起使用,但这里的东西坏了

     <template>
       <v-container>
         <v-row>
           <v-col
             xs="12"
             sm="6"
             md="4"
             lg="3"
             v-for="card in cards"
             :key="card.id"
             v-masonry
             origin-left="true"
             horizontal-order="true"
             transition-duration="0.3s"
             item-selector=".item"
           >
             <v-card v-masonry-tile class="item" max-width="240">
               <v-card-title>{{card.title}}</v-card-title>
               <v-card-text class="text-ellipsis">{{card.text}}</v-card-text>
             </v-card>
           </v-col>
         </v-row>
       </v-container>
     </template>
    
     <script>
     export default {
       data() {
         return {
           cards: [
             {
               id: 1,
               title: "title",
               text:
                 "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make",
             },
             {
               id: 2,
               title: "new one",
               text:
                 "Lorem Ipsum has when an unknown printer took a galley of type and scrambled it to make",
             },
             {
               id: 3,
               title: "title",
               text:
                 "Lorem Ipsum is simply dummy text of the printing and typesetting industry. took a galley of type and scrambled it to make",
             },
             {
               id: 4,
               title: "title",
               text:
                 "Lorem Ipsum is simply dummy. Lorem Ipsum has been the when an unknown printer took a galley of type and scrambled it to make",
             },
             {
               id: 5,
               title: "title",
               text:
                 "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the when an unknown printer took a galley of type and scrambled it to make",
             },
             {
               id: 6,
               title: "title",
               text:
                 "Lorem Ipsum is simply dummy text of the printing and typesetting industry.  a galley of type and scrambled it to make",
             },
             {
               id: 7,
               title: "title",
               text:
                 "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the when an unknown printer took a galley of type and scrambled it to make",
             },
             {
               id: 8,
               title: "title",
               text:
                 "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the when an unknown printer took a galley",
             },
             {
               id: 9,
               title: "title",
               text:
                 "Lorem Ipsum has been the when an unknown printer took a galley of type and scrambled it to make",
             },
             {
               id: 10,
               title: "title",
               text: "Lorem Ipsum is simply industry.",
             },
           ],
         };
       },
     };
     </script>
    

masonry grid 没有出现,只是用卡片清除 vuetify cols。

如何使用 vuetify 实现砌体网格?我很高兴使用 vuetify 提出任何建议和实施砌体网格。

我用 vuetify 为 vue-masonry 找到了正确的网格解决方案!它就像一个魅力 =)

<template>
  <v-container>
    <v-row
      v-masonry
      origin-left="true"
      horizontal-order="true"
      transition-duration="0.3s"
      item-selector=".item"
    >
      <v-col
        v-masonry-tile
        class="item"
        v-for="card in cards"
        :key="card.id"
        xs="3"
        sm="6"
        md="4"
        lg="3"
      >
        <v-card>
          <v-card-title>{{ card.title }} {{ card.id }}</v-card-title>
          <v-card-text>{{ card.text }}</v-card-text>
        </v-card>
      </v-col>
    </v-row>
  </v-container>
</template>