图解 BootstrapBlazor 组件库的使用01:在 .NET 8.0 的 Blazor Web App 项目模板中引用 BootstrapBlazor

一、在 Visual Studio 2022 中创建 Blazor Web App 项目

图1-1

图1-2

图1-3

注:如果 Interactivity location 选择 Per page/component ,则需要在 App.razor 中的 Routes 组件中指定 rendermode ,否则 BootstrapBlazor 中的 Layout 组件中的侧边栏折叠按钮无效。示例代码:<Routes @rendermode="InteractiveServer" />

二、使用 NuGet 引用 BootstrapBlazor,尽量选择最新版本

图2-1

图2-2

三、使用 NuGet 引用 BootstrapBlazor.FontAwesome,尽量选择最新版本

图3-1

四 、在 Program.cs 中添加引用

注:Blazor Web App 不使用 <NotFound> 模板,需要自定义出错处理页面。

............
............
............

// Add services to the container.
builder.Services.AddRazorComponents()
    .AddInteractiveServerComponents();

// BootstrapBlazor 引用
builder.Services.AddBootstrapBlazor();

var app = builder.Build();

............
............
............

// 指定错误处理页面:本例直接使用项目模板自带的 Error.razor
app.UseStatusCodePagesWithRedirects("/Error");

app.Run();

代码4-1

五、在 _Imports.razor 中添加引用

............
............
............
@using static Microsoft.AspNetCore.Components.Web.RenderMode
@using Microsoft.AspNetCore.Components.Web.Virtualization
@using Microsoft.JSInterop
@using BlazorWebApp.WithBB
@using BlazorWebApp.WithBB.Components

@* BootstrapBlazor 引用 *@
@using BootstrapBlazor.Components

代码5-1

六、在 App.razor 中添加引用,指定 rendermode(完整示例)

注:如果不指定 @rendermode="InteractiveServer",则 Layout 组件中的侧边栏折叠按钮无效。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <base href="/" />

    @* BootstrapBlazor 中已集成 Bootstrap 最新版,项目模板自带的则不再需要。
    <link rel="stylesheet" href="bootstrap/bootstrap.min.css" /> *@

    @* 引用 BootstrapBlazor 样式(已集成 Bootstrap 最新版)。 *@
    <link rel="stylesheet" href="_content/BootstrapBlazor/css/bootstrap.blazor.bundle.min.css" />
    @* FontAwesoem 字体样式 注意需要使用 NuGet 引用 BootstrapBlazor.FontAwesome 包。 *@
    <link rel="stylesheet" href="_content/BootstrapBlazor.FontAwesome/css/font-awesome.min.css" />
    @* 如果不使用 Motronic 样式,则下句不需要。 *@
    <link rel="stylesheet" href="_content/BootstrapBlazor/css/motronic.min.css" />

    @* 自动生成的当前项目的样式表文件,可以保存自定义样式。 *@
    <link rel="stylesheet" href="app.css" />
    @* 自动生成的隔离样式文件,不需要修改。 *@
    <link rel="stylesheet" href="BlazorWebAppWithBB.styles.css" />
    <link rel="icon" type="image/png" href="favicon.png" />
    @* 创建 Blazor Web App 项目时选择的是 Server、Global 模式,则此处自动生成匹配说明:@rendermode="InteractiveServer"。 *@
    <HeadOutlet @rendermode="InteractiveServer" />
</head>

<body>
    @* 创建 Blazor Web App 项目时选择的是 Server、Global 模式,则此处自动生成匹配说明:@rendermode="InteractiveServer"。
    注1:此处指定 rendermode 后,则在其它 razor 组件中可以不再单独添加。
    注2:如果创建项目时选择 Server、Per page/component 模式,则需要在每个有动态更新操作的 razor 文件中单独指定 rendermode。 *@
    <Routes @rendermode="InteractiveServer" />

    @* BootstrapBlazor 引用 *@
    <script src="_content/BootstrapBlazor/js/bootstrap.blazor.bundle.min.js"></script>

    <script src="_framework/blazor.web.js"></script>
</body>

</html>

代码6-1

七、在 app.css 文件中添加 BootstrapBlazor 中的 Layout 组件(参见 代码8-1)需要的样式

html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

............
............
............

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}


/* ********** 以下 css 为 BootstrapBlazor 的 <Layout> 组件使用(下列样式可根据自己项目的需要进行修改)。 ********** */
.layout-header {
    border-bottom: 1px solid var(--bs-border-color);
}
.layout-banner {
    border-bottom: 1px solid var(--bs-border-color);
}
.layout-side {
    border-right: 1px solid var(--bs-border-color);
}


.layout {
     --bb-layout-user-height: 0px;
 }


.layout-footer-gray {
    color: gray;
    cursor: pointer;
}


代码7-1

八、在 Layout 文件夹中创建 BootstrapBlazor 的 Layout 模板: BBLayout.razor(完整示例)

图8-1

@inherits LayoutComponentBase

<BootstrapBlazorRoot>

    <Layout SideWidth="0" IsPage="true" IsFullSide="true" ShowCollapseBar="true"
            IsFixedHeader="true" IsFixedFooter="true"
            ShowFooter="true" ShowGotoTop="true"
            Menus="@Menus"
            UseTabSet="true" TabDefaultUrl="/">
        <Header>
            <span class="ms-3 flex-fill">Blazor Web App 模板引用 BootstrapBlazor</span>
            <span class="mx-3 d-none d-sm-block">登录用户名</span>
        </Header>
        <Side>
            <div class="layout-banner">
                <img alt="logo" class="layout-logo" src="favicon.png" />
                <div class="layout-title">
                    <span>项目名称</span>
                </div>
            </div>
        </Side>
        <Main>
            @Body
        </Main>
        <Footer>
            <div class="text-center flex-fill">
                <a class="layout-footer-gray">版权说明、使用说明</a>
            </div>
        </Footer>
    </Layout>

</BootstrapBlazorRoot>


@code {
    private IEnumerable<MenuItem>? Menus { get; set; }

    protected override async Task OnInitializedAsync()
    {
        await base.OnInitializedAsync();

        Menus = new List<MenuItem>
        {
            new () { Text = "Home", Icon = "fa-fw fa-solid fa-house", Url = "/" },
            new () { Text = "counter", Icon = "fa-fw fa-solid fa-desktop", Url = "/counter" },
            new() { Text = "weather", Icon = "fa-fw fa-solid fa-laptop", Url = "/weather" }
        };
    }
}

代码8-1:BBLayout.razor

九、在 Home.razor、Counter.razor 等页面中使用 BootstrapBlazor 的 Layout 模板

@page "/"

@* 指定使用 BBLayout *@
@layout BlazorWebAppWithBB.Components.Layout.BBLayout

<PageTitle>Home</PageTitle>

<h1>Hello, world!</h1>

Welcome to your new app.

 代码9-1

@page "/counter"

@* 指定使用 BBLayout *@
@layout BlazorWebAppWithBB.Components.Layout.BBLayout

<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++;
    }
}

代码9-2

十、运行程序,查看效果

图10-1 

图解深度学习与神经网络:从张量到tensorflow实现》是一本介绍深度学习和神经网络的图书,主要通过图解和实例展示了相关概念和实现方法。 首先,深度学习是一种机器学习方法,它通过构建多层神经网络来模拟人脑的工作原理,并通过大数据的学习来进行模型的训练和优化。深度学习在图像识别、语音识别、自然语言处理等领域有着广泛的应用。 该书从图解的角度出发,通过生动的插图和可视化的方式,向读者介绍了深度学习的基本概念。例如,它解释了神经元和神经网络的概念,展示了神经网络的结构和工作原理,并深入讲解了前向传播和反向传播的过程。 除了介绍基本概念,该书还通过具体的实例和代码示例,教读者如何使用tensorflow框架来实现深度学习模型。通过该书的学习,读者可以了解如何使用张量(tensor)这一基本数据结构,在tensorflow构建神经网络模型,并通过优化算法进行训练和调优。同时,该书还涵盖了一些常见的深度学习模型,如卷积神经网络(CNN)和循环神经网络(RNN)等的实现方法。 总体而言,《图解深度学习与神经网络:从张量到tensorflow实现》是一本适合初学者的入门教材。它通过图示和实例,直观地展示了深度学习和神经网络的基本概念和实现方法。读者可以通过学习该书,初步掌握深度学习的基础知识,并能够使用tensorflow框架实现简单的深度学习模型。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值