首先確保你已經具備相應的環境,VS2019和.NET Core SDK,學習的話,最好持續更新到最新版本。
其次推薦到微軟官網去學習,文檔資料也都能在官方文檔中找到,這將是一個系列的文章,本人將持續的關注blazor的發展並持續學習。
第一步,找到Blazor應用
第二步,給項目改一個名稱,這里就叫BlazorApp
第三步,框架選擇.NET5.0,如果沒有選擇.net core 3.1也是一樣的,Server和WebAssembly App 入門學習都是一樣的,我認為未來還是wasm
創建好的項目如下
Program.cs
是啟動服務器的應用程序的入口點。App.razor
是應用程序的根組件。BlazorApp/Pages
目錄包含該應用程序的一些示例頁面。
我們直接運行看下效果
在左側導航欄看到有三個自帶的頁面,下面我們就來入門blazor。
組件
首先看下上面的首頁,就是Pages/Index.razor這個頁面,我們找到並打開它
這里有一個點就是@page指令,該指令后面跟的就是該頁面的路由地址,用來指定路由的。
該組件顯示了一些簡單的信息,我們都很熟悉,<SurveyPrompt Title="How is Blazor working for you?" />這一段呢我們暫時先不管,它是一個組件。
我們再來看下導航欄中的第二個頁面
這個頁面有一個按鈕,點擊按鈕的時候我們發現沒有刷新頁面當前數量的數字就會累加,通常在網頁中,這種操作都是需要JavaScript來完成,但是在blazor中我們可以通過C#來實現了。
我們找到Counter組件對應的實現頁面Pages/Counter.razor
@page "/counter" 指令與頁面中的地址欄相匹配,說明@page指令指定的就是請求的路由地址。
使用@code{ }來寫C#代碼,使用@onclick綁定點擊事件的方法
每次在點擊按鈕的時候:
- 該
onclick
事件被觸發。 - 該
IncrementCount
方法被調用。 - 在
currentCount
遞增。 - 渲染該組件以顯示更新的計數。
接下來我們就來試一下組件,我們把這個Counter組件添加到首頁中,如下所示
Ctrl + F5 運行看下效果,發現確實把組件顯示了出來並且點擊效果也是一樣的
組件的時候我們已經知道了,接下來我們來試着給組件中增加一個參數,並且傳遞參數給組件。
我們來改造下Counter.razor組件,在里面增加了一個IncrementAmount參數並且給了默認值1,並且修改了IncrementCount方法,使用了該參數。
接下來我們運行下,看看效果,首頁和這個Counter頁都和原來一樣,沒有改變。
我們再回到首頁的對應頁面,修改下首頁添加的Counter組件,把剛才的參數傳遞進去,修改后如下
這時候我們保存再次運行,我們點擊首頁的這個按鈕發現已經是10倍的增加了,說明傳遞參數有效,再看看原來的Counter組件頁面,還是原來的狀態。
至此,恭喜你,你已經成功的構建了一個blazor應用程序!
在這個示例中,我們了解了頁面組件,如何使用組件,以及給屬性定義參數並在使用組件時給組件傳參的方法。
下面我們自己新建一個組件,待辦事項的組件,通過該組件把上面的所有內容進行一個總結。
然后再在項目的根目錄下新建一個TodoItem.cs類,內容如下:
再回到剛才新建的Todo.razor頁面
首先在頂部指定@page路由地址,然后再@code代碼段中添加一個List<TodoItem>類型的todos屬性,最后在頁面中循環列出這個todos的數據。
然后我們再添加一個文本框用於輸入待辦事項,並且在添加一個按鈕用於把輸入添加到上面的列表中,最終代碼如下:
我們暫時還不實現添加按鈕的功能,先運行看下效果,當然,先把當前組件添加到導航欄,在Shared文件夾中找到NavMenu.razor組件,直接復制上一個li並稍作修改即可
好,運行,看看效果,發現導航欄已經有了,點擊頁面顯示正常,只是點擊按鈕沒有反應,應為我們還沒有實現點擊事件
以上呢還都是已知的內容,接下來我們就來實現添加待辦事項,並且引入一個新的東西,雙向綁定。
我們回到Todo.razor組件,為button按鈕添加一個點擊事件AddTodo,然后再code代碼段中添加一個AddTodo方法。
接下來就是實現該添加方法。
在code代碼段中添加一個newTodo字段,然后在input輸入框中綁定該字段,然后實現添加方法,最終代碼如下:
運行后輸入一段內容點擊添加是可以的
接下來我們再升級系,每個待辦項的標題文本都可以編輯,復選框可以幫助用戶跟蹤已完成的項。 為每個待辦項添加一個復選框輸入,並將它的值綁定到 IsDone
屬性。 將 @item.Title
更改為綁定到 @item.Title
的 <input>
元素:
為了看到綁定的勾選完成的待辦事項,我們在標題中增加一個未完成的待辦事項的數量統計,最終代碼如下:
運行看下效果,狀態是變化的,待辦事項統計數量也在變化
到目前為止,blazor的入門你已經完成了