[Flutter] Route 관리

hodu·2023년 3월 23일
0

Flutter

목록 보기
4/30
post-thumbnail

main의 코드가 길어지다 보면 가독성이 저하되기 때문에, 별도로 route만 관리하는 파일을 만드는 것이 좋다.

기존 Route 관리

main.dart에서 route를 일일이 작성했다.

  • lib/main.dart
void main() async {
  ...
  runApp(
      child: MaterialApp(
      	...
        initialRoute: '/',
        routes: {
        	'/': (context) => FirstScreen(),
            '/second': (context) => SecondScreen(),
        },
    ),
  );
}

참고 문서: https://flutter-ko.dev/docs/cookbook/navigation/named-routes


Route 별도 관리

  • lib/config/route_name.dart
    route를 관리하는 파일.
class RouteName {
  static const splash = "/";
  static const login = "/login";
}

var namedRoutes = <String, WidgetBuilder>{	// <String, WidgetBuilder> 생략가능
  RouteName.splash: (context) => SplashView(),
  RouteName.login: (context) => LoginPage(),
};

  • lib/main.dart
    route를 초기화 하는 파일.
void main() async {
  ...
  runApp(
      child: MaterialApp(
      	...
        initialRoute: RouteName.splash,
        routes: namedRoutes,
    ),
  );
}

호출 시

Navigator.pushNamed(context, RouteName.login);



참고 용

RouteName.main까지 모든 route를 pop() 한다.

Navigator.popUntil(context, ModalRoute.withName(RouteName.main));
profile
Flutter developer

0개의 댓글