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 }

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

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

相关推荐
CSharp精选营1 小时前
Blazor 里 JWT 过期,用户正下单就被踢
认证·jwt·webassembly·blazor·令牌刷新
gudufy21 小时前
ASP.NET Core 多租户如何动态创建数据库?数据库初始化怎么做?
数据库·blazor·admin
gudufy8 天前
EasyAdminBlazor Excel 导入源码解析:数据验证、权限与事务如何处理?
excel·blazor·admin
CSharp精选营11 天前
聊聊 Blazor 里 Radzen 6.0.0 那几个用着别扭的官方组件
blazor·radzen
known24 天前
基于Blazor实现的项目管理系统
blazor·known
界面开发小八哥2 个月前
界面控件DevExpress Blazor v26.1新版亮点 - Filter Builder等功能升级
ui·界面控件·blazor·devexpress·ui开发
界面开发小八哥2 个月前
界面控件DevExpress Blazor v26.1新版亮点 - Navigation(导航)
javascript·.net·界面控件·blazor·devexpress·ui开发
界面开发小八哥2 个月前
界面控件DevExpress Blazor v26.1新版亮点 - TreeList & 数据编辑器
javascript·编辑器·.net·界面控件·blazor·devexpress·用户界面
界面开发小八哥2 个月前
界面控件DevExpress XAF v26.1新版亮点——Blazor UI功能增强(二)
ui·界面控件·blazor·devexpress·ui开发
known2 个月前
基于Blazor实现的轻量进销存管理系统
blazor