Blazor之Router入门

前言:博主文章仅用于学习、研究和交流目的,不足和错误之处在所难免,希望大家能够批评指出,博主核实后马上更改。

概述:

Router 组件允许路由到 Razor 组件。 Router 组件在 App 组件 (App.razor) 中使用。编译带有 @page 指令的 Razor 组件 (.razor) 时,将为生成的组件类提供一个 RouteAttribute 来指定组件的路由模板。当应用启动时,将扫描指定为 路由器的 AppAssembly 的程序集,来收集具有 RouteAttribute 的应用组件的路由信息。在运行时,RouteView 组件:从 Router 接收 RouteData 以及所有路由参数。使用指定的组件的布局来呈现该组件,包括任何后续嵌套布局。对于没有使用 @layout 指令指定布局的组件,可选择使用布局类指定一个 DefaultLayout 参数。 框架的 Blazor 项目模板会指定 MainLayout 组件 (MainLayout.razor) 作为应的默认布局。

1.组件支持使用多个 @page 指令的多个路由模板

新建一个RouterPages.razor

@page "/RouterPages"
@page "/RouterPagesName"
<h3>多路由测试案例</h3>

@code {

}

修改NavMenu.razor组建导航

<div class="@NavMenuCssClass" @οnclick="ToggleNavMenu">
    <nav class="flex-column">
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="" Match="NavLinkMatch.All">
                <span class="oi oi-home" aria-hidden="true"></span> Home
            </NavLink>
        </div>
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="RouterPages">
                <span class="oi oi-plus" aria-hidden="true"></span>RouterPages多路由测试案例
            </NavLink>
        </div>
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="RouterPagesName">
                <span class="oi oi-list-rich" aria-hidden="true"></span>RouterPagesName多路由测试案例
            </NavLink>
        </div>
    </nav>
</div>

效果:

在这里插入图片描述

在这里插入图片描述

2. @attribute 指令指定基于常量的路由模板

新建一个Constants.razor

@attribute [Route("counter")]
<h3>基于常量的路由模板</h3>

@code {

}

修改NavMenu.razor组建导航,添加如下代码

        <div class="nav-item px-3">
            <NavLink class="nav-link" href="counter">
                <span class="oi oi-list-rich" aria-hidden="true"></span>Constants
            </NavLink>
        </div>

效果

在这里插入图片描述

404Page提供自定义内容

修改NavMenu.razor组建导航,添加如下代码

      <div class="nav-item px-3">
          <NavLink class="nav-link" href="404Page">
              <span class="oi oi-list-rich" aria-hidden="true"></span>404处理
          </NavLink>
      </div>C#

在这里插入图片描述

找到App.razor文件进行修改

<Router AppAssembly="@typeof(App).Assembly">
    <Found Context="routeData">
        <RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
        <FocusOnNavigate RouteData="@routeData" Selector="h1" />
    </Found>
    <NotFound>
        <PageTitle>Not found</PageTitle>
        <LayoutView Layout="@typeof(MainLayout)">
            <p role="alert">在玩命的开发中。。。。</p>
        </LayoutView>
    </NotFound>
</Router>

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值