我正在用Vue、Nuxt和vuetify编写一个项目,作为UI库.

在我的索引页面中,我必须用幻灯片和 carousel 显示许多静态内容和图像.我已经对它进行了编码,除了我的索引之外,一切都很好.页面目录中的vue文件看起来很凌乱,我觉得里面的代码行太多了.

例如,我有以下代码用于在index.vue中显示 carousel :

<v-carousel 
          height="90vh"
          vertical
          vertical-delimiters="right"
          interval="9000"
          cycle
          :show-arrows="false"
          hide-delimiter-background
        >
          <v-carousel-item
            v-for="(item,i) in carouselItems" :key="i"
            :src="item.src"
            reverse-transition="scroll-y-transition"
            transition="scroll-y-transition"
          >
              <div
                class="d-flex transition-fade-in white--text"
                style="height: 100%;background: linear-gradient(rgba(0,0,0,.1), rgba(0,0,0,.9));"
              >
                  <v-row
                    class="fill-height pb-9 mx-5 flex-column"
                    align="start"
                    justify="end"
                  >
                    <div class="text-h3 white--text d-block mb-2">
                      {{ item.title }}
                    </div>
                    <div class="text-h6 white--text mx-1 text-justify"> {{ item.description }} </div>
                  </v-row>
              </div>
          </v-carousel-item>
        </v-carousel>

现在我的问题是,我应该将这些代码分离成一个组件,并将选项和项目作为props 传递给该组件,还是应该保持原样,让一个页面组件包含多行代码?

推荐答案

这一切都取决于你、你的工作方式以及你/你的团队对拆分成组件的感觉.到目前为止,没有任何标准可以说"一个组件最多需要300行"或类似的内容.

这也可以归结为组件的逻辑,让它们同时做好一件事,而不是做太多.但是,不要过度设计它,让50行组件完全可以是一个组件,因为这也会引入一些不需要的复杂性.

当你觉得它做得太多或太大时,只需编码和拆分.我通常有5行代码的组件,最多300到400行,这取决于它们的复杂性/实现.

Vue.js相关问答推荐

VueJS使所有组件崩溃,而不是只有一个

仅在构建时为 Vue3 和 TailwindCSS 添加前缀

Nuxt3-Vue中的useRoute和useRouter有什么区别

v-slot: activator 中 {attrs} 参数的作用是什么?

使用 nuxt.js 组件自动导入对性能不利吗?

Vue + Webpack 构建显示空白页面

Vue Table 2 - 自定义过滤器

在 vue 3 中使用 vue-chartjs:createElement 不是函数

如何为 Vue 应用提供 robots.txt

如何在 Vue.js 中使用 MaterializeCss?

Vue 和 TypeScript 所需的props

使用 VueJS 在 v-for 中转换

错误:vue-loader 要求 @vue/compiler-sfc 存在于依赖树中

使用 Vue.js 的用户可切换自定义主题

Laravel Blade 模板将数据传递给 Vue JS 组件

Nuxt 应用程序在刷新动态路由时返回 404(Tomcat 服务器)

vue 3 使用 Vuex 和路由的服务器端渲染

Vuetify RTL 风格

mount() 仅在组件 Vue.js 上运行一次

JQuery 不适用于 Vuejs