Flutter điều hướng bằng một stack các route do Navigator quản lý.
- Navigator imperative:
Navigator.push(context, MaterialPageRoute(...))để mở màn hình,pop()để quay lại. Trực tiếp, hợp app đơn giản. - Named routes: khai báo bảng
routesrồiNavigator.pushNamed(context, '/detail'). Gọn nhưng docs khuyến nghị không dùng cho app phức tạp (khó truyền tham số/deep link). - Router API + go_router: khai báo theo URL/route declarative, xử lý tốt deep linking, web history, redirect/guard. Là lựa chọn được khuyến nghị cho app vừa–lớn.
Hay hỏi: khác biệt push vs pushReplacement, truyền dữ liệu qua route và nhận kết quả trả về bằng await Navigator.push(...).