最近、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 つの方法 (推奨)
目次要件:実装手順:この記事では主に以下について説明します: カスタムツリーコントロール<el...
フレックス レイアウトは、エラスティック レイアウトとも呼ばれます。任意のコンテナーをフレックス レ...
Dockerネットワーク管理とコンテナIP設定に基づいてNginxロードバランシングを実装するすべて...
目次スプレッド演算子を使用してプロパティを渡すのは避けてください関数パラメータをオブジェクトにカプセ...
弊社の Web プロジェクトの 1 つでは、新しい都市の増加によりトラフィックと DB 負荷が増加し...
CSSを使用してブラウザのスクロールバーのスタイルを変更する ::-webkit-スクロールバー{ ...
目次問題の説明方法 1 (バックエンドが画像 URL を返す)方法 2 (フロントエンドで requ...
Nginx の最適化 - バージョン番号と Web ページのキャッシュ時間を非表示にするバージョン番...
Tomcat をサービスとして登録する場合の注意点は次のとおりです。 インターフェースを開いたら、以...
目次VARCHAR 型と CHAR 型結論: VARCHAR 型と CHAR 型VARCHAR と ...
XHTML の img タグはいわゆる自己終了タグであり、XML では完全に合法です。 XHTMLの...
仮想化ソフトウェアをインストールする仮想マシンにオペレーティング システムをインストールする前に、ホ...
Jupyter ノートブックは、主に Python コードの記述、より具体的にはディープラーニング開...
目次イベントループmiscroTask (マイクロタスク) UI レンダリング (重要なポイント)次...
目次質問再生暗黙的な変換要約する参照する質問仕事中、1 つの SQL クエリ ステートメントのみを実...