Blazor帶我重玩前端(三)


寫在前面

需要升級VS2019以及.NET Core到最新版(具體的最低支持,我已經忘了,總是越新支持的就越好),以更好的支持自己開發Blazor項目。

WebAssembly

搜索Blazor模板

1

選擇Blazor WebAssembly App模板

2

項目實例

3
  • 項目實例
  1. BlazorApp.Shared:提供最一般的支持,包括各個Model
  2. BlazorApp.Client:依賴BlazorApp.Shared,該項目側重於Pages功能
  3. BlazorApp.Server:依賴BlazorApp.Shared、BlazorApp.Client,該項目側重於提供接口功能

BlazorApp.Client

4

從上圖可知 該項目主要包括wwwroot、Pages、Shared三個文件夾,以及_Imports.razor、App.razor、Program.cs這三個單獨的文件。

wwwroot

這個文件夾和我們ASP.NET Core MVC里的wwwroot基本一致,不過需要注意的是,這個文件夾里面有一個比較重要的文件index.html,它是我們Blazor項目的起點。這個文件里也引用了blazor.webassembly.js,可是我們在項目中沒有看到。這沒關系,因為它會由Microsoft.AspNetCore.Components.WebAssembly.Build提供,在運行編譯的時候會自己出現的。

5

Shared

這個文件夾里,有三個文件,分別是MainLayout.razor、NavMenu.razor、SurveyPrompt.razor。

  • MainLayout是Layout文件,它定義了該項目的基本布局
  • NavMenu是Component,它實現了菜單功能,並對外提供了獨立而又單一的組件功能
  • SurveyPrompt也是Component,它實現了文件傳入與連接跳轉功能,對外也是提供了獨立而又單一的菜單功能,同時這也是一個帶參的組件 組件功能后續會詳細介紹,但是需要提前說明的是,任何組件一經對外使用,都是獨立而又單一的。 接下來看一下運行后的效果圖:

6

整體的風格、左側的菜單、右側的鏈接都像我們展示了布局和組件功能

Pages

里面定義了三個.razor文件,這也是模板提供給我的Blazor編寫案例

  • Index.razor向我們展示了,組件的調用
  • FetchData.razor向我們展示了Call遠程API和路由功能(@page "/fetchdata")
  • Counter.razor向我們展示了事件調用

運行項目

設置BlazorApp.Server為啟動項目

1. 下載必須文件

7

如圖所示,我們需要加載6.15M的文件,同時可以看到Blazor的運行時信息mono_wasm_runtime_ready。

2. 接下來,我們展開Object來看看其詳細信息,會看到Object中有太多的依賴程序集。

8

3. 打開源代碼tab頁,會看到以下幾個文件

9

  • dotnet.wasm文件,打開后,會看到我們前文說過的WebAssembly文本格式的內容。
  • blazor.webassembly.js,用於下載.NET運行時,依賴程序集等,同時還會初始化運行應用的程序集
  • dotnet.3.2.0.js也是我們之前所說的用於調用C#方法的JS文件

添加頁面

這個比較簡單,如下操作即可
10
接下來的內容我們將以此模板為例,進行展開討論


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM