vueファイルディレクトリ構造の詳細
プロジェクト概要
vue.jsの先端開発環境に基づいて、前後端分離後の単一ページアプリケーション開発に用いられ、開発時にES Next、scssなどの最新の言語特性を使うことができます。プロジェクトの内容:ベースライブラリ:vue.js、vue-router、vuex、whatwg-fetch コンパイル/パッキングツール:webpack、babel、node-sass ユニットテストツール:kama、mocha、sinon-chai ローカルサーバ:express ディレクトリ構造
本プロジェクトはnode.jsに依存しています。使用前にnode.jsとcnpmをインストールしてください。
自分でnode.jsをダウンロードしてインストールします。https://nodejs.org/en/download/
cnpmコマンドをインストールします。
プロジェクトはspa方式に基づいて前後端分離を実現し、サーバーはnginxによってフロントエンドページとバックエンドインターフェース要求を区別し、異なるサービスに配信する。先端は物理的に入口ページだけであり、ルートはフロントエンドによって制御され(vue-routerに基づいて)、それぞれのデータとコンポーネントをローディングしてレンダリングする。
インターフェース
前後の端が分離された後、開発前にインターフェース情報(要求住所、パラメータ、戻り情報など)を定義して、フロントエンドはmockの方式によって、コードを開始できます。バックエンドインターフェースreadyを待つ必要はありません。プロジェクトのローカル開発サーバはexpressに基づいて構築され、expressのミドルウェア機構を通じて、私達はすでにdev-serverにインターフェースmock機能を追加しました。開発時、インターフェースのmockデータは統一的にmockディレクトリの下に置かれています。各ファイルの中には以下のようなものがあります。
開発時はES 2015 module文法を使って、構築時には各ファイルがamdモジュールにコンパイルされます。
コンポーネント化
全体のアプリケーションは、vueコンポーネントの方式で構築され、vue-routerによって対応するコンポーネントの展開を制御し、コンポーネントツリー構造は以下の通りである。
各コンポーネントのためにユニットテストを作成することができます。test/unit/specsディレクトリの下に置いて、ユニットテスト用例のディレクトリ構造提案とテストのファイルは一貫しています。npm run unitを実行するとspec.jsファイルを巡回してテストレポートをtest/unit/coverageディレクトリに出力します。
インターロック方式
前後端分離後、サービスと先端の開発環境が2台の異なるマシンにあるため、先端の非同期要求は後端マシンに代行する必要があります。接続時には、proxyパラメータでdevスクリプトを実行すればいいです。すべてのmockディレクトリで定義されたインターフェースはproxyパラメータで指定されたマシンに転送されます。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
vue.jsの先端開発環境に基づいて、前後端分離後の単一ページアプリケーション開発に用いられ、開発時にES Next、scssなどの最新の言語特性を使うことができます。プロジェクトの内容:
├── README.md
├── index.html
├── build
│ ├── build-server.js ,
│ ├── build.js
│ ├── dev-client.js ,
│ ├── dev-server.js
│ ├── utils.js
│ ├── webpack.base.conf.js wabpack
│ ├── webpack.dev.conf.js wabpack
│ └── webpack.prod.conf.js wabpack
├── config
│ ├── dev.env.js
│ ├── index.js
│ ├── prod.env.js
│ └── test.env.js
├── mock mock
│ └── hello.js
├── package.json npm , npm ,
├── src
│ ├── main.js js
│ ├── app.vue
│ ├── components
│ │ └── title.vue
│ ├── assets , wabpack
│ │ └── images
│ │ └── logo.png
│ ├── routes
│ │ └── index.js
│ ├── store (state)
│ │ └── index.js
│ └── views
│ ├── hello.vue
│ └── notfound.vue
├── static , wabpack 。
└── test (unit&e2e)
└── unit
├── index.js
├── karma.conf.js karma
└── specs case
└── Hello.spec.js
環境のインストール本プロジェクトはnode.jsに依存しています。使用前にnode.jsとcnpmをインストールしてください。
自分でnode.jsをダウンロードしてインストールします。https://nodejs.org/en/download/
cnpmコマンドをインストールします。
npm install -g cnpm --registry=https://registry.npm.taobao.org
クイックスタート
git clone https://github.com/hanan198501/vue-spa-template.git
cd vue-spa-template
cnpm install
npm run dev
コマンドリスト:
# , , , http://localhost:8081
npm run dev
# , "dist" ,
npm run build
# ,
npm run build-server
#
npm run unit
前後端分離プロジェクトはspa方式に基づいて前後端分離を実現し、サーバーはnginxによってフロントエンドページとバックエンドインターフェース要求を区別し、異なるサービスに配信する。先端は物理的に入口ページだけであり、ルートはフロントエンドによって制御され(vue-routerに基づいて)、それぞれのデータとコンポーネントをローディングしてレンダリングする。
インターフェース
前後の端が分離された後、開発前にインターフェース情報(要求住所、パラメータ、戻り情報など)を定義して、フロントエンドはmockの方式によって、コードを開始できます。バックエンドインターフェースreadyを待つ必要はありません。プロジェクトのローカル開発サーバはexpressに基づいて構築され、expressのミドルウェア機構を通じて、私達はすでにdev-serverにインターフェースmock機能を追加しました。開発時、インターフェースのmockデータは統一的にmockディレクトリの下に置かれています。各ファイルの中には以下のようなものがあります。
module.exports = {
//
api: '/api/hello',
// http://expressjs.com/zh-cn/4x/api.html
response: function (req, res) {
res.send(`
<p>hello vue!</p>
`);
}
}
モジュール化開発時はES 2015 module文法を使って、構築時には各ファイルがamdモジュールにコンパイルされます。
コンポーネント化
全体のアプリケーションは、vueコンポーネントの方式で構築され、vue-routerによって対応するコンポーネントの展開を制御し、コンポーネントツリー構造は以下の通りである。
app.vue ( )
├──view1.vue , views , ,
│ ├──component1.vue , components , views
│ ├──component2.vue
│ └──component3.vue
├──view2.vue
│ ├──component1.vue
│ └──component4.vue
└──view3.vue
├──component5.vue
……
ユニットテスト各コンポーネントのためにユニットテストを作成することができます。test/unit/specsディレクトリの下に置いて、ユニットテスト用例のディレクトリ構造提案とテストのファイルは一貫しています。npm run unitを実行するとspec.jsファイルを巡回してテストレポートをtest/unit/coverageディレクトリに出力します。
インターロック方式
前後端分離後、サービスと先端の開発環境が2台の異なるマシンにあるため、先端の非同期要求は後端マシンに代行する必要があります。接続時には、proxyパラメータでdevスクリプトを実行すればいいです。すべてのmockディレクトリで定義されたインターフェースはproxyパラメータで指定されたマシンに転送されます。
# 172.16.36.90:8083
npm run dev -- --proxy=172.16.36.90:8083
このように、もしmockディレクトリにインターフェース/appi/helloが定義されていると、転送されます。http://172.16.36.90/:8083/api/hello以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。