MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Photino.Blazor - ルーティングのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Photino.Blazor - ルーティング
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Photino.NETは、デスクトップアプリケーションのための軽量なフレームワークであり、そのルーティングシステムもシンプルながら効果的な設計となっている。<br> <br> 基本的なルーティングの仕組みとして、Photino.NETではシングルページアプリケーション (SPA) のような形式でルーティングを実装する。<br> メインウインドウにおいて、JavaScriptを使用してコンテンツの切り替えを行う。<br> <br> 一般的に、ルーティングの実装方法として、以下に示すようなアプローチを取る。<br> # まず、PhotinoWindowクラスのインスタンスを生成して、初期URLを設定する。<br>これは、アプリケーションのエントリーポイントとなる。 #: <syntaxhighlight lang="c#"> var window = new PhotinoWindow() .Load("wwwroot/index.html"); </syntaxhighlight> # フロントエンド側では、JavaScriptのルーティングライブラリ (例: Navigo) を使用してルーティングを管理する。<br>これにより、シングルページアプリケーションを提供することが可能となる。 <br> 重要な点では、Photino.NETではバックエンド (C#) とフロントエンド (JavaScript) 間の通信が可能である。<br> これを利用して、ルーティングに関連する処理をバックエンド側で実装することもできる。<br> <syntaxhighlight lang="c#"> window.WebMessageReceived += (sender, message) => { if (message.Contains("navigate:")) { var route = message.Replace("navigate:", ""); // ルーティング処理の実装 } }; </syntaxhighlight> <br> また、Photino.NETのルーティングシステムは、デフォルトで外部URLへのナビゲーションを制限している。<br> これは意図しないナビゲーションを防ぐための重要な機能である。<br> <br> ディープリンクの実装も可能であり、これによりデスクトップアプリケーションでありながら、Webアプリケーションのような柔軟なナビゲーションを提供することができる。<br> <br> また、ルーティングに関連するエラーハンドリングでは、404エラーや不正なルートへのアクセスに対して、適切なエラーページやフォールバックを実装することが推奨される。<br> <br> カスタムスキームの実装も可能であり、これにより、アプリケーション固有のURLスキームを定義して特別なルーティング要件に対応することができる。<br> <br><br> == ルーティングの設定 == Photinoアプリケーションのルーティングの基本設定を行い、以下に示す機能を提供する。<br> これはBlazorの標準的なルーティング設定であり、SPAアプリケーションのナビゲーション機能を実現するために必要な基本的な設定となっている。<br> <br> * 正しいURLの場合は対応するページを表示する。 * 存在しないページにアクセスした場合は、エラーページを表示する。 * 全てのページに共通のレイアウトを適用する。 <br> 以下の例では、Blazor向けのルーティング設定を行っている。<br> <br> <syntaxhighlight lang="xml"> <!-- App.razorファイル --> <!-- Blazor向けのルーティング設定を行うコンポーネント --> @using PhotinoSample.Shared <!-- SharedディレクトリにMainLayout.razorファイルがあるものとする --> <Router AppAssembly="@typeof(App).Assembly"> <Found Context="routeData"> <RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" /> <FocusOnNavigate RouteData="@routeData" Selector="body" /> </Found> <NotFound> <PageTitle>Not found</PageTitle> <LayoutView Layout="@typeof(MainLayout)"> <p role="alert">Sorry, there's nothing at this address.</p> </LayoutView> </NotFound> </Router> </syntaxhighlight> <br> * <Router>タグ *: Blazorアプリケーションのルーティングを制御する主要なコンポーネントである。 *: AppAssembly属性は、ルーティング情報を含むアセンブリを指定する。 *: 上記の例は、Appクラスを含むアセンブリ *: <br> * <Found>タグ *: ルートが見つかった場合の処理を定義する。 ** <RouteView>タグ **: 実際のページコンテンツを表示する。 **: 上記の例において、DefaultLayout属性は、MainLayoutをデフォルトレイアウトとして指定している。 ** <FocusOnNavigate>タグ **: ナビゲーション後にフォーカスを設定する機能を提供する。 *: <br> * <NotFound>タグ *: URLが見つからない場合 (404エラー) において、表示内容を定義する。 *: <PageTitle>タグは、ページタイトルを設定する。一般的には、エラーメッセージを表示する。 <br> また、上記の例において、<u>@using PhotinoSample.Shared</u>はBlazorのusingディレクティブのシンタックスであり、PhotinoSample.Shared名前空間をインポートする宣言である。<br> <br> * @ *: BlazorのRazor構文であることを示すシンボルである。 * using *: C#のusingステートメントと同じ働きをする。 * PhotinoSample.Shared *: インポートする名前空間 *: 上記の例では、この名前空間には、MainLayout.razorファイル等の共有コンポーネントが含まれている。 *: <br> *: Sharedフォルダ / 名前空間には、アプリケーション全体で共有されるコンポーネントやレイアウトが配置されるのが一般的である。 <br> この宣言により、PhotinoSample.Sharedに含まれるコンポーネントを完全修飾名 (PhotinoSample.Shared.MainLayout等) を使用せずに直接参照できる。 <syntaxhighlight lang="xml"> <!-- 例: --> <!-- @using宣言がない場合 --> @typeof(PhotinoSample.Shared.MainLayout) <!-- @using宣言がある場合 --> @typeof(MainLayout) // より簡潔に記述できる </syntaxhighlight> <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:C_Sharp]]
Photino.Blazor - ルーティング
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse