在设置根组件参数时,会触发叶组件的OnParametersSet事件,但是不会触发OnInitialized,毕竟,是“设置了参数”。
代码逻辑:
1)在root组件中:
@code{
public string MyNameTest1{set;get;} = "root:AAA";
public string MyNameTest2{set;get;} = "root:BBB";
private void onclick()
{
MyNameTest1 = "root:test";
}
}在Leaf组件中:
//不触发
protected override async void OnInitialized()
{
Message = "OnInitialized";
Task.Delay(3000);
}
//触发
protected override void OnParametersSet()
{
if (Message == "")
{
Message = "OnParametersSet empty";
}
else
{
Message = "OnParametersSet is" + Test1;
}
}
在Blazor应用中,修改根组件的参数会触发叶组件的OnParametersSet事件,但不会触发OnInitialized。当根组件的属性如MyNameTest1改变时,这会影响到依赖这些参数的叶组件,导致它们的OnParametersSet方法被调用,而OnInitialized只在组件首次加载时执行一次,因此不会因参数改变而再次触发。
1361

被折叠的 条评论
为什么被折叠?



