我用的是 Ant Design of Blazor
首先,我覺得blazor最大的問題就是斷點偶爾失效的問題,這點很煩,不能debug,只能從堆疊資訊里面找到底哪里出錯了。
.net standar API好少,NuGet上基于standar的庫能用的也不多。
還有導航,在當前頁導航到當前頁是不會觸發OnInitializedAsync,相當于js的pushState() 但是沒有任何配套功能
[Inject]
private NavigationManager Navigation { get; set; }
private asycn Task QueryAsycn()
{
/* 如果我當前頁是 /Demo
* 那么我想篩選資料,導航到 /Demo?name=123,地址會變,但是不會OnInitializedAsync
* 不知道是我的想法沒跟上還是本該這樣子
*/
Navigation.NavigateTo("/Demo?name=123");
//如果導航到其他頁面倒是符合預期,像這樣
Navigation.NavigateTo("/Welcome?name=123");
//所以目前我處理的方式是 navigateTo 后,繼續查詢資料更新UI
Source = await LoadDataAsync();
}
RenderFragment 用代碼的方式構建好麻煩,我開發的方式是
Welcome.razor
Welcome.razor.cs
//file Welcome.razor.cs
public partial class Webcome{}
就想著以后好維護,層次看的清晰,更純粹干凈,但是不得已還是在razor上添加了代碼
//在razor檔案上構建RenderFragment很簡單 ,var rf = @<tag></tag>
private string NewTag { get; set; }
private RenderFragment DropdownRender(RenderFragment originNode)
{
RenderFragment customDropdownRender =
@<Template>
<div>
@originNode
<Divider Style="margin: 4px 0"></Divider>
<div style="display: flex; flex-wrap: nowrap; padding: 8px">
<Input Style="flex: auto" @bind-Value="https://bbs.csdn.net/topics/NewTag"/>
<a style="flex: none; padding: 8px; display: block; cursor: pointer" @onclick="AddItem">
<Icon Type="plus" Theme="outline"></Icon>
添加標簽
</a>
</div>
</div>
</Template>;
return customDropdownRender;
}
private void AddItem(MouseEventArgs args)
{
if (!string.IsNullOrWhiteSpace(NewTag))
{
_tags.AddItem(NewTag);
NewTag = string.Empty;
}
}
//但是在cs檔案里面構建很麻煩,RenderFragment是一顆結構樹,就簡單一個圖示都沒那么便捷
var icon = builder =>
{
builder.OpenComponent<Icon>(0);
builder.AddAttribute(0,"Type","exclamation-circle");
builder.AddAttribute(1,"Theme","outline");
builder.CloseComponent();
},
就我上面的例子,就為了在下拉框新增一個值,把我坑慘了,花了我半天時間,就為了實作這么一個功能而已

然后就報錯

因為什么? 因為 NewTag最開始我定義的是欄位,不是屬性
private string _newTag = string.Empty;
花半天時間浪費在這兒了。
還有一個路由問題,因為我要管理一些檔案,所以路由引數值里面必然會有(. dot 點 )這個符號,然后404了。
嗯,想了一下,肯定是當作靜態檔案訪問給處理了,沒問題。
然后我去MSDN找檔案看有什么解決辦法
剛好也有。
照做,然后喜聞樂見了,依然404

目前還沒解決,哈哈 。等會兒還是解決不了,我就采用QueryString的方式吧。



哈哈哈哈,寫了幾天了,想吐槽 吐槽 吐槽 吐槽
uj5u.com熱心網友回復:
例外處理不好 線路很容易掛的,線路掛了你還得重繪重啟線路
其他的還好,有一個最坑的就是 他的生命周期是基于連接的,即你依賴注入的服務默認都視為 scope 等同單例 ,坑吧! 要是你用EF 之類的東西 就把你坑得死死的,這東西不看官網一定掉坑里
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/262739.html
標籤:C#
