作者: Simon Timms
可在Razor 类库(RCL)中跨项目共享组件。 Razor 组件类库可以包含在其中:
正如组件是常规 .NET 类型一样,RCL 提供的组件是普通的 .NET 程序集。
按照 ASP.NET Core Blazor 入门 一文中的指导配置 Blazor 的环境。
MyComponentLib1
。 选择 “创建” 。备注
如果在从模板生成 RCL 时选中 "支持页和视图" 复选框,则还会将 _Imports文件添加到生成的项目的根目录中,并提供以下内容以启用 razor 组件创作:
@using Microsoft.AspNetCore.Components.Web
手动将该文件添加到生成的项目的根目录中。
在命令行界面中,将Razor 类库模板(razorclasslib
)与dotnet new命令一起使用。 在下面的示例中,创建了一个名为 MyComponentLib1
的 RCL。 执行命令时,将自动创建包含 MyComponentLib1
的文件夹:
dotnet new razorclasslib -o MyComponentLib1
备注
如果从模板生成 RCL 时使用 -s|--support-pages-and-views
开关,则还应将 _Imports文件添加到生成的项目的根目录中,并提供以下内容以启用 razor 组件创作:
@using Microsoft.AspNetCore.Components.Web
手动将该文件添加到生成的项目的根目录中。
若要将库添加到现有项目,请在命令行界面中使用dotnet add reference命令。 在下面的示例中,将 RCL 添加到应用中。 在应用程序的项目文件夹中执行以下命令,并在其中包含库的路径:
dotnet add reference {PATH TO LIBRARY}
若要使用另一个项目的库中定义的组件,请使用以下方法之一:
在下面的示例中,MyComponentLib1
是包含 SalesReport
组件的组件库。
可以使用命名空间的完整类型名称引用 SalesReport
组件:
<h1>Hello, world!</h1> Welcome to your new app. <MyComponentLib1.SalesReport />
如果使用 @using
指令将库引入到范围中,也可以引用此组件:
@using MyComponentLib1 <h1>Hello, world!</h1> Welcome to your new app. <SalesReport />
将 @using MyComponentLib1
指令包含在顶级 _Import文件中,使库的组件可用于整个项目。 将指令添加到任何级别的 _Import razor文件,以将该命名空间应用于文件夹中的单个页面或一组页面。
由于组件库是标准的 .NET 库,因此将其打包并传送到 NuGet 与将任何库打包到 NuGet 没有什么不同。 在命令行界面中使用dotnet pack命令执行打包:
dotnet pack
在命令行界面中使用dotnet nuget push命令将包上传到 nuget。
RCL 可以包括静态资产。 静态资产可用于使用库的任何应用。 有关详细信息,请参阅 ASP.NET Core 的类库中的可重用 Razor UI。