一 為什么用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
支持接口調用/支持事件觸發(推送)
七 后感
用來做內部使用的監控系統/后台之類的很方便