Vueプロジェクトのビューとコンポーネントフォルダーの違いは何ですか?


128

コマンドライン(CLI)を使用してVue.jsプロジェクトを初期化しました。CLI作成src/componentsし、src/viewsフォルダを。

Vueプロジェクトで作業してから数か月が経ちましたが、フォルダー構造は初めてのようです。

で生成されたVueプロジェクトのviewscomponentsフォルダーの違いは何vue-cliですか?


4
どちらも単一ファイルのビューコンポーネントであるという意味で、それらが異なるとは思いません。ただし、ページビュー(Home.vue、About.vue、Checkout.vue)は、コンポーネント(Button.vue、LoadingSpinner.vueなど)から分離しておくことができます
Jeff

これは、構造の違いに光を当てています:blog.pusher.com/new-vue-cli-simplizes-development
connexo

10
@ジェフはあなたが政治家である、そうでなければあなたはそうするべきです。Opsの質問を繰り返しましたが、なんとか回答のように見せることができました。笑。
PrestonDocks 2018

回答:


176

まず、両方のフォルダーsrc/componentssrc/viewsにVueコンポーネントが含まれています。

主な違いは、一部のVueコンポーネントがルーティングのビューとして機能することです。

Vueでルーティングを処理するとき、通常はVueルーターで、コンポーネントで使用されている現在のビューを切り替えるためにルートが定義され<router-view>ます。これらのルートは通常にあり、src/router/routes.js次のようなものが表示されます。

import Home from '@/views/Home.vue'
import About from '@/views/About.vue'

export default [
  {
    path: '/',
    name: 'home',
    component: Home,
  },
  {
    path: '/about',
    name: 'about',
    component: About,
  },
]

下にsrc/componentsあるコンポーネントはルートで使用される可能性が低くなりますが、下にあるコンポーネントsrc/viewsは少なくとも1つのルートで使用されます。


Vue CLIは、Vueエコシステムの標準的なツールベースラインになることを目指しています。これにより、さまざまなビルドツールが適切なデフォルトとスムーズに連携し、構成に何日も費やすのではなく、アプリの作成に集中できます。同時に、イジェクトする必要なしに、各ツールの構成を微調整する柔軟性も提供します。

Vue CLIはVue.jsの迅速な開発を目指しており、物事をシンプルに保ち、柔軟性を提供します。その目標は、さまざまなスキルレベルのチームが新しいプロジェクトをセットアップして開始できるようにすることです。

結局のところ、それは利便性とアプリケーション構造の問題です

  • 一部の人々は、このエンタープライズ定型文のsrc/routerように Viewsフォルダーを配置したいと考えています。
  • ビューではなくページと呼ぶ人もいます。
  • 一部の人々は同じフォルダの下にすべてのコンポーネントを持っています。

作業中のプロジェクトに最適なアプリケーション構造を選択してください。


6
これは100%正しいです。自分にとって意味のある方法でアプリを構築できます。私は個人的にすべてのルートに「src / pages」を使用しています。そのフォルダに、サイトの各「エリア」ごとにサブフォルダを作成します。「src / pages / questions」の例とそのフォルダーには、質問のリストを含むindex.vueがあります。質問などを追加するためのページとなるadd.vueを用意します。これらの「ページ」は、通常、必要なコンポーネントを組み立てて「ページ」を構成するだけです。私の「SRC /コンポーネント」で、私は...など、ナビゲーション、フォーム要素、カスタム共有コンポーネント、のようなもののためにサブフォルダを作成するフォルダ
ティムWickstrom

ポップアップ/モーダルウィンドウなどのコンポーネントはsrc/componentsこの規則に従っていると思いますか?
Simon Thiel

@ Ricky、Anthone Gore著の本 'Full-Stack Vue.js 2 and Laravel 5'のgithubにあるソースコードに関連するVue.JSの質問をご覧になるようお願いします:stackoverflow.com/questions/ 59245577 /…?特に、EDITを見てみましょう:OPのセクション
Istiaqueアーメド

ビュー内のコンポーネントはコンポーネントのコレクションであると言えますか?たとえば、リストビューに複数のコンポーネントを含めることができ、これらのコンポーネントはビュー内の単一のコンポーネント内に格納/ラップされますか?
Aayush

20

私はそれは慣習のようなものだと思います。再利用可能なものはsrc / componentsフォルダーに保持でき、ルーターに関連付けられたものはsrc / viewsに保持できます。


6

通常、再利用可能なビューはsrc/componentsディレクトリに配置することをお勧めします。ヘッダー、フッター、広告、グリッド、またはカスタムコントロールなどの例は、スタイル付きテキストボックスやボタンなどです。ビュー内で1つ以上のコンポーネントにアクセスできます。

ビューはコンポーネントを持つことができ、ビューは実際にはナビゲーションURLからアクセスすることを目的としています。通常はに配置されsrc/viewsます。

URL経由でコンポーネントにアクセスする必要はありません。コンポーネントを自由に追加してrouter.jsアクセスすることもできます。ただし、そうする場合はsrc/views、に配置するのではなく、に移動できますsrc/components

コンポーネントは、asp.net Webフォームに類似したユーザーコントロールです。

メンテナンスと読みやすさを向上させるためにコードを構造化することについてです。


1

両方のフォルダーはコンポーネントを保持するため、基本的に同じですが、Vueの美観は、ページとして機能するコンポーネント(ナビゲーション用に同じページにルーティングされる)は/viewsフォルダーに保持され、フォームフィールドなどの再利用可能なコンポーネントは/componentsフォルダーに保持されることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.