iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 7
1

介紹完路由魔術後,是不是覺得手打網址來測試很麻煩,所以今天先來介紹導覽元件。

題外話:本系列文的魔術材料版本並不支援萬用路由,但將會在之後的更新支援(add Blazor catch-all route parameter)。


而解決手打問題只要在任一頁面加上超連結元素 a 即可:

@* Index.razor *@
@page "/"

<h1>Hello, world!</h1>

Welcome to your new app.

<a href="custompage">前往自訂頁面</a>

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

這樣就可以在首頁看到"前往自訂頁面"的超連結元素,是不是很簡單呀?

https://raw.githubusercontent.com/MMiooiMM/learn-blazor-in-30-days/master/figures/07/goto-custompage.jpg

但即便是第一次接觸網頁開發的人也會覺得怪怪的,因為新畫面可能不隸屬於首頁,而是獨立出來的功能,那麼放到側欄選單才是比較合理的方式,也就是增加導覽列內容。

在專案範本建立時,Blazor 就會送你一個導覽列元件(NavMenu.razor),是不是很佛心啊!

而要使導覽列增加元素,只需要簡單的複製貼上就好:

<li class="nav-item px-3">
    <NavLink class="nav-link" href="custompage">
        <span class="oi oi-thumb-up" aria-hidden="true"></span> CustomPage
    </NavLink>
</li>

https://raw.githubusercontent.com/MMiooiMM/learn-blazor-in-30-days/master/figures/07/add-custompage-nav.jpg

是不是很容易上手呢!而這邊排除 HTML 與 CSS 外唯一的問題是,NavLink 是什麼?

NavLink 元件

NavLink 元件與 HTML 元素 a 相似,但能提供根據其 href 的內容來判斷是否添加 active 樣式類別,當然也可以選擇該添加的樣式類別,非常好用也請在開發 Blazor 時,使用 NavLink 元件來取代超連結元素 a

這邊介紹一下 NavLink 元件主要的兩個屬性:

  • Match 判斷是否處於 active 的標準,有兩種判斷方式:
    • NavLinkMatch.All 整個 URL 都必須與 href 的值符合。
    • NavLinkMatch.Prefix 只要任何一個 URL 前置詞與 href 的值符合。
url herf all prefix
custompage custompage v v
custompage/1 custompage x v
  • ActiveClass 用於設定或取得當 NavLink 判斷為 active 時,添加的 CSS 類別。

若是需要藉由其他來源自動產生導覽列內容,建議使用 @foreach 迴圈來產生。


以上就是 Blazor WebAssembly 針對導覽列的設定與修改啦。

感謝大家的閱讀,我們明天見。

參考連結
NavLink 元件


上一篇
路由魔術
下一篇
紀錄魔術
系列文
大內魔術 Blazor - 誰說前端一定要寫JS30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言