# Navigator stack và screen state machine

> Navigator stack làm gì, vì sao app TicTac đổi màn bằng enum năm giá trị thay vì push và pop, và seam ScreenNavigator một method.

- URL: https://dantech.academy/courses/flutter-mobile-101/05-navigation/lesson-01-screen-state-machine
- Khóa học: [Flutter Mobile 101](https://dantech.academy/courses/flutter-mobile-101.md)
- Module: Kiến Trúc Màn Hình
- Thời lượng: 14 phút
- Độ khó: beginner
- Truy cập: Dành cho học viên

## Mục tiêu

- Đọc được một state machine điều hướng: enum AppScreen, goTo, và switch chọn màn
- Nêu được điều kiện khiến Navigator stack là thừa ở app này, và khi nào thì sẽ cần router thật

## Nội dung bài học

1. App Này Không Có Lịch Sử Back
2. Navigator Làm Gì, Và Vì Sao Ở Đây Không Cần
3. enum AppScreen
4. ScreenNavigator: Seam Hẹp
5. AppViewModel.goTo

## Học cùng AI agent

Toàn bộ bài học dành cho học viên của khóa. Học viên mở bài trên web và bấm nút **Markdown** để copy toàn bài, rồi dán vào Claude, ChatGPT, Cursor hoặc agent bạn đang dùng. Nhanh hơn: tạo token ở `/profile/ai-agents` và agent đọc bài trực tiếp qua MCP.

- [Đăng ký khóa học](https://dantech.academy/flutter-mobile-101/checkout)

---

- Bài trước: [Provider scope, Fake và fake_async](https://dantech.academy/courses/flutter-mobile-101/04-provider-di/lesson-03-scoping-and-testing.md)
- Bài tiếp theo: [AppShell, ValueKey và PopScope](https://dantech.academy/courses/flutter-mobile-101/05-navigation/lesson-02-appshell-and-transitions.md)
