这可能是一个愚蠢的问题。但是我试图阅读有关Blazor的更多信息,但是我对@code
始终感到困惑。据我了解,当您在客户端火焰中使用@code
时,所有内容都在客户端浏览器上本地运行。所以我有几个问题:
@code
块内部的代码是否在服务器或仍然客户端上运行? @code
块内部的代码实际上在blazor中是否已转换为JS?@ code块在Blazor Server应用程序和Blazor WebAssembly App中都使用,以在组件的视图(混合的C#+ HTML标记)部分及其代码部分之间进行分隔。这两个部分都被编译到单个ComponentBase类中。
当您在服务器端使用blazor时,@ code块内部的代码是否在服务器或静止客户端上运行?
您的Blazor服务器应用程序仅在服务器上运行。它发出通过SignalR连接传递到客户端浏览器的Html差异,并且客户端SignalR代码(JavaScript)用传递给它的Html差异更新DOM元素。
请注意,与Blazor Server App的客户端(浏览器)的每次交互都是在服务器上执行的。因此,如果单击按钮,则在服务器上执行附加到按钮的click事件的事件处理程序。
@ code块内的代码是否实际上在blazor中转换为JS?
没有它是C#中的代码,现在仍然如此。如果您的应用程序在Blazor Server App中,则再次在服务器上执行。如果在Blazor WebAssembly App中,则在浏览器中以C#、. Net程序集执行。它甚至没有编译成wasm。在浏览器上是.Net。但是,执行这些.Net程序集的mono运行时将编译为WebAssembly。
是否可以在服务器端blazor应用程序的客户端上本地运行C#代码?
从我在上面的内容中可以明显看出,事实并非如此。同样,Blazor Server App在服务器上执行。您的用例不是问题,可以轻松解决...
希望这有帮助...