LoginSignup
5
5

More than 5 years have passed since last update.

[Vue.js] htmlタグと重複するコンポーネント名の命名規則をどうするか

Last updated at Posted at 2017-07-25

Vue.jsでコンポーネントを作成するときにHeader.vueなどhtmlタグとかぶってしまうコンポーネント名をつけたいときにどうすれば良いのか困ったので調べてみました。

調べた限りだと以下の3つのパターンが存在します。

1. htmlタグとかぶるコンポーネントはそもそも作らない

Vue.jsの公式でも紹介されているvue-hackernews-2.0をみて見ると、headerなどのhtmlと被りそうなコンポーネントは存在しません。

個人プロジェクトや小規模の案件だと問題なさそうですが、ヘッダーやフッターをコンポーネントに切り出したい場合もあると思うのでちょっと微妙です。

2 . AppNameHeader.vueのようにprefixをつける

AppAppName のようにprefixをつければhtmlタグとの名称の衝突を回避できます。

ただ、すべてのコンポーネントにprefixをつけるのもめんどくさく、htmlタグと重複するものだけにprefixをつけるのも微妙ですね・・・

3. htmlタグと重複したコンポーネント名を許容しつつコンポーネントを読み込むときに任意の名前をつける

Header.vue を作成して、コンポーネントを読み込むときに v-header などとします。
App.vueを以下のようにするイメージです。

<script>
import Header from '@/components/Header'
export default {
  name: 'app',
  components: {
    'v-header': Header
  }
}
</script>

AppNameHeader.vueのようにprefixをつける

と発想は同じですが、こちらの方がコンポーネント名もすっきりするので今のところこの方法が1番良いかなと思っています。( v- とするとVue.jsの機能かな?と読み手が感じるケースがあるかもしれません)

この3つ以外の方法があったり、これがベストプラクティスだ!という方法があれば教えて欲しいです。


この記事は[Vue.js] htmlタグと重複するコンポーネント名の命名規則をどうするかからの転載です。

5
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5