Blazor创建共享组件库

时间:2019-07-01 16:20:47

标签: c# .net-core blazor

我正在尝试找出如何在Blazor中创建共享组件库的方法。基本上,我想一次创建我的组件,然后能够在多个UI项目中使用它们。

组件库

我如下创建了一个简单的组件库

dotnet new blazorlib -n UsComponentLibrary.Lib

创建了一个组件component1.razor

<h3>Component1 from lib</h3>

@code {

}

UI

我在ui项目中添加了对该库的引用。编辑了_host.chtml文件以使其包含

@page "/"
@namespace UsComponentLibrary.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, UsComponentLibrary.Lib

将其添加到页面之一

@page "/counter"

hello

<Component1></Component1>

@code {


}

输出

它唯一显示的是Hello,我不是从库中的组件获取文本。我想念什么?就像ui页面可以看到该组件,但是当我运行它时,它不存在。

1 个答案:

答案 0 :(得分:1)

您需要使用using语句而不是addTagHelper从库项目中导入名称空间。这是预览版4带来的更改。

我建议您在UI项目中编辑根_Imports.razor文件,并在其中添加名称空间。它应该看起来像这样:

@using UsComponentLibrary.Lib
@using UsComponentLibrary.Lib.Components
@using UsComponentLibrary.Lib.WhatEverOtherNameSpaceYouNeed

值得注意的是,Blazor库项目将很快折旧,而Razor类库将成为共享Blazor应用程序组件的方式。