Vue.js命名约定:单实例组件的“子代”

我一直在尝试遵守Vue Style Guide中提出的编码标准,但是我不确定如何解决这种特殊情况。按照指南:

  1. 只应具有一个活动实例的组件应以The前缀开头,以表示只能有一个(link)。
  2. 与父级紧密耦合的子级组件应包括父级组件名称作为前缀(link)。

这些应该如何结合?想象一个典型的带有单实例标题的网页。在其中,我们将具有许多特定于标题的标题链接(它们不会在其他地方出现)。

如果我遵循(1),则标题组件将变为TheHeader,但是如果我也遵循(2),则必须将标题链接命名为TheHeaderLink。这是一种误导,因为通常会有不止一个。如果我删除The的链接,则会失去按字母顺序列出的耦合组件的好处。

相反,如果我放下标题的The并分别使用AppHeaderAppHeaderLink,我将不再传达标题是单例的事实。

我想这可以归结为个人喜好和/或编码团队的标准,但是也许有一些我看不到的约定或解决方案?

fan7286508 回答:Vue.js命名约定:单实例组件的“子代”

鉴于Node.js允许您requireimport folders as modules,我个人很喜欢将子组件(与父组件紧密耦合)“封闭”或组织起来。包含的文件夹,并为其提供一个入口点。

所以,我将从这里...

components/
|- TheHeader.vue
|- TheHeaderLink.vue
|- TheHeaderLogo.vue

...对此:

components/
|- TheHeader/
   |- index.vue
   |- HeaderLink.vue
   |- HeaderLogo.vue

index.vue作为(上述)入口点,基本上是将您原来的TheHeader组件重命名。

当然,您将像往常一样导入它:

import TheHeader from '@/components/TheHeader';
// or
const TheHeader = require('@/components/TheHeader');

但是,是的,我认为这只是一个偏好问题。

本文链接:https://www.f2er.com/2361946.html

大家都在问