blog

Vueプロジェクトのディレクトリ構造と起動プロセスの解析

は比較的シンプルで、主にvueをマウントするためのdivを提供します。 main.jsは、vue、app、routerモジュールを導入し、vueオブジェクトを作成し、app.vueテンプレートの内容を...

Mar 5, 2020 · 4 min. read
シェア

一般的なVueプロジェクトのディレクトリ構造

|--config/ #Vue基本設定ファイル。リスニング・ポートやパッケージ出力などを設定できる。
|--node_modules/ #  
|--public
 |--favicon.ico #ラベルアイコン
 |--index.html #現在のプロジェクトで唯一のページ
|--src
 |--assets #静的リソースimg,css,js
 |--api #
 |--components # 
 |--store 
 |--index.js #ルート状態管理セット
 |--modules #モジュール式の状態管理
 |--actions #mutationメソッドを投入して、非同期操作を実行する。
 |--getters #stateのメンバ変数を処理し、外部に渡す
 |--mutation-types.js #プロジェクトが変異メソッド用の定数を保存するファイルで、必要に応じて追加する。
 |--mutations #データの追加、削除、変更など、状態データを操作するためのメソッド集。
 |--index.js
 |--views
 |--xxx.vue
 |--router
 |--index.js #ルーティング・スクリプト・ファイルで、ルーティング・URLとページ構成のマッピングを設定する。
 |--App.vue # 
 |--main.js #エントリー・ファイル
 |--package.json #プロジェクトの設定情報、起動方法など。
 

Vueの実行時の流れ

index.html-->main.js-->App.vue-->router/index.js

index.html ---プロジェクトポータル

index.htmlの内容は比較的単純で、主にvueがマウントするためのdivを提供します。

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8">
 <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width, minimal-ui, viewport-fit=cover" />//モバイル画面に対応する
 <title>ホームのタイトル</title>
 </head>
 <body>
 <div id="app"></div>
 <!-- built files will be auto injected -->
 </body>
</html>

main.js---エントリーファイル

main.jsは主にvue、app、routerモジュールを導入し、vueオブジェクトを作成し、app.vueテンプレートの内容をindex.htmlのappというidを持つdivタグの下にマウントし、ルーティング設定をバインドします。

import Vue from 'vue' /*vueフレームワークを導入する*/
import App from './App' /*ルート・コンポーネントの紹介*/
import router from './router' /*ルーティング設定を導入する*/
import store from './store' /*ルート状態管理セット・ファイルを導入する*/
Vue.config.productionTip = false /*本番モードで表示されるプロンプトをオフにする*/
//ルート・コンポーネントを定義し、renderを使って.vue ,$mount置換インデックスをレンダリングする.htmlのプレースホルダーは
new Vue({
el:'#app',
router,
store,
render:h=>h(App),
}).$mount('#app');

App.vue ---

<template></template><script></script><style></style>Vueでは、多くの場合、拡張子.vueのファイルを作成する必要があり、通常、次の3つの部分から構成されます: 、 。template></template><script></script><style></style>template></template>.vueファイルは、通常、次の3つの部分から構成されています。 .vueは、通常、使用するWebインタフェースを作成し、データを扱い、ロジック指向で、主にタグ内のスタイルを担当します。これら3つのコンポーネントの組み合わせによって、あなたが見ているウェブページが構成されます。一般的に、新しいページを開発する際には、3つのコンポーネントが記述された新しい.vueファイルを作成する必要があります。

<router-view/><router-view/>上記のmain.jsは、index.htmlのdivタグ内にApp.vueテンプレートのコンテンツを配置します。

<template>
 <div id="app">
 <router-view/>
 </div>
</template>
<script>
export default {
 name: "app"
};
</script>
<style>
.add-container {
 margin-bottom: 20px;
}
</style>

.vueファイルを書く際に注意すべき点をいくつか挙げておきます:

  • テンプレートには1つの親ノードしか含めることができません。<router-view></router-view>これは子ルーティングビューであり、後のすべてのルーティングページが表示されます。

  • スクリプトタグの場合、vueは通常es6で記述され、export defaultでエクスポートされ、内部でデータdata、ライフサイクル、メソッドなどを含むことができます。

  • <style></style><style scoped></style>スタイルは style タグでラップされます。デフォルトのスコープはグローバルですが、コンポーネントの下で動作するようにスコープを定義する必要がある場合は、タグに scoped( ) を追加する必要があります。

router.js---ルーティングの設定

routerフォルダの中にindex.jsファイルがあり、これがルート設定ファイルです。下のイメージからわかるように、このファイルは、パス / にアクセスしたときに Home テンプレートの内容を上の router-view に配置するルートを設定します。

import Vue from 'vue';
import Router from 'vue-router';
import Home from 'views/home'
import About from 'views/about'
Vue.use(Router);
export default new Router({
 base:'/'
 routes:[
 {
 path:'/',
 name:'home',
 component:Home
 },
 {
 path:'/about'
 name:'about',
 component:About
 }
 ]
});

ユーザがブラウザでルート / にアクセスすると、ルータプラグインは home.vue ファイルを読み込み、同様に /about は about.vue ファイルを読み込みます。<router-view/>App.vueファイルのプレースホルダを、読み込んだhome.vueファイルまたはabout.vueファイルに置き換えます。

###home.vue

<!--
1) .vueファイルはコンポーネントである
2)コンポーネントはすべて、html構造、jsロジック、cssスタイルの3つの部分から構成されている。
 html構造はすべてtemplateタグの中にあり、ページ構造のルート・タグは1つだけである。
 jsロジックはすべてscriptタグの中にある。,export default
 cssスタイルはすべてstyleタグの中にあり、scoped属性はスタイル・コンポーネント化されるように設定しなければならない。
-->
<template>
 <div class= "home">
 <h1>Home</h1>
 </div>
</template>
<script>
 //.vueファイルはモジュールに似ていて、互いに直接インポートすることができるので、コンポーネント内でエクスポートを設定する必要がある。
 export defalt {
 
 }
</script>
<style scoped>
 .home {
 
 }
</style>
Read next