网站网页主页的区别图书馆网站开发策划书

bicheng/2026/1/16 10:23:42/文章来源:
网站网页主页的区别,图书馆网站开发策划书,网站开发与应用,做婚姻网站赚钱前言最近写了多篇关于Source Generators的文章#xff0c;发现它确实可以简化我们的部分开发工作。这不#xff0c;我又盯上了Blazor。问题默认的NavMenu.razor组件用于显示导航菜单#xff0c;它的部分代码如下#xff1a;div classNavMenuCssClass oncli… 前言最近写了多篇关于Source Generators的文章发现它确实可以简化我们的部分开发工作。这不我又盯上了Blazor。问题默认的NavMenu.razor组件用于显示导航菜单它的部分代码如下div classNavMenuCssClass onclickToggleNavMenuul classnav flex-columnli classnav-item px-3NavLink classnav-link href MatchNavLinkMatch.Allspan classoi oi-home aria-hiddentrue/span Home/NavLink/lili classnav-item px-3NavLink classnav-link hrefcounterspan classoi oi-plus aria-hiddentrue/span Counter/NavLink/lili classnav-item px-3NavLink classnav-link hreffetchdataspan classoi oi-list-rich aria-hiddentrue/span Fetch data/NavLink/li/ul /div 这也就意味着如果我们增加一个页面就要修改一次NavMenu.razor组件这当然是不合适的。实现原理我们查看obj\Debug\net5.0\Razor\Pages\Counter.razor.g.cs编译时生成的中间文件可以看到如下代码[Microsoft.AspNetCore.Components.RouteAttribute(/counter)] public partial class Counter : Microsoft.AspNetCore.Components.ComponentBase 它其实对应源代码里的page /counter 也就是说只要我们遍历所有的Microsoft.AspNetCore.Components.RouteAttribute获得路由信息放到ListMenu即可。具体实现代码如下[Generator]public class MenuGenerator : ISourceGenerator{private const string MenuClassText   public class Menu {public string Route { get; set; }public string Title { get; set; } };public void Initialize(GeneratorInitializationContext context){}public void Execute(GeneratorExecutionContext context){context.AddSource(Menu, SourceText.From(MenuClassText, Encoding.UTF8));var options  (context.Compilation as CSharpCompilation).SyntaxTrees[0].Options as CSharpParseOptions;var compilation  context.Compilation.AddSyntaxTrees(CSharpSyntaxTree.ParseText(SourceText.From(MenuClassText, Encoding.UTF8), options));var allClasses  compilation.SyntaxTrees.SelectMany(x  x.GetRoot().DescendantNodes().OfTypeClassDeclarationSyntax());var sourceBuilder  new StringBuilder( using System.Collections.Generic; namespace MenuGenerator {public static class NavHelper{public static IEnumerableMenu GetMenus(){return new ListMenu {);foreach (var classDeclarationSyntax in allClasses){var routeAttribute  classDeclarationSyntax.AttributeLists.SelectMany(x  x.Attributes).FirstOrDefault(attr  attr.Name.ToString()  Microsoft.AspNetCore.Components.RouteAttribute);if (routeAttribute ! null){var routeArg  routeAttribute.ArgumentList.Arguments.First();var routeExpr  routeArg.Expression;var semanticModel  compilation.GetSemanticModel(classDeclarationSyntax.SyntaxTree);var route  semanticModel.GetConstantValue(routeExpr).ToString();if (route  /) continue;var title  classDeclarationSyntax.Identifier.ToString();sourceBuilder.Append($  new Menu{{ Route  {route}, Title  {title} }},);}}sourceBuilder.Append( }; }} });context.AddSource(Mapper, SourceText.From(sourceBuilder.ToString(), Encoding.UTF8));}} 使用示例修改NavMenu.razor代码如下div classNavMenuCssClass onclickToggleNavMenuul classnav flex-columnli classnav-item px-3NavLink classnav-link href MatchNavLinkMatch.Allspan classoi oi-home aria-hiddentrue/span Home/NavLink/liforeach (var menu in MenuGenerator.NavHelper.GetMenus()){li classnav-item px-3NavLink classnav-link hrefmenu.Routespan classoi  aria-hiddentrue/span menu.Title/NavLink/li}/ul /div 编译后可以看到自动生成的代码运行后测试工作正常成功结论菜单信息还有许多地方需要扩展比如顺序、图标、菜单名称等这些可以通过添加自定义Attribute实现。如果你觉得这篇文章对你有所启发请关注我的个人公众号”My IO“记住我

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/90015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ssh框架做音乐网站为什么不能娶电商女

面试官:说说微信小程序的支付流程? 一、前言 微信小程序为电商类小程序,提供了非常完善、优秀、安全的支付功能 在小程序内可调用微信的API完成支付功能,方便、快捷 场景如下图所示: 用户通过分享或扫描二维码进入商…

大连开发区网站开发公司电话网页制作教程考拉

1、Linux RPATH & $ORIGIN 许多现代C / C 项目都利用Autotools创建GNU构建系统,例如 根据平台生成make文件。 可执行文件(二进制文件)在生成/编译过程中生成,并且可以在执行编译的计算机上本地执行。 但是,如果将…

无锡网站建设推广公司无锡网站建设价格费用

模板内的表达式是非常便利的,但是它们实际上只用于简单的运算。在模板中放入太多的逻辑会让模板过重且难以维护。这时候需要使用到vue的计算属性computed。 文件目录结构如下:利用vue脚手架创建 这里实现将一个字符串进行翻转的功能: 其中H…

做一晚水泥工歌曲网站怎么确认网站是什么语言做的

Git教程 版本库间的交换 1️⃣ 克隆版本库2️⃣ 如何告知 Git 其他版本库的位置3️⃣ 给版本库添加别名4️⃣ 获取数据5️⃣ 远程跟踪分支:监控其他分支6️⃣ 利用本地分支操作别处的版本库7️⃣ PULL操作8️⃣ PUSH操作9️⃣ 命名分支🌾 总结 Git 是个…

网站权重划分怎样建公司网站

一、自定义部件库 原则上尽量做到前后端分离,接口方便,复制简单。 1、单选框部件 # encoding: utf-8 ################################################### # 自定义的单选框 #################################################### 对外…

邯郸网络信息工程教育太原seo哪家好

在新一年的起始之际,我们很荣幸地与 Elektor 合作推出由乐鑫领衔编辑的杂志特刊。欢迎点此阅读电子版本。 Elektor 杂志作为国际电子工程和科技创新的重要平台,自 20 世纪 60 年代起,就引领着电子制造的发展潮流。如今,它已经发展…

mmd怎么做下载网站做网站开发数据库怎么写

一、实验目的 本次实验使用wireshark流量分析工具进行网络嗅探,旨在了解ping命令的原理及过程。 二、网络环境设置 本系列实验均使用虚拟机完成,主机操作系统为Windows 11,虚拟化平台选择Oracle VM VirtualBox,组网模式选择“N…

男女做那个全面视频网站设计方案步骤

现在有越来越多的朋友在工作中选择使用SOLIDWORKS Visualize正版软件,这真是太棒了!这次的主题是小索带大家了解SOLIDWORKS Visualize界面,让更多的朋友快速的熟悉SOLIDWORKS Visualize界面。 【菜单栏】位于界面的顶端,菜单栏包含多个下拉菜…

瑞安网站网站开发是分为前端和后端吗

CuratorFramework是一个ZooKeeper客户端库,它提供了一些用于处理ZooKeeper连接和节点操作的高级API。其中,blockUntilConnected方法是一个阻塞方法,它会一直阻塞直到客户端成功连接到ZooKeeper服务器。 具体来说,blockUntilConne…

杭州滨江的网站建设公司jquery 个人网站

一直以来,iOS端游戏作弊问题都是游戏行业的一大痛点。在当下游戏多端互通的潮流下,游戏作为一个整体,无论哪一端出现安全问题,都会造成更加严重的影响。因此,iOS端游戏安全保护也同样十分重要。 iOS独特的闭源生态&am…

怎么做hs网站黄页大全18勿看2000网站

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 ChatGPT体验地址 文章目录 前言IONetty1. 引入依赖2. 服务端4. 客户端结果 总结引导类-Bootstarp和ServerBootstrap连接-NioSocketChannel事件组-EventLoopGroup和NioEventLoopGroup 送书…

蚌埠网站制作公司价格wordpress 前台 很慢

BeetleX针对redis访问封了全async/await操作模式,通过它可以更高效地访问redis服务。BeetleX.Redis提供读写分离和多机故意写入处理,同时安全的TLS访问机制,在使用功能上组件支持绝大部分基础指令,并提供json,protobuf…

龙胜网站建设公司哪个网站可以做免费请帖

云计算作业 Linux DAY1[08/09] 1、创建alan1用户,并使用root用户切换用户至alan1用户。(两种方式切换【加-与不加-】,并总结其效果) [rootlocalhost ~]# useradd alan1 [rootlocalhost ~]# su alan1 [alan1localhost root]$ p…

深圳专业建站平台成免费crm软件排名

基本用法: 在终端中输入"uname"即可显示系统的内核名称。 可以结合不同的参数使用,获取更详细的系统信息。 常见参数: “-s”:显示操作系统名称。 “-n”:显示网络节点主机名。 “-r”:显示内核版…

手机网站 英文有口碑的做网站

前提 1、Qt当有界面 2、构造完成 满足以上两个条件qt会生成ui_xxx.h文件。 如何查看 方法1 在cpp文件中找到UI下的一个对象 如: ui->textEdit Ui::QWDialog按住Ctrl键,使用鼠标左键点击UI下的一个对象,如:textEdit、QWDia…

国外做任务网站有哪些wordpress后台代码修改

闭包: 可以访问外部函数的变量,在内层函数中访问到外层函数的作用域. 她可以创建私有变量,延长变量的生命周期。 function father() { Var name “baiyun”; function son() { Console.log(name,”name”); } son() } father(); 柯里…

如何在淘宝网做自己的网站网关高性能 网站建设

Java Downloads | Oracle JDK Builds from Oracle 以上压缩版,以下安装版 Java Downloads | Oracle 该链接往下拉能看到jdk8和jdk11的安装版 -- end

网站支付页面源代码网站下载服务器配置

现代农业养殖业中,养殖自动化温控系统已经成为提高生产效率和保障动物福利的关键技术之一。本篇文章将深入介绍养殖自动化温控系统的原理、组成、优势及其在不同类型养殖场中的应用实例,并展望该技术的未来发展。 一、养殖自动化温控系统概述 养殖自动…

自己架设网站服务器wordpress 积分集成

spring boot项目对参数进行校验时,比如非空校验,可以直接用validation包里面自带的注解。但是对于一些复杂的参数校验,自带的校验规则无法满足要求,此时需要我们自定义参数校验规则。自定义校验规则和自带的规则实现方式一样&…

重庆餐饮加盟网站建设自助免费建站

我们为用户开发了一种为云存储付费的新方法。 与亚马逊的 S3 等传统云存储相比,用户不必信任服务器。 我们使用比特币智能合约来确保支付取决于服务器的可检索性证明 (PoR),该证明只能在数据仍然可用且需要时可以检索的情况下生成。 可检索性证明 (PoR)…