CoreFlex框架发布 `0.1.1`
CoreFlex框架發布 0.1.1
框架描述
CoreFlex是一個支持.NET 6,.NET 7,.NET 8的快速開發框架,也提供MasaFramework相關框架的集成提供更多功能模塊,
集成了一些常用的功能模塊,可以快速開發企業級應用,提供Blazor的一些JS操作工具庫。
實現目標
Core Flex模塊
Core Flex的核心設計,Core Flex其他模塊都是基于Core Flex的核心設計來實現的。
Core Flex模塊提供了一些基礎的功能,包括:
- 模塊化
- 自動依賴注入
簡單使用
- 安裝
NuGet包
dotnet add package CoreFlex.Module --version 0.1.1
- 添加對應模塊方法,比如項目名
CoreFlex.Razor.JsInterop,那么模塊名稱則是CoreFlexRazorJsInteropModule,這樣的好處就是可以通過模塊名稱來查找對應的模塊,而不是通過文件夾名稱來查找模塊,這樣可以避免文件夾名稱和模塊名稱不一致的問題。
public class CoreFlexRazorJsInteropModule : CoreFlexModule
{
public override void ConfigureServices(CoreFlexServiceContext services)
{
}
public override void OnApplicationShutdown(CoreFlexBuilder app)
{
}
}
創建的模塊必須繼承CoreFlexModule,然后實現ConfigureServices和OnApplicationShutdown方法,這兩個方法是模塊的生命周期方法,ConfigureServices方法在模塊加載時調用,OnApplicationShutdown方法在模塊構建完成調用。
模塊中也提供了Async結束的異步回調,以便于在模塊加載完成后,可以執行一些異步操作,比如加載一些配置文件等。
當然,如果你的模塊需要使用其他的模塊,你可以在模塊類的上面添加特性[DependsOn(typeof(CoreFlexRazorModule))],CoreFlexRazorModule則是你要依賴的模塊,當然它也支持多個模塊的依賴;
這樣在加載模塊時,會先加載CoreFlexRazorModule模塊,
但是如果沒有設置特定模塊執行順序,依賴模塊將在當前模塊的后面執行。
[DependsOn(typeof(CoreFlexRazorModule))]
public class CoreFlexRazorJsInteropModule : CoreFlexModule
CoreFlex.Razor.JsInterop js工具庫
dotnet add package CoreFlex.Razor.JsInterop --version 0.1.1
提供系統常用的JS互操作的封裝,便于使用。
使用
添加CoreFlexRazorJsInteropModule模塊依賴
封裝Api
CookieJsInterop
提供:
-
GetAllCookiesAsync獲取所有Cookie -
AddCookieAsync添加Cookie`
LocalStorageJsInterop
提供:
-
SetLocalStorageAsync設置LocalStorage的值 -
GetLocalStorageAsync獲取LocalStorage的值 -
RemoveLocalStorageAsync移除LocalStorage的值 -
RemovesLocalStorageAsync批量刪除Key的LocalStorage -
ClearLocalStorageAsync清空LocalStorage的值 -
IsLocalStorageSupportedAsync判斷瀏覽器是否支持LocalStorage -
GetLocalStorageKeysAsync獲取LocalStorage的所有Key
SessionStorageJsInterop
提供:
-
SetSessionStorageAsync設置SessionStorage的值 -
GetSessionStorageAsync獲取SessionStorage的值 -
RemoveSessionStorageAsync移除SessionStorage的值 -
RemovesSessionStorageAsync批量刪除Key的SessionStorage -
ClearSessionStorageAsync清空SessionStorage的值 -
GetSessionStorageLengthAsync獲取 sessionStorage 中值的數量 -
ContainKeyAsync判斷 sessionStorage 中是否含有某個鍵名
WindowJsInterop
提供以下功能:
-
CreateBlobURLAsync: 使用 blob 創建 Blob Url -
CreateBlobURLFromUint8ArrayAsync: 使用 byte[] 創建一個 Blob 對象URL -
CreateBlobURLFromStringAsync: 使用 Base64 創建一個 Blob 對象的URL -
RevokeUrlAsync: 釋放 Blob 對象的 URL -
RevokeUrlsAsync: 批量釋放 Blob 對象的 URL -
GetScrollPositionAsync: 獲取滾動條位置 -
SetScrollPositionAsync: 修改滾動條位置 -
GetScrollHeightAsync: 獲取滾動條高度 -
ScrollToBottomAsync滾動到底部 -
ScrollToTopAsync滾動到頂部 -
CopyToClipboardAsync復制到剪貼板 -
PlayTextAsync播放文本 -
PauseSpeechAsync暫停播放語音 -
ResumeSpeechAsync繼續語音播放 -
StopSpeechAsync停止語音播放 -
EnterFullscreenAsync進入全屏模式 -
ExitFullscreenAsync退出全屏模式 -
IsFullscreenAsync判斷當前是否處于全屏模式 -
ToggleFullscreenAsync切換全屏模式 -
PickContactAsync使用 Contact Picker API 選擇聯系人
Core Flex 本地事件總線
本地事件總線通過Channel實現本地事件總線
添加CoreFlexEventModule模塊依賴
基本使用
- 安裝
NuGet包
<PackageReference Include="CoreFlex.Module" Version="模塊版本" />
- 添加處理程序
public class TestEventHandler : ILoadEventHandler<TestEto>
{
public Task HandleAsync(TestEto eto)
{
throw new NotImplementedException();
}
public Task ExceptionHandling(Exception exception, TestEto eto)
{
throw new NotImplementedException();
}
}
public class TestEto
{
public string Value { get; set; }
}
- 提交事件
// 通過構造得到`ILoadEventBus`
await loadEvent.PushAsync(new TestEto(){
Value="test"
})
總結
以上是生活随笔為你收集整理的CoreFlex框架发布 `0.1.1`的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 站上玻璃悬崖上的推特新任CEO:成败在于
- 下一篇: 便宜买显卡 休想!NV又要对显卡涨价了: