Blazor组件定义的字段内外代码指令
在@code指令外定义字段和在指令内定义字段有什么不同。
@{ int color = 128;}
for(int i =0; i<250 ;i++)
{
color++;
<span>@color </span>
}
<h1>@color</h1>
@code{
int color = 128;
}
我注意到,当我在for中使用这些时会有区别。。请解释发生了什么以及为什么发生。
区别在于范围和初始化变量的时间。
code
块中的内容在任何标记渲染之前都已初始化,并且可用于组件中的所有内容。
标记中的内容是本地的,并且只存在于标记的范围内——因此您可以将计数器或临时字符串变量之类的内容放在那里。
把你的标记想象成一个有趣的C#代码块,你就会有正确的想法。