blazor优雅的方式导入组件相关的js脚本

基本的组件导入方式为:

复制代码
1 await JsRuntime.InvokeVoidAsync("import", $"XXXXX.js");

优雅的组件导入方式:

复制代码
1 await JsRuntime.ImportAsync<DocEditor>();

这种优雅一点不难,只需要写一个扩展方法,把他放在任意地方并且导入命名空间,或者放到和项目同一个命名空间下:

复制代码
 1 public static ValueTask ImportAsync(this IJSRuntime js, string path)
 2 {
 3     return js.InvokeVoidAsync("import", path);
 4 }
 5 public static ValueTask ImportAsync<Component>(this IJSRuntime js) where Component : ComponentBase
 6 {
 7     var nm = typeof(Component).Name;
 8     var fnm = typeof(Component).FullName!;//获取包含完整命名空间的名称
 9     var sns = fnm.Split('.', StringSplitOptions.RemoveEmptyEntries);
10     sns = sns.SkipWhile(x => x != "Components").TakeWhile(x => x != nm).ToArray();
11     return js.InvokeVoidAsync("import", $"/{string.Join('/', sns)}/{nm}.razor.js");
12 }

这种优雅一点不难,只需要写一个扩展方法,把他放在任意地方并且导入命名空间,或者放到和项目同一个命名空间下

这种优雅一点不难,只需要写一个扩展方法,把他放在任意地方并且导入命名空间,或者放到和项目同一个命名空间下

相关推荐
刚子编程10 天前
ASP.NET Core Blazor 核心功能一:Blazor依赖注入与状态管理指南
开发语言·.netcore·blazor
刚子编程15 天前
ASP.NET Core Blazor 路由配置和导航
服务器·javascript·.netcore·blazor
程序设计实验室2 个月前
Blazor全栈是个陷阱
blazor
界面开发小八哥2 个月前
界面控件Telerik UI for Blazor 2025 Q2新版亮点 - AI集成全面增强
人工智能·ui·blazor·用户界面·telerik
SchuylerEX3 个月前
第六章 JavaScript 互操(2).NET调用JS
前端·c#·.net·blazor·ui框架
胡斌附体3 个月前
小程序难调的组件
前端·小程序·apache·datepicker·自定义组件·checkbox
SchuylerEX3 个月前
第六章 JavaScript 互操(3)JS调用.NET
前端·javascript·c#·.net·blazor
known3 个月前
基于Blazor实现的简易进销存管理系统
blazor
逻极4 个月前
HarmonyOS从入门到精通:自定义组件开发指南(二):组件属性与参数传递
华为·harmonyos·arkts·鸿蒙·自定义组件
百锦再5 个月前
.Net 优秀框架 ABP全面详解
microsoft·.net·web·blazor·abp·razor