asp.net Core blazor学习笔记

ops/2024/9/19 11:47:45/ 标签: asp.net, 学习, 笔记

最近在研究学习blazor,为了加深记忆,手动记录一下,以下内容为个人理解记录,仅供参考:

Blazor开发学习

  • 一 分类
    • 1 Blazor Server 应用
    • 2 Blazor WebAssembly 应用
    • 3 Blazor Hybrid 应用和 .NET MAUI
  • 二 基础知识
    • 1 路由
    • 2 组件库的使用
      • 2.1 组件库修饰
      • 2.2 对组件进行分组
      • 2.3 组件继承
      • 2.4级联参数的使用
      • 2.5 新建blazor项目,自带的图标
      • 2.6 动态切换组件显示
      • 2.7 系统配置信息
      • 2.7 内置组件使用
      • 2.8 弹出框组件使用
      • 2.9 支持的 EventArgs 显示在下表中
      • 2.10 延时控制组件
    • 3 注意
      • 3.1 设置打开的第一个界面
      • 3.2 IIS部署
    • 4 涨知识

一 分类

1 Blazor Server 应用

2 Blazor WebAssembly 应用

速度略慢,使用AOT编译可以提供速度,相应的应用会变大。

3 Blazor Hybrid 应用和 .NET MAUI

WPF开发,Windows桌面应用开发及移动设备应用开发。

二 基础知识

1 路由

@page “路由名称(小写字母、横线)”,可以写多个路由

2 组件库的使用

2.1 组件库修饰

若要对组件添加css样式,可创建“组件.razor.css”

2.2 对组件进行分组

使用组件时,添加上分组文件夹即可。

2.3 组件继承

关键字:@inherits 可使用继承组件的属性和方法

2.4级联参数的使用

使用CascadingValue向子组件传递数据,多个级联参数,需要Name属性相关联

//父组件
<CascadingValue Value="@isShowTips" Name="isShowTips"><CascadingValue Value="@tipPosition" Name="tipPosition"><KpComponents.BaseComponents.DlgTips DlgClass="tip-near" TrangleClass="tip-trangle-top" Content="数据归属机构:当前账户所属机构在为哪个机构工作,最终数据归当前机构所有" /></CascadingValue>
</CascadingValue>@code{private bool isShowTips = false;  //是否显示提示框private string tipPosition;
}//子组件/// <summary>/// 是否进行显示/// </summary>[CascadingParameter(Name= "isShowTips")]public bool isShowTips { get; set; }/// <summary>/// 组件位置信息/// </summary>[CascadingParameter(Name= "tipPosition")]public string tipPosition { get; set; }

2.5 新建blazor项目,自带的图标

请添加图片描述
请添加图片描述

2.6 动态切换组件显示

<DynamicComponent Type="组件的命名空间" />

2.7 系统配置信息

系统配置信息在:wwwroot/appsettings.json
使用方式:

//JSON文件
{"h1FontSize": "50px"
}
//组件使用
@page "/configuration-example"
@using Microsoft.Extensions.Configuration
@inject IConfiguration Configuration   //将 IConfiguration 实例注入到组件中来访问配置数据<h1 style="font-size:@Configuration["h1FontSize"]">Configuration example
</h1>

2.7 内置组件使用

PageTitle 用以设置导航栏显示的名称

2.8 弹出框组件使用

没有内置组件,可以使用第三方组件:
请添加图片描述
在Program.cs中进行组件注册:

builder.Services.AddBlazoredModal();

在wwwroot的index.html中引入相关js和css文件:

<link href="_content/Blazored.Modal/blazored-modal.css" rel="stylesheet" />
<script src="_content/Blazored.Modal/blazored.modal.js"></script>

根据需要引入命名空间

@using Blazored.Modal
@using Blazored.Modal.Services

使用方式

[Inject] 
protected IModalService ModalService { get; set; }/// <summary>
/// 方法参数:
///string title:弹出框标题
///ModalParameters parameters:组件参数Dictionary<string, object>
///ModalOptions options:可以控制位置、弹出方式等信息
/// </summary>
ModalService.Show<组件>(方法参数);

2.9 支持的 EventArgs 显示在下表中

请添加图片描述
请添加图片描述

2.10 延时控制组件

	private async Task ShowTips(MouseEventArgs e)      //注意使用async  Task{tipPosition = $"top:{e.PageY + 5}px;left:{e.PageX-260}px;";isShowTips = true;await Task.Delay(3000);     //延时时间设置isShowTips = false;}

3 注意

3.1 设置打开的第一个界面

项目配置打开的首个Razor界面,需要在App.razor中进行配置:
请添加图片描述
注意打开的第一个Razor界面需要:

@inherits LayoutComponentBase

否则界面无法正常显示。

3.2 IIS部署

使用VS工具发布之后,生成的文件内容如下:
在这里插入图片描述
使用IIS无托管部署之后,需要安装:rewrite_amd64_zh-CN
https://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads

4 涨知识

<link rel="icon" href="images/Mylogo.ico" />  //用以设置标题栏图标

http://www.ppmy.cn/ops/97200.html

相关文章

嵌入式堆栈、ARM寄存器

栈里面存放的内容&#xff1a;局部变量和系统信息&#xff0c;函数调用链路也是系统信息的一环 ARM寄存器 LR&#xff1a;程序跳转的时候&#xff0c;返回到的地址就保存到此处 PC&#xff1a;程序计数器&#xff0c;pc 要执行的下一条指令地址&#xff0c;就存放在此处&#…

设计模式六大原则(四)--接口隔离原则

1. 简介 1.1. 概述 接口隔离原则(Interface Segregation Principle,简称ISP)是设计模式六大原则之一,它指出在一个系统中,应该尽量将接口拆分成更小、更具体的接口,避免出现过大、过于臃肿的接口。这个原则强调了接口的设计应该尽可能地符合“单一职责”原则,即每个接…

C# Unity 面向对象补全计划 之 Switch 表达式(c# 8.0++)

前置知识&#xff1a;lambda表达式&#xff0c;枚举与Switch&#xff08;传统语法&#xff09;C# & Unity 面向对象补全计划 之 匿名函数与Lambda表达式-CSDN博客 C# 8.0引入了 switch 表达式&#xff0c;是一个语法糖&#xff08;类的属性get set就是一种语法糖&#xff0…

ubuntu 安装node

安装node 由于项目使用node 16.x开发&#xff0c;因此在Jenkins上&#xff0c;安装node 16.x 使用curl下载NodeSource的安装脚本&#xff1a; curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - 安装Node.js&#xff1a; sudo apt-get install -y nodejs验证…

[Day 59] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

區塊鏈的共識算法優化 前言 區塊鏈作為一種顛覆性的分布式賬本技術,其核心在於共識機制的設計。不同的共識算法如比特幣的工作量證明(Proof of Work, PoW)、以太坊的權益證明(Proof of Stake, PoS)以及其他如授權證明(Proof of Authority, PoA)、委託權益證明(Delegated Proof…

杭州百腾教育科技 TiDB 6.5 to 7.5 升级记录

作者&#xff1a; reAsOn2010 原文来源&#xff1a; https://tidb.net/blog/612103f3 背景 使用 TiDB 作为我们的全量数据库已经有六七年了&#xff0c;当时还是 2.0 版本。早期TiDB的迭代和新特性的发布对于实际使用的影响还是很大的&#xff0c;所以从那个时候开始就有每…

Windows Server 2012 R2服务器安装CVE-2024-38077补丁KB5040456的安装及问题解决

Windows 远程桌面授权服务远程代码执行漏洞CVE-2024-38077&#xff0c;该漏洞影响: 远程执行代码&#xff0c;漏洞最高严重性: 严重。本文记录了Windows Server 2012 R2服务器补丁KB5040456的安装及报错“此更新不适用于你的计算机”的问题解决过程。 一、漏洞相关信息 1.影响…

「OC」探索CALayer:基础知识与实用技巧简要介绍

「OC」探索CALayer&#xff1a;基础知识与实用技巧简要介绍 文章目录 「OC」探索CALayer&#xff1a;基础知识与实用技巧简要介绍前言认识CALayerCALayer的相关属性 UIView和CALayer区别联系创建UIView和CALayer的原因 开始创建CALayer视图层级CALayers 和 Sublayersposition与…

鸿蒙HarmonyOS实战:IPC与RPC设备内进程通信

基本 IPC&#xff08;Inter-Process Communication&#xff09;与RPC&#xff08;Remote Procedure Call&#xff09;用于实现跨进程通信&#xff0c;不同的是前者使用Binder驱动&#xff0c;用于设备内的跨进程通信&#xff0c;后者使用软总线驱动&#xff0c;用于跨设备跨进…

如何快速进入医疗器械维修行业

在当今医疗技术飞速发展的时代&#xff0c;医疗器械维修行业作为医疗服务的重要支撑&#xff0c;展现出了广阔的发展前景和就业机会。对于那些有志于进入这一领域的人来说&#xff0c;掌握正确的方法和途径至关重要。 首先&#xff0c;扎实的知识储备是进入医疗器械维修行业的…

以太网交换基础

1.以太网协议介绍 以太网是当今现有局域网&#xff08;Local Area Network, LAN&#xff09;采用的最通用的通信协议标准&#xff0c;该标准定义了在局域网中采用的电缆类型和信号处理方法。 冲突域 冲突域是指连接在同一共享介质上的所有节点的集合&#xff0c;冲突域内所有…

Graphpad Prism for Mac 医学绘图软件教程

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件&#xff0c;将其从左侧拖入右侧文件夹中&#xff0c;等待安装完毕2、应用程序显示软件图标&#xff0c;表示安装成功 三、运行测试安装完成&#xff01;&#xff01;&#xff01; 效果 一、下载软件 下载软件…

数据库学习(进阶)

数据库学习&#xff08;进阶&#xff09; Mysql结构:连接层&#xff1a;服务层&#xff08;核心层&#xff09;&#xff1a;存储引擎层&#xff1a;系统文件层&#xff1a; 存储引擎&#xff08;概述&#xff09;:存储引擎特点&#xff1a;InnoDB存储引擎&#xff1a;(为并发条…

day23-测试自动化之Appium的滑动和拖拽事件、高级手势ActionChains、手机操作API

目录 一、滑动和拖拽事件 1.1.应用场景 1.2.swipe滑动事件 1.3.scroll滑动事件 1.4.drag_and_drop拖拽事件 1.5.滑动和拖拽事件的选择 二、高级手势ActionChains 2.1.应用场景 2.2.使用步骤 2.3.注意点 2.4.方法 1).手指轻敲操作 (掌握) 2).手势按下和抬起操作(掌握&#xff0…

响应式Web设计:纯HTML和CSS的实现技巧-1

响应式Web设计&#xff08;Responsive Web Design, RWD&#xff09;是一种旨在确保网站在不同设备和屏幕尺寸下都能良好运行的网页设计策略。通过纯HTML和CSS实现响应式设计&#xff0c;主要依赖于媒体查询&#xff08;Media Queries&#xff09;、灵活的布局、可伸缩的图片和字…

React 入门第一天:从Vue到React的初体验

作为一名合格的前端工程师&#xff0c;怎么能只会Vue呢&#xff1f;学习React不仅是一场新技术的探索&#xff0c;更是对前端开发思维的一次重新审视。在这里&#xff0c;我将分享学习React的心得&#xff0c;希望能帮助那些和我一样从Vue转向React的开发者。 1. 为什么选择Re…

playbook(剧本)基本应用、playbook常见语法、playbook和ansible操作的编排

playbook(剧本): 是ansible⽤于配置,部署,和管理被控节点的剧本。⽤ 于ansible操作的编排。 使⽤的格式为yaml格式 一、YMAL格式 以.yaml或.yml结尾 ⽂件的第⼀⾏以 "---"开始&#xff0c;表明YMAL⽂件的开始(可选的) 以#号开头为注释 列表中的所有成员都开始于…

思特科技案例:北京欢乐谷光影乐园

01      在北京欢乐谷的亲子领域&#xff0c;藏着一处“面积近400平米&#xff0c;炫酷堪比魔法世界的、美轮美奂的光影空间&#xff0c;做到了“让娃来了不想走&#xff0c;一玩就是一下午”。    思特科技案例&#xff1a;北京欢乐谷光影乐园      02      作…

STM32之SPI读写W25Q128芯片

SPI简介 STM32的SPI是一个串行外设接口。它允许STM32微控制器与其他设备&#xff08;如传感器、存储器等&#xff09;进行高速、全双工、同步的串行通信。通常包含SCLK&#xff08;串行时钟&#xff09;、MOSI&#xff08;主设备输出/从设备输入Master Output Slave Input&…

Godot关于fbx格式文件导入

查看文档fbx格式是支持&#xff0c;看我的文件也是存在&#xff0c;就是在编辑器中文件系统找不到。解决方案如下 确保你开启了fbx导入&#xff0c;之后自动重启就可以导入了&#xff0c;unity的模型也可以用。什么立方体胶囊之类的。