一 为什么用Blazor
原本就是后端程序员, 技术栈基于C#, 懂一点前端jQuery/Html
不管是webAssembly还是ServerSide, 就是想方便地做单页应用, 能wasm自然更好
对于项目进行一定阶段后繁琐的大量js调用如何合理规划很苦恼, 又没有深入了解流行的前端框架无法给出符合后端思维的解决方案.
二 创建一个Blazor项目
Visual Studio2019选择较成熟的ServerSide Blazor模板创建项目. 或者直接在原有asp.netcore项目的startup中注入blazor中间件.
blazor是可以和asp.netcore mvc共存的.
三 选择一款WebUI库
AdminLTE3, 多少年了Bootstrap+jQuery一把梭
四 做母版页/Layout
曾经的母版页后来的Layout, 现在的Blazor也有这样的东东, 一个razor组件+@Body搞定.
模板上需要子页面填充的部分用级联参数CascadingValue/CascadingParameter搞定, 如Title\Header之类的
五 菜单项与页面的激活状态同步
子页面的页标题\navBar\siderBar\面包屑等
可使用级联参数或者组件事件解决. 激活状态css由事件监听后修改activate属性绑定, 可以实现多级菜单状态绑定, 需要引入@inject NavigationManager NavigationManager, 核心事件NotifyLocationChanged
六 页面与服务器的数据交互
@inject XXXService
支持接口调用/支持事件触发(推送)
七 后感
用来做内部使用的监控系统/后台之类的很方便