웹 및 탐색 내역
5614 단어 dartwebdevproductivityflutter
사이트: https://web.flatteredwithflutter.com/#/
우리는 간략하게 소개할 것이다
기사 내용:https://flatteredwithflutter.com/flutter-web-and-navigation-history/
1. 스토리지 탐색 경로
분명히 우리는 루트를 저장하는 데이터 구조가 필요하다.
사고 과정: 우리가 브라우저의 서로 다른 링크 사이를 내비게이션할 때, 마지막 링크는 통상적으로 첫 번째 트레이스된 링크이다(후퇴 단추를 누르십시오).
웹 및 탐색 내역
1 을 여러 개의 링크
(참고: 한 탭에만 있는 경우)
소급에 관하여
웹 및 탐색 내역
이제 돌아가
(참고: 한 탭에만 있는 경우)
올바르게 사용되는 데이터 구조는 창고입니다. 루트를 창고로 밀어넣고 팝업해야 하기 때문입니다. (이전 링크로 돌아갈 때)
굴뚝 — 밀어내기, 팝업, 위쪽
Dart에서 스택 구현
연구를 할 때 나는 발견하였다
dart:collection
파일 기준:
dart:core에서 지원하는 클래스와 유틸리티를 추가합니다.
그러나 우연히 발견할 때까지 Stack이라는 명확한 집합을 찾지 못했다ListQueue
목록 기반Queue.
원소의 순환 버퍼를 유지하고 채울 때 더 큰 버퍼로 증가합니다.이것은 정해진 시간의peek와remove 조작, 그리고 정해진 시간의add 조작을 할당합니다.
이 구조는 모든 대기열이나 창고에 유효하다.
ListQueue를 사용하여 라우팅을 저장합니다.
라우팅 저장을 위한 ListQueue 구현
우선 일반적인 ListQueue를 위한 작업을 정의하는 추상적인 클래스를 만듭니다.
추상 클래스_NavStack
void push(T val){}
void pop(){}
T 상단();
List
void 지우기 {}
}
푸시: T라인 푸시
팝업: 팝업 루트 (맨 위)
맨 위: 맨 위에 있는 노선 가져오기
fetchAll: 모든 라우트를 저장합니다.
지우기: 저장된 노선 지우기
위의 추상 클래스(\u NavStack)를 구현하는 클래스(NavStack)를 정의합니다.
클래스 NavStack 구현 _NavStack
목록 대기열을 초기화하여
최종 ListQueue
항목 푸시 중
목록 대기열의 addLast 기능을 사용하여 이 목록의 항목을 밀어냅니다.
_ 내부.addLast("값");
addLast: 끝에 항목을 추가합니다.모든 새 루트가 최신이기 때문에, 목록 대기열의 끝에 추가합니다.
항목 팝업
목록 대기열의 removeLast 기능을 사용하여 이 목록의 항목을 팝업합니다.
_ 내부.removeLast();
removeLast: 대기열의 마지막 요소를 삭제하고 되돌려줍니다.
맨 위 항목
last 함수를 통해 이 목록 대기열의 맨 위 또는 최신 항목 가져오기
_ 내부.마지막
last: 마지막 (또는 맨 위) 요소를 되돌려줍니다.이것은 우리의 최신 노선이 항상 창고의 꼭대기에 있다는 것을 의미한다.
항목 지우기 및 추출
우리는 목록 대기열의 clear 기능을 사용하여 저장된 경로를 지울 것이다.
항목을 가져오려면 목록의 길이를 훑어보고 항목을 새 목록에 추가하고 되돌려줍니다.
List
최종 목록 =
(var i=0;i<길이;i++) {
_ 목록입니다.추가(_internal.elementAt(i),
}
\u 목록으로 돌아가기;
}
2. 내비게이션 관측기 구현
웹 및 탐색 내역(출력)
우리는 이미 상술한 단계에서 목록 대기열을 실현했다.
다음은 이 목록 대기열을 flatter 웹에 놓아야 합니다.
MaterialApp에는 navigatorObservers라는 속성이 있습니다.이것은 내부에서 Route Observer를 실현했다.
라우팅 관찰 서버
R
유형의 라우팅이 사용자 고유의 R
유형의 라우팅 위로 밀리거나 에서 꺼질 때마다 사용자에게 알립니다. RouteObserver<PageRoute>
가 청약을 통지하는 RouteObserversdidPop
(플라이아웃할 때마다)didPush
(경로 밀어넣을 때마다)didPop
및 didPush
방법재료 적용 반환(
//기타 재산
NavigatorObserver:[CustomRouteObserver()],
);
도움이 되는 경우:)
RouteAware
관리되는 URL:
https://web.flatteredwithflutter.com/#/
Reference
이 문제에 관하여(웹 및 탐색 내역), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aseemwangoo/flutter-web-and-navigation-history-191l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)