1

我正在构建剃刀类库。可以被多个应用程序使用。Razor 类库具有在 mudblazor 中开发的组件。

这是问题: Mudblazor 有静态文件(css,js)。这是由曾经消费过的客户推荐的。将来如果 mudblazor 被其他 UI 组件替换。客户可能需要更改静态文件的引用。在不更改客户端引用的情况下,我们可以做的最佳方法是什么。这意味着客户端不应更改任何内容(css、js 引用)。

4

1 回答 1

1

如果我正确理解了您的问题,您希望能够添加具有 JS 和 CSS 依赖项的组件,而无需在使用该组件的应用程序中添加额外的引用。因此,如果您稍后删除它们,您不需要返回并清理这些引用吗?

如果您有一个名为 MyCustomComponent 的组件,并且它有与之关联的 css 文件,但没有别的,您可以将它们命名为相同并将它们放在一起。然后,Blazor 将仅在该组件中使用它们。例如

  • MyCustomComponent.razor
  • MyCustomComponent.razor.css

这称为 CSS 隔离。https://docs.microsoft.com/en-us/aspnet/core/blazor/components/css-isolation?view=aspnetcore-5.0

如果您使用的是 .NET 6 和 VS2022 预览版,则最近添加了一个为 JS 添加此功能的功能。见https://github.com/dotnet/sdk/pull/19270

如果您使用的是 .NET 5,则 JS 仍需要位于 wwwroot 上,如下面的博客文章中所述

https://www.meziantou.net/javascript-isolation-in-blazor-components.htm

于 2021-10-30T11:46:59.517 回答