[Flutter] GetX 라우팅

maverick·2022년 7월 21일
0

Flutter

목록 보기
1/1

플러터로 어플을 만들어보고 싶었다. (내 궁극적인 목표ㅠㅠㅠ)
그래서 난 준비단계로 클론코딩을 하기로 마음먹었다.

개남님 인스타그램 클론코딩 링크
개남님의 유튜브를 보고 따라하기로 마음먹었는데 듣다보니 getx 관련영상도 봐야했다.(ㄹㅇ 귀찮다고 생각했.)

getx 대충 나도 알긴안다. 뭐.. 엄청 편한거라고 했다. 코린이라 사실 자세하게는 잘 모른다.
그래서 이번에 개남님것을 듣고 알아가며 좀 정리하기로 마음먹었다.

첫 포스팅이라 정리하는게 많이 어리숙할 것이라고 예상한다. 그래도 내가 나중에 볼때나, 다른분들이 볼때 잘 이해되길 바라며 정리하려고 한다.

(근데 아마 제가 이해한거 정리하는형식으로 옮겨놓을거라 봐도 이해가 잘 안되실 수도 있슴다..ㅎㅎ)


1. 일반적인 라우팅



RaisedButton(
              child: Text("일반적인 라우트"),
              onPressed: () {
                // Navigator.of(context).push(
                //   MaterialPageRoute(
                //     builder: (_) => FirstPage(),
                //   ),
                // );
                
                Get.to(FirstPage());
              },
            ),

RaisedButton(
              child: Text("다음페이지 이동"),
              onPressed: () {
                Get.to(SecondPage());
              },
            ),

RaisedButton(
              child: Text("뒤로 이동"),
              onPressed: () {
                //Navigator.of(context).pop();
                Get.back();
              },
            ),
            RaisedButton(
              child: Text("홈 이동"),
              onPressed: () {
                //Get.to(Home());
                Get.offAll(Home());
                // Navigator.of(context).pushAndRemoveUntil(
                //     MaterialPageRoute(builder: (_) => Home()),
                //     (route) => false);
              },
            ),

마지막 코드의 홈 이동할때 쓴 _Get.offAll_ 은 이전것들은 지워주는 그런느낌쓰! ~~(회원가입페이지나 스플래쉬페이지에 쓰면 될 것 같다.)~~

GetX를 쓰지 않으면 Navigator를 써야하는데 저런 말도 안되는 수식을 써야한다.
(개발자 선배님들 존경함다..)
겟으로 쓰면 한줄이면 끝!

2. Named 라우팅



Widget build(BuildContext context) {
    return GetMaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      initialRoute: "/",
      getPages: [
        GetPage(
          name: "/",
          page: () => Home(),
          transition: Transition.zoom,
        ),
        GetPage(
          name: "/first",
          page: () => FirstNamedPage(),
          transition: Transition.zoom,
        ),
        GetPage(
          name: "/second",
          page: () => SecondNamedPage(),
          transition: Transition.zoom,
        ),
        GetPage(
          name: "/next",
          page: () => NextPage(),
          transition: Transition.zoom,
        ),
        GetPage(
          name: "/user/:uid",
          page: () => UserPage(),
          transition: Transition.zoom,
        ),
      ],
    );
  }

main 페이지에 페이지마다 이름을 설정했다.

RaisedButton(
              child: Text("다음페이지 이동"),
              onPressed: () {
                Get.offNamed("/second");
              },
            ),

RaisedButton(
              child: Text("뒤로 이동"),
              onPressed: () {
                Get.back();
              },
            ),
            RaisedButton(
              child: Text("홈 이동"),
              onPressed: () {
                Get.offAllNamed("/");
              },
            ),

이것만 옮겼는데도 벌써 현기증이 온다ㅠㅠㅠ...
필요한부분들 또 정리해서 포스팅하겠습니다!!!!!!

profile
코린이

0개의 댓글