【发布时间】:2020-06-10 23:40:18
【问题描述】:
在创建 Vue 组件时,如何决定何时将一个组件分离为具有多个子组件的父组件,而不是一个具有更多逻辑的组件?
我在非 SPA 网站的几个地方使用 Vue。在站点的一个页面上,我需要显示一个项目列表,每个项目旁边都有一些图标来执行一些简单的操作,例如显示/隐藏。我将列表构建为 Vue 组件,我们称之为 ProductList。但我不确定是否将该列表中的每个项目都设为单独的组件。什么时候适合将一个组件拆分成多个子组件?
我自己的推理告诉我,组件应该只为需要能够独立存在的事物创建。由于这些项目不会在列表之外使用,因此将它们放在一个单独的 ProductListItem 组件中并放在 ProductList 组件中是没有意义的。我应该只拥有 ProductList 组件中的所有代码。对吧?
但是当我查看互联网上的其他示例时,其中许多都讲述了不同的故事。例如,我记得看到一个示例,其中有一个 Article 组件、一个 ArticleTitle 组件、一个 ArticleBody 组件和一个 ArticleEnd 组件(或类似的东西)。文章组件的模板中包含<article-title>、<article-body> 和<article-end>。如果 ArticleTitle 组件或 ArticleBody 组件仅在 Article 组件内部使用,而不是独立使用,为什么还要将它作为一个单独的组件呢?我在这里错过了什么吗?是否有技术标准来决定是否具有多个组件或只是个人喜好?
【问题讨论】:
标签: vue.js vue-component