|
最近组件库更新比较频繁,有些同学感觉有点迷茫,就着今天刚上了张老板一节课立马撸个新的上手教程回馈社区, ;->
1.新建工程b18QuickStartv757,将项目添加到解决方案中
- dotnet new blazorserver -o b18QuickStartv757
- dotnet sln add b18QuickStartv757/b18QuickStartv757.csproj
复制代码 2.使用 nuget.org 进行 BootstrapBlazor 组件安装, FreeSql sqlite库,字体 ..
- dotnet add b18QuickStartv757 package BootstrapBlazor
- dotnet add b18QuickStartv757 package BootstrapBlazor.FontAwesome
复制代码 2.样式表和Javascript 引用
增加主题样式表到 Pages/_Host.cshtml 文件中
删除
并在下面添加两行- [/code]添加 Javascript 引用到 Pages/_Host.cshtml 文件中
- 在 之前添加
- [code]
复制代码 3.添加增加命名空间引用到 _Imports.razor 文件中
- @using BootstrapBlazor.Components
复制代码 4.增加 BootstrapBlazorRoot 组件到 App.razor 文件中
- <BootstrapBlazorRoot>
- <Router AppAssembly="@typeof(App).Assembly">
- ...
- </Router>
- </BootstrapBlazorRoot>
复制代码 5.添加BootstrapBlazor服务到 Program.cs 文件中
在 builder.Services.AddSingleton(); 后加入- builder.Services.AddBootstrapBlazor();
复制代码 以下步骤纯属个人喜好 , 改造原版 NavMenu 组件
6. 新建 menu.js 文件
在 wwwroot 建立 modules文件夹, 新建 menu.js 文件- import Data from "../_content/BootstrapBlazor/modules/data.js";
- import EventHandler from "../_content/BootstrapBlazor/modules/event-handler.js";
- export function init(id) {
- var el = document.getElementById(id)
- if (el === null) {
- return
- }
- const navbar = el.querySelector('.navbar-toggler')
- const menu = el.querySelector('.sidebar-content')
- const nav = { navbar, menu }
- Data.set(id, nav)
- EventHandler.on(navbar, 'click', () => {
- menu.classList.toggle('show')
- })
- EventHandler.on(menu, 'click', '.nav-link', e => {
- const link = e.delegateTarget
- const url = link.getAttribute('href');
- if (url !== '#') {
- menu.classList.remove('show')
- }
- })
- }
- export function dispose(id) {
- const nav = Data.get(id)
- if (nav) {
- EventHandler.off(nav.navbar, 'click');
- EventHandler.off(nav.menu, 'click', '.nav-link');
- }
- }
复制代码 7. 替换 Shared\NavMenu.razor 文件
- @inherits BootstrapModuleComponentBase
- @attribute [JSModuleAutoLoader("./modules/menu.js", Relative = false)]
-
- <a target="_blank" href="https://www.cnblogs.com/">Demo</a>
- <button aria-label="toggle">
-
- </button>
-
-
-
- <Menu Items="@Menus" IsVertical="true" IsAccordion="true" IsExpandAll="true" />
-
-
复制代码 8. 新建 Shared\NavMenu.razor.cs 文件
- using BootstrapBlazor.Components;
- using Microsoft.AspNetCore.Components.Routing;
- namespace b18QuickStartv757.Shared;
- public partial class NavMenu
- {
- private IEnumerable<MenuItem> Menus { get; set; } = new List<MenuItem>
- {
- new MenuItem() { Text = "首页", Url = "/" , Match = NavLinkMatch.All},
- new MenuItem() { Text = "Counter", Url = "/counter" },
- new MenuItem() { Text = "Fetch data", Url = "/fetchdata" },
- new MenuItem() { Text = "工具" ,Items= new List<MenuItem>
- {
- new MenuItem() { Text = "Counter", Url = "/counter" },
- new MenuItem() { Text = "Fetch data", Url = "/fetchdata" },
- }
- },
- };
- }
复制代码 9. 替换 Shared\MainLayout.razor 文件
- @inherits LayoutComponentBase
- @using System.Reflection
- <section >
-
-
- DEMO
-
- <NavMenu />
-
-
-
- <Tab ClickTabToNavigation="true"
- ShowExtendButtons="true"
- ShowClose="true"
- Body=@Body />
-
-
- </section>
复制代码 10. 替换 Shared\MainLayout.razor.css 文件
11. Index.razor 在@page下一行添加 attribute
- @attribute [TabItemOption(Text = "Index")]
复制代码 12. 运行
来源:https://www.cnblogs.com/densen2014/archive/2023/04/27/17357815.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|