ページリンククリック時に、ページコンテンツ読み込み前にJavaScriptを実行する方法は?

こんにちは :wave:

現在、ページ遷移前にスクリプトを実行できる Plugin-API のメソッドはありません。私の記憶では、そのような要件はこれまで上がっていなかったためです。

ただし、アプリケーションルートにある willTransition() アクションを活用することができます。

テーマやコンポーネントでは、以下のようなコードを使用します。

// 遷移後に実行されます
api.onPageChange((url, title) => {
  console.log("after transition");
});

// 遷移直前に実行されます
api.modifyClass("route:application", {
  pluginId: "some-name",
  actions: {
    willTransition() {
      // まずコアコードを実行
      this._super(...arguments);
      // 次に処理を実行
      console.log("before transition");
      // _router など、利用可能なデータを確認するために以下のようなこともできます
      console.log(this)
    }
  }
});