mikeneko

Response

Responseは、主に画面遷移の操作等を行うためのクラスです。
基本的にResponseはすべて静的メソッドのため
ViewUIとは異なり、派生クラスを作成することはありません。

よって使用するにはimpoertを行った後、直接静的メソッドを使用する形となります。

import { View } from "View";
import { Response } from "Response";

export class HomeView extends View {

    public handle() {

        this.vdios.link1.onClick = () => {
            // link1 のボタンを押したときに、別画面(/page1)に移動
            Response.next("/page1");
        };
    }
}

# 指定画面に移動

指定の画面に移動(画面遷移)するにはResponse.nextメソッドを使用します。
引数にルーティングにて設置したルーティングパスを指定してください。 ルーティングについてはこちらを参照

Response.next("/subpage");

画面移動後は画面遷移の履歴が追加されるため、
Response.back等を使って前画面に戻ることもできます。

# 指定画面に切替

指定の画面に切り替える場合はResponse.replaceメソッドを使用します。
引数にルーティングにて設置したルーティングパスを指定してください。 ルーティングについてはこちらを参照

Response.replace("/subpage");

Response.nextに似ているようですが、
現画面の履歴が切り替え後のものに置き換わるだけとなるため
画面移動後は画面遷移の履歴は追加されます。

よってResponse.back等を使って前画面に戻った場合は切替魔の画面より前の画面に戻ることとなります。

# 前画面に戻る

前画面に戻る場合はResponse.backメソッドを使用します。
(引数は不要です。)

Response.back();

画面遷移の履歴がある場合はその履歴に基づいて前画面に戻ります。
この場合戻り値として@trueを返します 前画面の履歴が存在しない場合は、何も動作は起こりませんが
戻り値としてfalseを返してそれを判定することも可能。

: 複数画面前に戻る場合

Response.backで戻る画面数はデフォルトで1画面前です。
引数で戻す画面数を指定することで2画面以上前に戻すことも可能です。

Response.back(2);

# 画面遷移のロック

画面遷移のロックはResponse.lockを使用します。
trueの場合は画面遷移の実行(Response.nextResponse.back等)は一切行えなくなります。

Response.lock = true;

画面遷移のロックを解除するにはfalseを必ず指定してください。

Response.lock = false;

# 画面遷移履歴の追加

Response.addHistoryを使うと画面遷移の履歴をResponse.nextを使用せずに追加できます。
このメソッドを使用すると実際には画面移動は行われず、履歴のみが追加されます。

Response.addHistory("/subpage2");

# 現画面の履歴のみをクリア

現在表示している画面の履歴をクリアにするにはResponse.popメソッドを使用します。

Response.pop();

# 画面遷移履歴をクリア

画面遷移の履歴をすべてクリアにするにはResponse.historyClearメソッドを使用します。

Response.historyClear();

# 画面遷移状態の取得

画面遷移の状態を取得することもできます。

: 前画面からの戻りかどうかの判定

前画面から戻ってきた場合はisBackにて判定ができます。
戻ってきている場合はtrue、それ以外はfalseとなります。

console.log(Response.isBack);

: 前画面からの進みかどうかの判定

前画面から進んでいる場合はisBackにて判定ができます。
進んでいる場合はtrue、それ以外はfalseとなります。

console.log(Response.isNext);

# 現画面のルーティングパスの取得

現画面のルーティングパスの取得はResponse.nowを使用して取得できます。

console.log(Response.now());

# 現画面のViewクラスオブジェクトの取得

現画面のViewクラスオブジェクトはResponse.nowViewを使用して取得できます。

console.log(Response.nowView);

# 現画面のControllerクラスオブジェクトの取得

現画面のControllerクラスオブジェクトはResponse.nowViewを使用して取得できます。

console.log(Response.nowController);