親コンテナ1およびアクティビティ・コンテナ・コンポーネントの作成
イントロダクション
この学習パス・シリーズの最後に開発したOracle JavaScript Extension Toolkit (Oracle JET)仮想DOMアプリケーションは、次のイメージに示すコンポーネントで構成されます。つまり、ParentContainer1
コンポーネントには、アクティビティのリストを表示するActivityContainer
コンポーネントが含まれます。アクティビティが選択されると、コンポーネント(ActivityItemContainer
)を含む2番目の親コンポーネント(ParentContainer2
)がレンダリングされ、選択したアクティビティに関連付けられたアイテムのリストが表示されます。最後に、アクティビティ・アイテムを選択すると、選択したアクティビティ・アイテムに関する価格設定および在庫レベル情報を表示するItemDetailContainer
コンポーネントがレンダリングされます。
目的
このチュートリアルでは、Oracle JET仮想DOMアプリケーションの基本的なコンポーネントの一部を構成します。アプリケーション・レイアウトのビジュアライゼーションを支援するために、コンテナの周囲に境界および色を表示するためにOracle JET oj-panel
およびoj-bg
スタイル・クラスも追加します。これらのスタイル・クラスは、最終アプリケーションから削除できます。
前提条件
- Node.jsのインストールを含むOracle JET仮想DOMアプリケーションを作成するために設定された開発環境
- Oracle JETクックブックへのアクセス
- (オプション1)このシリーズの前の学習パスの最終チュートリアルの完了: Oracle JET仮想DOMアプリケーションのデプロイの準備
- (オプション2)このシリーズで前の学習パスを完了していない場合: ダウンロードした
jet_virtual_dom_app_temp.zip
タスク1: スタータ仮想DOMアプリケーションのダウンロード
前の学習パスで作成したアプリケーションで作業を続行する場合は、このタスクをスキップします。
-
jet_virtual_dom_app_temp.zip
の名前をJET-Virtual-DOM-app.zip
に変更します。内容をJET-Virtual-DOM-app
ディレクトリに抽出します。 -
JET-Virtual-DOM-app
ディレクトリに移動し、Oracle JET仮想DOMアプリケーションをリストアします。npx @oracle/ojet-cli restore
仮想DOMアプリケーションを使用する準備ができました。
タスク2: 品目詳細コンポーネントの作成
最後の学習パスで仮想DOMアプリケーションをスキャフォールドしたときに、Content
コンポーネントが作成されました。このコンポーネントの名前を変更して、次のチュートリアルで作成するParentContainer2
コンポーネントによってレンダリングされる子コンポーネントであるItemDetailContainer
としてリファクタリングします。
-
JET-Virtual-DOM-app/src/components
ディレクトリで、content
ディレクトリの名前をItemDetail
に変更します。次に、その中のindex.tsx
ファイルの名前をItemDetailContainer.tsx
に変更します。ノート:エディタで、名前を変更したファイルまたはディレクトリでインポートを更新するかどうかを尋ねるプロンプトが表示された場合は、次のVisual Studio Codeからのメッセージのように、「いいえ」をクリックして続行します。
-
ItemDetailContainer.tsx
で、行export function Content() {
をconst ItemDetailContainer = () => {
に変更します。次に、ItemDetailContainer
コンポーネントのexport
文をファイルの末尾に追加します。const ItemDetailContainer = () => { . . . }; export default ItemDetailContainer;
-
ItemDetailContainer
コンポーネントのreturn
文の先頭を、oj-label
要素までの次のコードに置き換えます。div
には、コンテナに灰色の背景色を追加するOracle JEToj-bg
スタイル・クラスが含まれています。return ( <div id="itemDetailsContainer" class="oj-bg-neutral-30"> <h3>Item Details</h3> <oj-label for="basicSelect">Select Chart:</oj-label> . . .
-
renderListItem
関数を削除し、return
文の末尾から最後の終了</div>
タグを削除します。 -
ファイルを保存して閉じます。
コードは
item-detail-container-tsx.txt
のようになります。
タスク3: コンテンツ・コンポーネントの作成
Content
コンポーネントを再作成します。このコンポーネントは、アプリケーションのタイトルと、次のタスクで作成するParentContainer1
コンポーネントのPreact要素を表示します。
-
JET-Virtual-DOM-app/src/components
ディレクトリに、空のContent.tsx
ファイルを含むContent
ディレクトリを作成します。 -
ファイルの上部に次のimport文を追加します。
ParentContainer1
コンポーネントは、このチュートリアルの後半で作成します。import { h } from "preact"; import ParentContainer1 from "../ParentContainer1";
-
Content
コンポーネントのファンクション定義を作成します。const Content = () => { return ( ); }
-
関数の
return
文で、h1
ヘッダーProduct Informationを含むdiv
と、作成するコンポーネントにアクセスするためのParentContainer1
要素を追加します。const Content = () => { return ( <div class="oj-web-applayout-max-width oj-web-applayout-content"> <h1>Product Information</h1> <ParentContainer1 /> </div> ); }
-
ファイルの最後に、
Content
コンポーネントのexport
文を追加します。export default Content;
-
ファイルを保存して閉じます。コードは content- tsx.txtに似ています。
-
JET-Virtual-DOM-app/src/components
ディレクトリで、エディタでapp.tsx
ファイルを開きます。ファイルの上部で、import { Content } from "./content/index";
のコード行を見つけ、それを編集してimport Content from "./Content/Content";
を読み取ります。 -
ファイルを保存して閉じます。
タスク4: 親コンテナ1コンポーネントの作成
作成する残りのコンポーネントの親コンテナ・コンポーネントである親コンテナ1コンポーネントを作成します。
-
JET-Virtual-DOM-app/src/components
ディレクトリに、ParentContainer1.tsx
ファイルを作成します。 -
次の
import
文をファイルの上部に追加します。ActivityContainer
コンポーネントは、このチュートリアルの後半で作成します。import { h } from "preact"; import ActivityContainer from "./Activity/ActivityContainer";
-
ActivityContainer
要素を含むdiv
を返すParentContainer1
コンポーネントのファンクション定義を作成します。div
要素には、コンテナに黄色の背景色を追加するOracle JEToj-bg
スタイル・クラスと、境界を作成するoj-panel
スタイル・クラスが含まれます。const ParentContainer1 = () => { return ( <div id="parentContainer1" class="oj-panel oj-bg-warning-20"> <ActivityContainer /> </div> ); };
-
ファイルの最後に、
ParentContainer1
コンポーネントのexport
文を追加します。export default ParentContainer1;
-
ファイルを保存して閉じます。
コードは parent-container1-tsx.txtのようになります。
タスク5: アクティビティ・コンテナ・コンポーネントの作成
ParentContainer1
コンポーネントによってレンダリングされる子コンポーネントであるActivityContainer
コンポーネントを作成します。ActivityContainer
コンポーネントは、ヘッダーおよびアクティビティのリストをレンダリングします。
-
JET-Virtual-DOM-app/src/components
ディレクトリに、Activity
ディレクトリとその中にActivityContainer.tsx
ファイルを作成します。 -
ファイルの上部で、次の
import
文を追加します。import { h, ComponentProps } from "preact";
-
h3
HTMLヘッダー・アクティビティおよびアクティビティのリストを含むdiv
要素を返すActivityContainer
コンポーネントのファンクション定義を作成します。div
には、コンテナに青の背景色を追加するためのOracle JEToj-bg
スタイル・クラスが含まれています。const ActivityContainer = () => { return ( <div id="activitiesContainer" class="oj-bg-info-30"> <h3 id="activitiesHeader">Activities</h3> <div id="activitiesItems" class="item-display no-wrap"> <ul> <li class="li-item">Baseball</li> <li class="li-item">Bicycling</li> <li class="li-item">Skiing</li> <li class="li-item">Soccer</li> </ul> </div> </div> ); };
-
ファイルの最後に、
ActivityContainer
コンポーネントのexport
文を追加します。export default ActivityContainer;
-
ファイルを保存して閉じます。
コードは
activity-container-tsx.txt
に似ています。 -
JET-Virtual-DOM-app/src/styles
ディレクトリに移動し、エディタでapp.css
ファイルを開きます。item-display
、no-wrap
およびli-item
スタイル・クラスをファイルの末尾に追加します。.item-display { width: 100%; height: 100%; max-height: 500px; overflow-x: hidden; overflow-y: auto; } .no-wrap { flex-wrap: nowrap; } .li-item { list-style-type: none; font-size: 1rem; font-weight: 500; }
-
ファイルを保存して閉じます。
コードは
app-css.txt
に似ています。
タスク6: 仮想DOMアプリケーションの実行
-
ターミナル・ウィンドウで、
JET-Virtual-DOM-app
ディレクトリからアプリケーションを実行します。npx @oracle/ojet-cli serve
親コンテナ1 (黄色)内のアクティビティ・コンテナ(青)には、アクティビティ名のリストが表示されます。アイテム詳細コンテナは、別のコンポーネント内にまだレンダリングされていないため表示されません(次のチュートリアルで作成した親コンテナ2コンポーネントに追加されます)。
-
実行中の仮想DOMアプリケーションを表示するブラウザ・ウィンドウまたはタブを閉じます。
-
端末ウィンドウでCtrl+Cを押し、プロンプトが表示されたら、
y
と入力してOracle JETツール・バッチ・ジョブを終了します。
次のステップ
この学習パスの次のチュートリアルに進むには、ここをクリックしてください。
その他の学習リソース
他のラボをdocs.oracle.com/learnで探すか、Oracle LearningのYouTubeチャネルでより無料の学習コンテンツにアクセスします。また、education.oracle.com/learning-explorerにアクセスしてOracle Learningエクスプローラになります。
製品のドキュメントは、Oracle Help Centerを参照してください。
Create parent container 1 and activity container components
F72917-01
December 2022
Copyright © 2022, Oracle and/or its affiliates.