Elm-commands
Elm-コマンド
前の章では、Elmアーキテクチャのさまざまなコンポーネントとその機能について説明しました。 ユーザーとアプリケーションは、メッセージを使用して互いに通信します。
アプリケーションが外部サーバー、API、マイクロサービスなどの他のコンポーネントと通信する必要がある例を考えてみましょう。 ユーザーリクエストを処理します。 これは、Elmのコマンドを使用して実現できます。 メッセージとコマンドは同義ではありません。 メッセージはエンドユーザーとアプリケーション間の通信を表し、コマンドはElmアプリケーションが他のエンティティと通信する方法を表します。 コマンドは、メッセージに応答してトリガーされます。
次の図は、複雑なElmアプリケーションのワークフローを示しています-
ユーザーはビューと対話します。 ビューは、ユーザーのアクションに基づいて適切なメッセージを生成します。 更新コンポーネントはこのメッセージを受信し、コマンドをトリガーします。
構文
コマンドを定義するための構文は以下のとおりです-
ビューによって生成されたメッセージはコマンドに渡されます。
図
次の例では、APIにリクエストを作成し、APIからの結果を表示します。
アプリケーションはユーザーから番号を受け取り、それをNumbers APIに渡します。 このAPIは、数値に関連する事実を返します。
アプリケーションのさまざまなコンポーネントは次のとおりです-
Httpモジュール
ElmのHttpモジュールは、HTTPリクエストの作成と送信に使用されます。 このモジュールはコアモジュールの一部ではありません。 このパッケージをインストールするには、elmパッケージマネージャーを使用します。
API
この例では、アプリケーションはNumbers APIと通信します(「http://numbersapi.com/#42」)。
View
アプリケーションのビューには、テキストボックスとボタンが含まれています。
モデル
モデルは、ユーザーが入力した値と、APIによって返される結果を表します。
メッセージ
アプリケーションには、次の3つのメッセージがあります-
- ShowFacts
- 入力
- NewFactArrived
_Show Facts_ボタンをクリックすると、_ShowFacts_メッセージが更新メソッドに渡されます。 ユーザーがテキストボックスに値を入力すると、_Input_メッセージがupdateメソッドに渡されます。 最後に、Httpサーバーの応答を受信すると、_NewFactArrived_メッセージが更新に渡されます。
更新
updateメソッドは、モデルとコマンドオブジェクトを含むタプルを返します。 ユーザーが[ファクトの表示]ボタンをクリックすると、メッセージが更新プログラムに渡され、更新プログラムがNumbersAPIを呼び出します。
ヘルパー機能
ヘルパー関数_getRandomNumberFromAPI_はNumbersAPIを呼び出し、ユーザーが入力した番号をそれに渡します。 APIによって返された結果は、モデルの更新に使用されます。
Sr. No. | Method | Signature | Description |
---|---|---|---|
1 | Http.getString | getString : String → Request String | Create a GET request and interpret the response body as a String. |
2 | Http.send | send:(Result Error a → msg) → Request a → Cmd msg | Send a Http request. |
main
これがElmプロジェクトのエントリポイントです。
すべてを一緒に入れて
- ステップ1 *-CommandAppフォルダーとCommandDemo.elmファイルを作成します。
- ステップ2 *-コマンド_elm package install elm-lang/http_を使用してhttpモジュールをインストールします。
- ステップ2 *-以下に示すようにCommandDemo.elmの内容を入力します-
- ステップ4 *-コマンドを実行します。
これにより、以下に示すようにhtmlファイルが生成されます。