@function {} 块的目的是什么,我们为什么需要它

What is the purpose of the @function {} block and why do we need it

我试图了解 @functions {} 块在 blazor webassembly 中的重要性。如果我在 VS 中创建一个新的 blazor 项目,它看起来像下面开箱即用。我们有一个 @code 块。但是在许多 blazor 文档中,我看到 @functions{}..有什么区别?我什么时候应该使用哪个?我可以一起使用它们吗?我可以将它们嵌套在一起吗?当我看到 {} 时,我想到了 scope 变量和对象。 scope 和它有关系吗?为什么我要在剃刀页面中限定我的变量的范围?提前致谢。

一开始,使用了 @functions {} 块指令,它允许将 C# 成员(字段、属性和方法)添加到生成的 Blazor class。但随后 Steve Anderson 和他的朋友得出结论,一个新的指令术语应该取代 Razor Pages 中也使用的 @functions {}。经过 github 的长时间辩论,选择了 @code 术语。

无论何时使用旧代码,都应将 @functions 术语替换为 @code 术语。这只是为了保持一致性,因为术语 @functions 也受支持(可能是为了兼容性)。简而言之,您可以毫无问题地使用两者中的任何一个。但是一个人不能是一个“聪明的男孩”,并使用 @functions 这个词来给别人留下深刻印象他们是多么聪明。 @code 术语已被社区成功采用,这就是人们应该如何编码。

记住一件事很重要:不要在 Blazor 应用中同时使用这两个术语。保持一致。