Flutter 为什么当我 return 到我的原始页面时构建再次运行?

Flutter why when I return to my original page the build runs again?

为什么当我使用

调用另一个页面时出现抖动
Navigator.pushNamed(context, 'namePage', arguments: varHello);

在我名为 namePage 的页面中,我得到的参数 varHello 是这样的:

  @override
  Widget build(BuildContext context) {   
   final aux = ModalRoute.of(context).settings.arguments;
  }

为什么当我回到原来的页面时,namePage build 又被发送来调用? 例如,如果我将 print 放入 build

  @override
  Widget build(BuildContext context) {  
   print("hello world"); 
   final aux = ModalRoute.of(context).settings.arguments;
  }

当我转到控制台上的 namePage 页面时打印“hello world”

但是当我回到上一页(我发送调用名称页面的地方)时,控制台再次打印“hello world”

来自 Flutter 团队的回复。
Pages on Navigator stack rebuild when a new page is pushed https://github.com/flutter/flutter/issues/11655#issuecomment-348287396

这是按预期工作的。一般来说,您应该假设所有小部件都可以随时重建,而它们不会重建主要只是一种优化。

特别是,路线将重建,因为它们的导航器状态已更改,因此它们可能需要更新它们撤回按钮等的方式。