最近、Ant Design Blazor コンポーネント ライブラリにマルチタブ コンポーネントを実装する需要が高まっています。そこで、週末を利用して、`Tabs` コンポーネントをベースにした `ReuseTabs` コンポーネントを Blazor の組み込みルーティング コンポーネントと組み合わせて実装しました。 最近、Ant Design Blazor コンポーネント ライブラリにマルチタブ コンポーネントを実装する需要が高まっています。そこで、週末を利用して、 序文Blazor は、.NET の最新のフロントエンド フレームワークです。WebAssembly または SignalR (WebSocket) に基づいてフロントエンド アプリケーションを構築できます。WebAssembly ホスティング モデルに基づく Blazor は、オフラインでも実行できます。さらに、.NET クラスライブラリを共有できるため、従来の JS ベースのフロントエンドとバックエンドの分離モデルと比較して、コード量を 1/3 に削減できます。 .NET 開発者は、使い慣れたテクノロジと経験を活用してフロントエンド アプリケーションを開発できるようになりました。異なるテクノロジ スタックを持つ開発者間の通信コストも大幅に削減され、生産性がさらに向上します。 つまり、Blazor は .NET 開発者にとってもう 1 つの生産性向上テクノロジーなのです。 Blazor コミュニティ エコシステムのオープン ソース UI コンポーネント ライブラリを使用することで、よく使用されるコンポーネントがカプセル化され、ユーザーは JS や CSS を記述する必要がなくなり、コミュニティの .NET 開発者から高い評価を得ています。現在、Blazor をベースに構築されたエンタープライズレベルのアプリケーションが多数導入・リリースされており、企業に徐々に認知されつつあります。 文章複数のタブを多重化するルーティングとはこの記事のタイトルにあるルート再利用は、Angularの Blazor は C# コードを再利用できるという利点があるため、バックグラウンド管理システムの構築によく使用され、タブの使用が一般的な要求となっています。ただし、公式の Blazor チームはそのようなコンポーネントを直接提供していないため、実装するにはコミュニティのパートナーが必要です。 しかし、コミュニティ内のいくつかのオープンソース コンポーネント ライブラリを見ると、それらはすべて一般的な Tabs タブ コンポーネントのみを実装しており、切り替えパネルとしてのみ使用できます。 「マルチタブ」機能を実装するには、サポートされていないか、独自のメニュー コンポーネントとレイアウト コンポーネントに直接的または間接的に依存し、ページ ファイル パスに依存し、ページ コンポーネント タイプを結合し、最後にリフレクションを使用してページ コンポーネントを作成する必要があります... マルチタブ機能は実装されていますが、実装はあまりエレガントではありません。結合度が非常に高く、コンポーネントライブラリ自身のフレームワークレイアウトでのみ使用でき、個別に使用することはできません。また、リフレクションのパフォーマンスも良くなく、規約に従ってページを配置する必要があり、ユーザーにさまざまな制限を課しています。 もちろん、コミュニティ内で流通しているより認知度の高いソリューションとして、 Ant Design Blazor の ReuseTabs コンポーネント最近、Ant Design Blazor コンポーネント ライブラリにマルチタブ コンポーネントを実装する需要が高まっています。そこで、週末の時間を利用して、 主な特徴
以下では、dotnet new テンプレート プロジェクトを例に、基本的な使用方法を紹介します。 使い方まず、Ant Design Blazor ドキュメントの説明に従って、AntDesign パッケージとサービス登録をインストールします。 次に、プロジェクト内の <ルーター AppAssembly="@typeof(Program).Assembly"> <コンテキスト="routeData">が見つかりました - <RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" / > + <ReuseTabsRouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" /> </見つかりました> ... </ルーター> プロジェクト内の @LayoutComponentBase を継承します <div class="page"> <div class="サイドバー"> <ナビゲーションメニュー /> </div> <div class="main"> - <div class="top-row px-4"> - <a href="http://blazor.net" rel="external nofollow" target="_blank" class="ml-md-auto">概要</a> - </div> - <div class="content px-4"> - @体 - </div> + <ReuseTabs Class="top-row px-4" TabPaneClass="content px-4" / > </div> </div> タグ名をカスタマイズする2つの方法 プレーンテキストの場合は、ページ コンポーネントで @ページ "/counter" + @attribute [ReuseTabsPageTitle("カウンター")] 別のコンポーネントを追加したり、ページ コンテンツからタイトルを取得したりするなど、テンプレートを使用して動的なタブ名を取得する必要がある場合は、 @ページ "/" + @implements IReuseTabsPage <h1>こんにちは、世界!</h1> @コード{ + パブリック RenderFragment GetPageTitle() => + @<div> + <Icon Type="home"/> ホーム + </div> + ; } 注: 後続の機能現在、このコンポーネントは基本的な機能のみを実装しており、一部の機能は後続の計画に含まれています。
追記Blazorコミュニティは1年以上前から複数タブの実現を求めてきましたが、ここ数日でようやく実現しました。国内外のコミュニティは歓喜し、大きな達成感を感じています。 実装の詳細については、興味のある学生は Ant Design Blazor のソース コード (数個のファイルのみ) を確認できます。もちろん、興味を持っている学生がたくさんいれば、詳しく紹介する記事を書くこともできます。 実際、コミュニティ内のより多くの愛好家が立ち上がり、経験を共有し、オープンソース プロジェクトに貢献することで、コミュニティが健全に発展することを願っています。 最後に、ユーザーと貢献者の皆様のご支援に心より感謝申し上げます。彼らの問題、事例、PR はどれも私たちの肯定であり、私たちが頑張り続ける原動力です。 参考リンク https://github.com/BlazorPlus/BlazorDemoMultiPagesTab https://github.com/ant-design-blazor/demo-reuse-tabs ナイトリービルド Ant Design Blazor コンポーネント ライブラリの複数タブのルーティング再利用に関するこの記事はこれで終わりです。Ant Design Blazor コンポーネント ライブラリの関連コンテンツについては、123WORDPRESS.COM で過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: Linux コマンドラインでメールを送信する 5 つの方法 (推奨)
目次最近Reactを勉強していて、今は仕事でVueを使っています。学習の過程で、両者を比較して理解を...
要点CSS resize プロパティを使用すると、要素のサイズ変更可能性を制御できます。サイズ変更を...
text-fill-color とは何を意味しますか?文字通りの意味から言えば、「テキストの塗りつぶ...
元のアドレス: https://blog.csdn.net/m0_46579864/article/...
序文プロジェクトのリリースでは、常に特定の状況に応じたパッケージ化が必要です。Angular CLI...
編集者:この記事では、インタラクティブデザインがブランドコミュニケーションチェーン全体で果たすべき役...
多くの場合、透明度の設定やぼかしなど、写真の背景を加工する必要があります。 ただし、背景画像が配置さ...
以前は、境界線の長さをコンテナーよりも小さくする必要があったときに、div ネストを使用していました...
この記事の主な内容は次のとおりです。 1. 閉じるボタン2.キャレット3. フローティングを素早く設...
目次docker-compose.ymlを書くdocker-composeを実行するビルドステータス...
MySQL はディスクに保存される永続的なストレージであり、取得には一定の IO が伴うことはご存じ...
イメージは hub.docker.com に保存できますが、ネットワーク速度が比較的遅いです。内部環...
目次背景説明GETリクエストの作成事前リクエストスクリプトで署名を作成するスクリプトは環境変数に書き...
目次ルーティングマネージャー背景はじめる問題を解決する方法要約するルーティングマネージャー各ジャンプ...
目次1. ウィンドウ関数とは何ですか? 1. ウィンドウをどのように理解しますか? 2. ウィンドウ...