页面往返路由时状态是否保留?Navigator方法对页面状态的影响
Flutter路由往返时的页面状态与组件生命周期
1. Navigator.pushNamed() 操作时的表现
- 页面组件:目标页面的组件会全新创建,因为该页面是首次被加入路由栈(重复跳转时每次都会新增栈元素),不存在已有的组件实例。
- 页面状态:对应组件的状态(如StatefulWidget的State对象)也会同步初始化,是全新的状态实例,与任何历史状态无关。
2. Navigator.pop() 操作时的表现
- 页面组件:返回的上一页组件实例不会重新创建,它始终保存在路由栈中,并未被销毁。
- 页面状态:上一页的状态会完全保留,与上次显示时的状态完全一致,比如输入框内容、滚动位置、变量值等都会维持原有状态。
内容的提问来源于stack exchange,提问作者porton
相关产品推荐
相关产品推荐

