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