學習ASP.NET Core Blazor編程系列二——第一個Blazor應用程式(完)

来源:https://www.cnblogs.com/chillsrc/archive/2022/09/12/16686421.html
-Advertisement-
Play Games

閱讀須知:本文為入門介紹、指引文章,所示代碼皆為最簡易(或僅為實現功能)的演示示例版本,不一定切實符合個人(企業)實際開發需求。 一、DbContext生存期 DbContext 的生存期從創建實例時開始,併在釋放實例時結束。 DbContext 實例旨在用於單個工作單元。這意味著 DbContex ...


學習ASP.NET Core Blazor編程系列一——綜述 學習ASP.NET Core Blazor編程系列二——第一個Blazor應用程式(上) 學習ASP.NET Core Blazor編程系列二——第一個Blazor應用程式(中) 學習ASP.NET Core Blazor編程系列二——第一個Blazor應用程式(下)  

六 計數器頁面       

 14. 在瀏覽器中,通過滑鼠左鍵單擊左邊菜單欄中的“Counter”菜單,頁面進入到計數器頁面。如下圖。       

圖2-17

 15.在瀏覽器的計數器頁面中,使用滑鼠左鍵單擊“Click me”按鈕,頁面中的“Current count:”從0,變為了1,在沒有刷新頁面的情況下增加了1。在以往的Web應用程式中,我們要實現不刷新頁面實現計數器功能,通常是通過編寫JavaScript來實現,但是在Blazor中可以使用C#來編寫這個功能。

圖2-18

      16. 在Visual Studio 2022的解決方案資源管理器中,找到Pages\Counter.razor文件,使用滑鼠雙擊在文本編輯器中打開此文件。代碼如下。

@page "/counter"

<PageTitle>Counter</PageTitle>

<h1>Counter</h1>

<p role="status">Current count: @currentCount</p>

<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>

@code {

    private int currentCount = 0;

     private void IncrementCount()
    {
        currentCount++;
    }
}
上面的代碼中第一行是@page指令,這個指令在Blazor中是指定Razor組件直接處理請求的路由。瀏覽器的請求會通過這個@page指令設置的路由來處理請求。

 <PageTitle> 設置頁面的標題。

@code指令是在Razor組件中添加C#(欄位、屬性和方法)代碼,實現相應功能。例如上面的Razor組件中用@currentCount表示當前計數的數量,@code代碼塊中定義了currentCount 這個整數數量作為計數用。“Click me”按鈕的onclick事件觸發之後調用IncrementCount方法,該方法也可在@code代碼塊中找到。

17. 實際上每一個.razor文件都是一個可以重用的Razor UI組件。在Visual Studio 2022的解決方案資源管理器中,Pages\Index.razor文件,使用滑鼠雙擊此文件,在文本編輯器中打開。

18.在Index.razor文件的末尾添加<Counter/>元素,此元素表示將計數器組件添加到Index.razor頁面。代碼如下,註意紅色粗體部分。

@page "/"

<PageTitle>Index</PageTitle>
<h1>Hello, world!</h1>
Welcome to your new app.
<SurveyPrompt Title="How is Blazor working for you?" />
測試熱重載功能 。
<Counter></Counter>
19.保存文件之後,我們回到瀏覽器中,使用滑鼠左鍵單擊左邊菜單欄中的“Home”菜單,頁面進入首頁,頁面上並沒有顯示“計數器”組件。我們不停的按F5刷新瀏覽器,同樣無法看到“計數器”組件。如下圖。

圖2-19

20.在Visual Studio 2022的工具欄上,點擊“熱載入”按鈕。然後回到瀏覽器中,我們發現“計數器”組件已經顯示在頁面中了。如下圖中的紅框所示。

 

圖2-20

21.在瀏覽器的首頁中,使用滑鼠左鍵單擊“Click me”按鈕,頁面中的“Current count:”從0,變為了1;再次點擊“Click me”按鈕,頁面中的“Current count:”從1,變為了2。這個計數變化的過程中沒有刷新頁面。

 

圖2-21

22. Razor組件參數可以使用屬性或子內容來設定,方便設置Razor組件的參數。例如,我們要在“計數器”組件上定義一個參數,用於設置每次單擊按鈕時計數器組件增加值。通過以下二步來實現

第一,在@code代碼塊中添加一個公共屬性IncrementAmount,併在這個屬性上方添加[Parameter]特性。

第二,更改計數器的遞增方法currentCount,在每次遞增currentCount值時使用IncrementAmount。

具體代碼如下所示:

@page "/counter" 

<PageTitle>Counter</PageTitle>

<h1>Counter</h1>

<p role="status">Current count: @currentCount</p>

<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>

@code {

    private int currentCount = 0;

    [Parameter]
    publicint IncrementAmount { get; set; } = 1;

    privatevoid IncrementCount()
    {
        currentCount += IncrementAmount;
    }
} 

23. 在Visual Studio 2022的解決方案資源管理器中,找到Pages\Index.razor文件,使用滑鼠雙擊此文件,在文本編輯器中打開。在Index.razor文件的<Counter/>元素處,添加IncrementAmount屬性,並將該屬性值更改5。代碼如下,註意粗體部分。

@page "/"

<PageTitle>Index</PageTitle>

<h1>Hello, world!</h1>

Welcome to your new app.

<SurveyPrompt Title="How is Blazor working for you?" />

測試熱重載功能 。

<CounterIncrementAmount="5"></Counter>

24.在Visual Studio 2022的工具欄上,點擊“熱載入”按鈕。然後回到瀏覽器中,此時瀏覽器中正呈現的是剛纔我們瀏覽的首頁,使用滑鼠左鍵單擊“Click me”按鈕,頁面中的“Current count:”從2,變為了7,如下圖所示;再次點擊“Click me”按鈕,頁面中的“Current count:”從7,變為了12。

 

圖2-22

25.在瀏覽器中,通過滑鼠左鍵單擊左邊菜單欄中的“Counter”菜單,頁面進入到計數器頁面。在瀏覽器的計數器頁面中,使用滑鼠左鍵單擊“Click me”按鈕,頁面中的“Current count:”從0,變為了1,而不是5。

            

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、多線程概述 1.1、進程和線程的概念 1.1.1、進程 進程是執行程式的一次執行過程,是一個動態的過程,是一個活動的實體,是系統資源分配的單位 一個應用程式的運行就可以被看做是一個進程 1.1.2、線程 線程,是運行中的實際的任務執行者,一般的,一個進程中包含了多個可以同時運行的線程 線程就是獨 ...
  • JavaIO流04 4.常用的類03 4.4節點流和處理流02 4.4.5對象處理流-ObjectInputStream和ObjectOutputStream 1.序列化和反序列化 例子1: 看一個需求 將int num= 100這個int 類型的數據保存到文件中,註意不是100 數字,而是int ...
  • 傳送門: https://www.cnblogs.com/greentomlee/p/12314064.html github: Leezhen2014: https://github.com/Leezhen2014/python_deep_learning 在第二篇中介紹了用數值微分的形式計... ...
  • 今年教師節前夕,我特意用Python做了個學生點名系統,非常好用,送給各科老師、輔導員當節日禮物,老師們都喜滋滋,說平常逃課就原諒我了,我心想,這次畢業應該不是問題了~ 本文背景 根據我的調查,現在的學生大部分都很積極,會主動舉手回答問題。但是,也會遇到一些不好的情況,比如年級越高主動舉手的人越少, ...
  • 前言 嗨嘍~大家好呀,這裡是魔王吶 ! 壁紙,有多種的類別和各種不同的風格,如: 風景、美女、唯美、動漫、花卉、節日等適合您的高清桌面壁紙 今天我們就來採集一下叭~ 環境使用: Python 3.8 解釋器 Pycharm 編輯器 需安裝python第三方模塊 : requests win + R ...
  • Web的8種(6+2)元素+定位方法 - id : id屬性 - name : name屬性 - class_name : - tag_name :標簽名 - css定位表達式: 局部html代碼 <input type="text" class="s_ipt" name="wd" id="kw" ...
  • JVM 嗶哩嗶哩 尚矽谷視頻 宋紅康老師 ==Java代碼執行流程== ==簡圖== ==詳細圖== 1、類載入子系統 ==類載入器子系統的作用== 類載入器子系統負責從文件系統或者網路中載入Class文件,class文件在文件開頭有特定的文件標識 ClassLoader 只負責 class 文件的 ...
  • 緩存穿透是用戶訪問一個不存在的key,導致請求穿透到資料庫。 問題關鍵是程式上要識別出這個key是一個錯誤key,不是由系統生成的key。每次添加或刪除緩存時維護一個key欄位查詢過濾器,例如:布隆過濾器、HashSet。這樣在訪問緩存前,可以對key先進行查詢過濾,判斷key是否存在,再往下執行業 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...