有没有关于如何使用Blazor修改DOM的javascript库、插件的指南



我想使用Blazor,最好是服务器端。我还想使用、重用我现有的主题和视觉设计,但这次包括使用很棒的javascript库,通过编程修改DOM来实现它们的效果。

据我所知,Blazor使用虚拟DOM。我不明白的是,如果任何javascript代码在Blazors后面修改真实DOM,那么虚拟DOM怎么能与真实DOM同步。

我能想象的唯一方法是,如果Blazor内置了一个机制来处理这种情况,然而,即使Blazor出现多年后,我也看不到它的记录,我所谈论的问题似乎甚至不是谷歌搜索中的话题。

问题

有什么方法可以将Blazor与正在修改DOM的javascript库一起使用吗?我的意思是,Blazor是否有任何内置机制来处理这一问题,或者如果没有,是否有任何常见的最佳实践?

来自文档:

与文档对象模型(DOM(的交互

只有当该对象不会与Blazor交互。Blazor坚持DOM的表示,并直接与DOM对象交互。如果Blazor呈现的元素在外部直接使用JS进行修改或者通过JS Interop,DOM可能不再匹配Blazor的内部表示,这可能导致未定义的行为。未定义行为可能仅仅干扰元素的呈现,或者它们的功能,但也可能给应用程序或服务器

本指南不仅适用于您自己的JS互操作代码,还适用于应用程序使用的任何JS库,包括第三方框架,如BootstrapJS和jQuery。

在一些文档示例中,JS interop用于对元素纯粹是为了作为示例的一部分进行演示。在里面在这些情况下,文本中会出现警告。

有关详细信息,请参阅从.NET方法调用JavaScript函数在ASP.NET Core Blazor中。

最新更新