最近、シェル->ビューとappContainer->ビューを使用して2つのUI5アプリを作成しました。どちらも同じ出力になります。 UI5でShell、App、Container、Page、View、SplitAppをいつ使用するか混乱しています。
それらの違いを知りたいのですが。また、経験から上記のコンテナを使用するためのベストプラクティスについて説明してください。
グラフィカルな説明は理解に大いに役立ちます。
そうです、コンテナコントロールはたくさんあり、これは混乱を招く可能性があります。それでは、簡単な概要を説明しましょう。
シェルは、ここでは当然のことですが、ビューに使用できる親コンテナです。ただし、他のコンテナーとは対照的に、大型デバイスのアプリ幅を制限できます。アプリケーションでこれを実現したい場合は、これがあなたのコントロールです。
sap.m.App
とsap.m.SplitApp
の両方が、おそらく最も使用されている親コントロールです。実際、モバイルデバイスでのエクスペリエンスを向上させるためにHTMLを変更するため、そのうちの1つは常にモバイルアプリケーションの一部である必要があります(詳細については、 sap/ui/util/Mobile.init を参照してください)。もちろん、それらはどのシェルの子でもかまいません。さらに、それらはsap.m.NavContainer
を拡張し、したがってナビゲーション機能を提供するため、重要です。たとえば、sap.m.App
にはpages
集計があります。 to
を呼び出すことで、あるページから別のページに簡単に移動できます(ルーティングを使用すると、これはルーターによって実行されます)。 sap.m.SplitApp
には2つのNavContainerが含まれています。 1つはマスターエリア用で、もう1つは詳細エリア用です。さらに、アプリケーション全体で1つのバックグラウンドを管理できます。
コンテナについて話すと、sap.m.SplitContainer
に言及する必要があります。基本的には、sap.m.SplitApp
と同じ機能を提供しますが、アプリケーションにはアプリ(sap.m.App
またはsap.m.SplitApp
)が1つしかないため、このコントロールを使用して、アプリケーションをさらに深くナビゲートすると、マスター/詳細ビューが表示されます。
ビュー(およびJSView
、XMLView
、HTMLView
などのすべてのサブタイプ)は、1つの単純なページまたはページの領域を反映します。他のすべてのコンテナーとは対照的に、ビューにはコントローラーが関連付けられている場合があり、MVCのビュー/コントローラー部分を実装できます。
フラグメントは、ビューの軽量バリアントです。これらはビューのように使用され、同様に動作しますが、デフォルトではコントローラーが関連付けられていません。ただし、必要に応じて、コントローラーの代替として機能する単純なオブジェクトを使用できます。フラグメントは、ユーザーインターフェイスの特定の部分を別のファイルに外部化する(場合によっては複数回再利用する)場合に使用できます。
アプリケーションのアーキテクチャに関しては、表示する内容によって異なります(制限されたアプリの幅、マスター/詳細など)。ほぼすべての組み合わせが可能ですが、アプリケーションごとに1つのAppオブジェクトのみを使用することをお勧めします。いずれかのシェルの機能が必要ない場合は、それを省略して、アプリオブジェクトを最上位のコンテナーにすることができます。アーキテクチャの例は次のようになります。
sap.m.Shell内のSplitAppまたはSplitContainer
sap.m.Shell
sap.m.SplitApp
sap.ui.core.view.XMLView (Master)
sap.m.Page
sap.ui.core.view.XMLView (Detail)
sap.m.Page
シェルなしのSplitAppまたはSplitContainer
sap.m.SplitApp
sap.ui.core.view.XMLView (Master)
sap.m.Page
sap.ui.core.view.XMLView (Detail)
sap.m.Page
sap.m。シェル内のsap.m.App
sap.m.Shell
sap.m.App
sap.ui.core.view.JSView
sap.m.Page
シェルなしのsap.m.App
sap.m.App
sap.ui.core.view.XMLView
sap.m.Page