質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

2回答

1349閲覧

Vueコンポーネント、ディレクトリ名

退会済みユーザー

退会済みユーザー

総合スコア0

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2019/04/22 02:58

編集2019/04/22 03:01

Vueのコンポーネントのディレクトリ名について

https://jp.vuejs.org/v2/style-guide/index.html#%E5%AF%86%E7%B5%90%E5%90%88%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%81%AE%E5%90%8D%E5%89%8D-%E5%BC%B7%E3%81%8F%E6%8E%A8%E5%A5%A8

こちらの公式の文章を読みました

特定の親コンポーネントのみに使用される子コンポーネントの名前には、その親コンポーネントの名前がプレフィックスとしてつけられますが、その子コンポーネントが、親コンポーネントと同じ名前のディレクトリに属する場合がどうしたら良いでしょうか。

分かりづらくて申し訳ないですが以下2パターンのうちどちらが正しいのでしょうか

"1".

file) Parent.vue
directory) Parent
|_file) ParentChild.vue

"2".

file) Parent.vue
directory) Parent
|_file) Child.vue

electron-vueのテンプレートでは

file) LandingPage.vue
directory) LandingPage
|_file) SystemInformation.vue

という構成になっているのですが、

LandingPageSystemInformation.vue

というファイル名にはなってません。

従って2のパターンが正しいのでしょうか

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

質問文で参照されているスタイルガイド

この問題を、子コンポーネントを親コンポーネントの名前を元に命名したディレクトリの中に入れることで解決したいと思うかもしれません。
例えば:

components/
|- TodoList/
|- Item/
|- index.vue
|- Button.vue
|- index.vue
もしくは:

components/
|- TodoList/
|- Item/
|- Button.vue
|- Item.vue
|- TodoList.vue
これは推奨されません。以下のような結果を生むからです:

同じような名前のファイルがたくさんできてしまい、コードエディタ上で素早くファイルを切り替えるのが難しくなります。
ネストしたサブディレクトリがたくさんできてしまい、エディタのサイドバーでコンポーネントを参照するのに時間がかかるようになります。

とあるので1も2も、electron-vueもこのスタイルガイドには従っていないのではないでしょうか。
あくまでスタイルガイドなので、electron-vueがそうしているように、従わないのも選択肢のひとつですね!

投稿2019/04/24 01:27

de9

総合スコア312

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/05/08 02:28

完全に見落としてました。 1つのディレクトリでプレフィックス込みの命名をするというのが公式の推奨なんですね...。
guest

0

ベストアンサー

自分はelectron-vueに似た構成をよく使います。

file structureに関しては悩みますよね。reactとvueの経験がありますが、あまり公式に従わなくてもいいかと思いますし、どれが答えってのもないと思います。
Nuxt.jsをを使うなどFrameworkを使う場合はそれに準拠する必要がありますが、Vueはあくまでライブラリなので。

最近vueのコンポネントを作るときに以下のような構成で作ることが多いです。

text

1components/ 2 |- Parent/ 3 |- index.js 4 |- Parent.vue 5 |- Child.vue 6 |- LandingPage/ 7 |- index.js 8 |- LandingPage.vue 9 |- SystemInformation.vue 10 11 ... 12 13 |- shared/ # or commonとか? 14 |- index.js 15 |- Button/ 16 |- index.js 17 |- Button.vue

コンポネントを使うときは

js

1import Parent from './components/Parent' // .vueなし 2import { Button } from './components/shared'

とやっています。

これがおすすめというわけではないですが、個人的に

  • .vueを書くのが好きでない
  • 関連コンポネントをカプセル化したい
  • Prefixをつけていくとファイル名が長くなり冗長になりがちになり、ファイル名のコンポネントを表す名前がわかりにくくなるため

という理由でやっています。

参考になれば幸いです。

投稿2019/04/22 10:16

odyu

総合スコア548

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/04/24 00:51 編集

回答ありがとうございます すみません、わたしはまだまだ経験が浅く、.vueとおなじところに格納されてるindex.jsの意味がまだよく分かりません…(;_;) これはいったいなんなのでしょうか…
odyu

2019/04/24 00:57

import hoge from './src/hnge' とやったら src/hoge/index.js を探しに行ってくれます。
退会済みユーザー

退会済みユーザー

2019/05/08 02:31

今日ついさっき、社内会議でこの質問を公開し、odyuさんの回答をとても参考にさせていただきました。 公式の推奨より、electron-vueに似た構成の方が分かりやすいという結論に私たちもなりました。 本当にありがとうございました。
odyu

2019/05/08 02:40

こちらこそ、参考になってよかったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問