Flutter에서 pushReplacementNamed와 popAndPushNamed의 차이점은 무엇인가요?

네비게이터 클래스는 기본적으로 한 화면에서 다른 화면으로 사용자를 리디렉션하는 데 사용되므로 이 기사에서는 Flutter에서 pushReplacementNamed와 popAndPushNamed의 차이점을 살펴보겠습니다.

Flutter에서 pushReplacementNamed와 popAndPushNamed의 차이점은 무엇인가요?



Flutter#navigator.dart의 NavigatorState 클래스에는 비슷한 동작을 하는 2개의 메서드가 있습니다. Flutter에서 pushReplacementNamed와 popAndPushNamed의 차이점은 무엇입니까? 그래서 이 기사에서는 pushReplacementNamed와 popAndPushNamed의 차이점에 대해 논의할 것입니다.

같은 것으로 시작합시다.

차이점은 애니메이션 플러터가 실행된다는 것입니다.
  • pushReplacementNamed ->> "애니메이션 시작"
  • popAndPushNamed –>> "애니메이션 종료"

  • 푸시는 요소 스택의 맨 위에 요소를 추가하고 팝핑은 동일한 스택에서 맨 위 요소를 제거한다는 것을 알고 있습니다.

    따라서 Flutter의 경우 다른 화면으로 이동할 때 푸시 메서드를 사용하고 Navigatorwidget이 새 화면을 스택 맨 위에 추가합니다. 당연히 pop 메서드는 스택에서 해당 화면을 제거합니다.

    Screen1에서 Screen2로 이동하는 방법을 살펴보겠습니다. 샘플 앱을 실행하여 방법을 실험할 수 있습니다.

    new ElevatedButton(
       onPressed:(){
       Navigator.of(context).pushNamed('/screen2');
    },
       child: new Text("Push to Screen 2"),
    ),
    


    pushNamedmethods의 도움으로 main.dart에 경로가 정의된 모든 화면으로 이동할 수 있습니다. 참조용으로 namedRoute라고 합니다. 이 방법의 사용 사례는 매우 간단합니다. 단순히 탐색합니다.


    포핏 플러터
    팝 잇 플러터
    이제 마지막으로 방문한 화면(이 경우 Screen2)을 제거하려면 pop 메소드를 사용하여 Navigator의 스택에서 경로를 팝해야 합니다.

    Navigator.of(context).pop();
    


    이 코드 줄은 onPressed() 메서드 안에 들어갑니다.



    푸시 화면 플러터


  • Scaffold 을 사용하는 경우 Scaffold가 AppBar에 '뒤로' 버튼을 자동으로 추가하여 누르면 Navigator.pop()이 호출되기 때문에 일반적으로 경로를 명시적으로 팝할 필요가 없습니다. Android에서도 장치 뒤로 버튼을 누르면 동일하게 작동합니다. 그러나 그럼에도 불구하고 사용자가 취소 버튼을 클릭할 때 AlertDialog를 표시하는 것과 같은 다른 사용 사례에는 이 메서드가 필요할 수 있습니다.
  • 사용 사례: pushReplacementNamed

  • 사용자가 성공적으로 로그인하고 현재 DashboardScreen에 있는 경우 어떠한 경우에도 사용자가 LoginScreen으로 돌아가는 것을 원하지 않습니다. 따라서 로그인 경로는 대시보드 경로로 완전히 대체되어야 합니다. 또 다른 예는 SplashScreen에서 HomeScreen으로 이동하는 것입니다. 한 번만 표시되어야 하며 사용자는 HomeScreen에서 다시 돌아갈 수 없어야 합니다. 이러한 경우 완전히 새로운 화면으로 이동하므로 애니메이션 시작 속성에 이 방법을 사용할 수 있습니다.
  • 사용 사례: popAndPushNamed

  • ProductsListScreen에 제품 목록을 표시하는 쇼핑 앱을 만들고 있고 사용자가 FiltersScreen에 필터를 적용할 수 있다고 가정합니다. 사용자가 변경 사항 적용 버튼을 클릭하면 FiltersScreen이 팝업되고 새 필터 값이 있는 ProductsListScreen으로 푸시백되어야 합니다. 여기에서 popAndPushNamed의 종료 애니메이션 속성이 더 적절해 보입니다.

    아래와 같은 코드 스니펫을 고려하십시오.

    // pushReplacementNamed will execute the enter animation
    Navigator.of(context).pushReplacementNamed('/screen4');
    //popAndPushNamed will execute the exit animation.
    Navigator.popAndPushNamed(context, '/screen4');
    



    산출:



    결론:



    이 기사에서는 pushReplacementNamed와 popAndPushNamed의 차이점에 대해 알아봅니다.

    Flutter Journey에 함께 해주셔서 감사합니다!!!

    계속 배우도록 !!! 계속 설레발!!!

    이에 대한 피드백을 잊지 마세요.

    FlutterAgency.com은 Flutter 기술 및 Flutter 개발자 전용 포털 플랫폼입니다. 포털에는 Flutter 위젯 가이드, Flutter 프로젝트, 코드 라이브러리 등과 같은 Flutter의 멋진 리소스가 가득합니다.

    좋은 웹페이지 즐겨찾기