日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Blazor University (10)组件 — 捕获意外参数

發布時間:2023/12/4 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Blazor University (10)组件 — 捕获意外参数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文鏈接:https://blazor-university.com/components/capturing-unexpected-parameters/

捕獲意外參數

源代碼[1]

之前我們已經看到了如何使用特定名稱聲明參數和級聯參數。例如,一個將 <img> 元素包裝在一些自定義 HTML 中的自定義組件。

<div?class="row"><img?src=@src/> </div>@code? {[Parameter]public?string?src?{?get;?set;?} }

在代碼稽核過程中,有人指出沒有 alt 標簽的圖像對于視力障礙者來說不太容易訪問,因此添加了另一個參數并更新了 HTML。

<div?class="row"?role="img"?aria-label=@alt><img?src=@src/> </div>@code? {[Parameter]public?string?src?{?get;?set;?}[Parameter]public?string?alt?{?get;?set;?} }

隨著時間的推移,需要更多屬性:

  • align

  • width

  • height

此時您可能不再對圖像組件有額外的要求,但是每次編寫組件時都必須為每個可能的屬性編寫參數可能會很煩人,尤其是當您實際上并不處理這些值而只是將它們傳遞給 HTML 元素的標記時。<input> 控件有大約 30 個屬性,需要我們為其編寫參數代碼。

在沒有編碼參數的情況下捕獲值

之前我們看到了如何利用屬性展開[2]以編程方式生成 HTML 屬性及其值。這涉及將 Dictionary<string, object> 的值分配給一個特別命名的 @attributes 屬性。

在不匹配參數的情況下捕獲屬性值的工作方式類似。我們只需創建一個 Dictionary<string, object> 類型的屬性,將其裝飾為 [Parameter],但在 Parameter 中我們需要指定 CaptureUnmatchedValues = true。

<div?class="row"?role="img"?aria-label=@alt><img?src=@src?@attributes=AllOtherAttributes?/> </div>@code? {[Parameter]public?string?src?{?get;?set;?}[Parameter]public?string?alt?{?get;?set;?}[Parameter(CaptureUnmatchedValues?=?true)]public?Dictionary<string,?object>?AllOtherAttributes?{?get;?set;?} }

現在,當您的組件的使用者使用 [Parameter] 修飾屬性(正常行為)添加您未明確允許的屬性值時,Blazor 不會拋出異常,而是將它們作為鍵/值對收集到我們的字典中。

在前面的示例中,我們組件的使用者指定的任何 attributes=value 分配都將添加到我們組件內的 <img> 元素中。

<MyCustomImage?src="https://randomuser.me/api/portraits/lego/6.jpg"?alt="A?photo?of?Emmet"?width=64?height=64?/>

參考資料

[1]

源代碼: https://github.com/mrpmorris/blazor-university/tree/master/src/Components/CapturingUnexpectedParameters

總結

以上是生活随笔為你收集整理的Blazor University (10)组件 — 捕获意外参数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。