flutter:Navigator.push和Navigator.pushReplacement

  1. Navigator.push
  2. Navigator.pushReplacement
  3. 使用场景对比

Navigator.push

作用:把一个新的路由(页面)压入栈顶

特点

  • 当前页面(旧页面)还在路由栈里,只是被新页面盖住了。
  • 你可以在新页面里调用 Navigator.pop(context) 回退到旧页面。

总之:push 是「叠加页面」的逻辑

页面栈: [A]
Navigator.push(B)
页面栈: [A, B]
Navigator.pop()
页面栈: [A]

Navigator.pushReplacement

作用:把一个新的路由(页面)替换当前的路由

特点

  • 当前页面(旧页面)会被移出栈,新的页面取而代之。
  • 不能返回到旧页面,因为它已经被销毁了。
  • 适用于:登录成功后跳转到主页、引导页跳到应用首页等场景。

总之:replacement 是「替换页面」的逻辑。

页面栈: [A]
Navigator.pushReplacement(B)
页面栈: [B]

使用场景对比

方法 适用场景
push 普通页面跳转,需要能回退时
pushReplacement 登录页 → 首页、Splash页 → 首页、完成注册 → 首页,不需要回退时

×

喜欢就点赞,疼爱就打赏