Vueの使用
このセクションでは、JavaScriptライブラリVue.jsについて説明します。
プロジェクト構造
JHipsterクライアントコードはsrc/main/webapp
の下にあります。
私たちのアプリケーション構造、ファイル名、TypeScriptの規則について質問がある場合は、まずこのガイドをお読みください。
生成されたVueアプリケーションでは、vue-class-componentスタイルとガイドラインに従ってTypeScriptを使用することに注意してください。
Vueルートの場合は、URLが明確で一貫性があるように、dash caseの命名規則に従います。 エンティティを生成すると、この規則に従ってルート名、ルートURL、およびREST APIエンドポイントURLが生成され、必要に応じてエンティティ名が自動的に複数化されます。
プロジェクトの主な構成は次のとおりです。
webapp
├── app - アプリケーション
│ ├── account - アカウント関連のコンポーネント
│ ├── admin - 管理関連のコンポーネント
│ ├── core - メインコンポーネント(Home、navbarなど)
│ ├── entities - 生成されたエンティティ
│ ├── locale - I18n/翻訳関連コンポーネント
│ ├── router - ルーティング設定
│ ├── shared - 構成、モデル、utilクラスなどの共有要素
│ ├── app.component.ts - アプリケーションのメインクラス
│ ├── app.vue - アプリケーションのメインSFCコンポーネント
│ ├── constants.ts - グローバルアプリケーション定数
│ ├── main.ts - インデックススクリプト、アプリケーションエントリポイント
│ └── shims-vue.d.ts
├── content - イメージやフォントなどの静的ファイルが格納されます。
├── i18n - 翻訳ファイル
├── swagger-ui - Swagger UIフロントエンド
├── 404.html - 404ページ
├── favicon.ico - お気に入りアイコン
├── index.html - 索引ページ
├── manifest.webapp - アプリケーションマニフェスト
└── robots.txt - ボットおよびWebクローラの構成
エンティティサブジェネレータを使用してFoo
とい う名前の新しいエンティティを作成すると、src/main/webapp
の下に次のフロントエンドファイルが生成されます。
webapp
├── app
│ ├── entities
│ │ └── foo - FooエンティティのCRUDフロントエンド
│ │ ├── foo-details.vue - SFC構成要素の詳細
│ │ ├── foo-detail.component.ts - 詳細ページコンポーネント
│ │ ├── foo-update.vue - SFC構成要素を作成/更新
│ │ ├── foo-update.component.ts - 作成/更新コンポーネントクラス
│ │ ├── foo.vue - エンティティメインSFCコンポーネント
│ │ ├── foo.component.ts - Entityメインコンポーネントクラス
│ │ └── foo.service.ts - Fooエンティティサービス
│ ├── router
│ │ └── index.ts - エンティティメインルートの設定
│ └── shared
│ └── model
│ └── foo.model.ts - エンティティモデルクラス
└── i18n - 翻訳ファイル
├── en - 英訳
│ ├── foo.json - Foo名、フィールド、.の英語翻訳
└── fr - フランス語翻訳
└── foo.json - Foo名、フィールド、.のフランス語翻訳
デフォルトの言語変換は、アプリケーションの生成時に選択した内容に基づいて行われることに注意してください。'en'および'fr'は、ここではデモンストレーションのためにのみ示されています。
VuexStoreを使用して保存
アプリケーションは、ストアVuexStoreを使用して、アプリケーション内の状態を維持します。
このストアは、起動時にapp/config/config.ts:initVueXStore
に設定されます。新しい状態やミューテーションを追加するには、Vuexのドキュメントを参照してください。
アプリケーションはこのストアを使用して、次の項目を維持します。
- ユーザー認証情報
- 言語と翻訳
- 通知およびアラート情報
- アクティブなプロファイルデータ
認証
JHipsterは、Vueルー ターを使用して、アプリケーションのさまざまな部分を整理します。
認証を必要とするルートに関しては、メタauthorities
が望ましいルートで使用されます。このコンポーネントは、認証されていない、または許可されていないユーザーがルートにアクセスするのを防ぎます。
PrivateRouteでの使用例を次に示します。
const Routes = () => [{
path: '/public',
name: 'public',
component: Public
},
{
path: '/private',
name: 'Private',
component: Private,
meta: { authorities: ['ROLE_USER'] }
}];
このように、認証されていないユーザーは/public
にアクセスできますが、/private
にアクセスするには少なくともログインする必要があります。
インターセプターは、ユーザーが認証されているかどうかを知るために、$store.getters.authenticated
ストア値を使用することに注意してください。