最近、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 つの方法 (推奨)
目次MySQL ログファイルバイナリログBinlogログがオンになっていますログ記録を有効にする方法...
昨夜、ブラウザのレンダリングプロセスに関するエッセイを書きましたが、小さなコードで説明しただけでした...
データの応答性について話す前に、Vue はデータに対して具体的に何を行うのかという非常に重要な問題を...
この記事の例では、テーブルを動的に生成したり行を削除したりするためのJavaScriptの具体的なコ...
目次プロジェクトにmockjsをインストールするVueプロジェクトでmockjsを使用する基本的なプ...
効果図は以下のとおりです。 <!DOCTYPE html> <html lang=...
この記事では、MySQL 5.7.21 のインストールと設定方法を記録し、皆様と共有します。 1. ...
最近、プロジェクトを進める過程で、ページの階層構造を描画するために iframe を頻繁に使用する必...
1. ブリッジ: デフォルトでは VMnet0 が使用されます1. 原則:ブリッジは、それぞれ 2...
1. データ感度低下の説明日常の開発ニーズでは、データの感度低下が頻繁に発生します。たとえば、ID ...
nginx のサーバーと場所の構成を簡単に整理してみましょう。たとえば、URL: www.mask_...
目次一方向データフローの説明Vue2.x の使用法親コンポーネントに変更を通知するイベントのフォーム...
目次1. CDNの紹介1.1 react (最初にインポート) 1.2 react-dom(後ほど紹...
データベース MySQL バージョン 8.0.18 DBeaver.exeをダウンロードするダウンロ...
最初の方法: docker インストール1. オープンソース版のイメージを取得する2. 対応するデー...