1 00:00:02,710 --> 00:00:07,840 Teraz spojrzeliśmy na podstawową nawigację z nawigacją, a nawigacja jest najważniejszym narzędziem, 2 00:00:08,020 --> 00:00:13,720 ale tak naprawdę, gdy jesteś wewnątrz ekranu, komponentu załadowanego za pomocą nawigatora stosów, 3 00:00:13,870 --> 00:00:15,950 masz alternatywne opcje nawigacji. 4 00:00:15,970 --> 00:00:22,450 Możesz także użyć wypychania zamiast nawigacji, chociaż nie bierze on obiektu JavaScript, ale zamiast tego bierze tutaj 5 00:00:22,450 --> 00:00:24,240 tylko nazwę trasy, w 6 00:00:24,250 --> 00:00:30,280 tym przypadku kategorię posiłków jako pierwszy argument, a dzięki temu uzyskasz takie samo zachowanie jak poprzednio. 7 00:00:30,610 --> 00:00:33,200 Pytanie oczywiście brzmi, dlaczego miałbyś to wykorzystać. 8 00:00:33,250 --> 00:00:37,960 Po pierwsze, jest nieco krótszy niż nawigacja, ponieważ nie mijasz obiektu, 9 00:00:37,960 --> 00:00:39,440 ale to nie 10 00:00:39,490 --> 00:00:47,880 jest główny powód, zamiast tego użycie push tutaj może być przydatne, jeśli chcesz przejść, powiedzmy, stronę, na której już jesteś. 11 00:00:47,960 --> 00:00:49,100 Teraz pokażę ci, co mam na myśli. 12 00:00:49,120 --> 00:00:53,560 Jeśli to cofnę i przejdę do kategorii tutaj, to do ekranu kategorii, 13 00:00:53,590 --> 00:00:59,650 który jest ekranem, w którym już jestem. Jeśli zrobię to z nawigacją, zobaczysz, że nic 14 00:00:59,800 --> 00:01:02,690 się nie stanie, jeśli dotknę tego. 15 00:01:02,930 --> 00:01:10,760 Teraz, jeśli użyję push i dlatego po prostu przekażę kategorie jako mój pierwszy argument, ponieważ tak działa push, zobaczysz, że teraz 16 00:01:10,760 --> 00:01:16,490 to działa i mogę przejść do tego samego ekranu w kółko i jest on przekazywany 17 00:01:16,490 --> 00:01:19,810 do tego samego stosu ponad i jeszcze raz. 18 00:01:19,820 --> 00:01:26,030 Teraz oczywiście możesz się zastanawiać, dlaczego miałbym chcieć przesunąć ekran, na którym już jestem. 19 00:01:26,030 --> 00:01:32,150 Teraz w wielu aplikacjach możesz tego nie potrzebować, ale załóżmy, że tworzysz aplikację taką jak Dropbox, w której 20 00:01:32,150 --> 00:01:33,370 masz foldery, między 21 00:01:33,380 --> 00:01:35,440 którymi użytkownicy mogą się poruszać, jeśli 22 00:01:35,570 --> 00:01:38,330 jesteś w folderze, chcesz przejść do innego folderu. 23 00:01:38,330 --> 00:01:44,960 Teraz każdy folder jest technicznie tym samym ekranem folderów, z załadowaną inną zawartością. W takim przypadku możesz chcieć przejść z folderu A 24 00:01:44,960 --> 00:01:50,720 do B, który używa tego samego komponentu, tego samego ekranu na końcu, ale z inną zawartością, 25 00:01:50,720 --> 00:01:56,540 w takim przypadku możesz użyć push, aby nadal móc przesuwać nowy ekran, który to ten sam 26 00:01:56,540 --> 00:02:02,580 ekran na stosie i załaduj ten sam ekran z inną zawartością, to byłby jeden scenariusz, w którym 27 00:02:02,600 --> 00:02:05,860 możesz tego potrzebować. W tej aplikacji 28 00:02:05,870 --> 00:02:11,720 nie jest nam potrzebna, więc nie ma potrzeby wypychania, ale masz to w 29 00:02:11,720 --> 00:02:13,100 scenariuszach, w 30 00:02:13,100 --> 00:02:15,830 których nawigacja nie zabrałaby Cię do 31 00:02:15,830 --> 00:02:23,630 tego ekranu, push zawsze będzie w środku nawigatora stosu. Tutaj jednak cofnę to do nawigacji, która pobiera obiekt o nazwie trasy, 32 00:02:23,630 --> 00:02:31,800 który następnie wskazuje kategorie, ponieważ tutaj absolutnie nie potrzebujemy pushowania, to znaczy kategorii posiłków. Tak będzie w przypadku tej aplikacji, teraz 33 00:02:31,800 --> 00:02:33,330 masz także 34 00:02:33,330 --> 00:02:36,370 inne wyraźne opcje nawigacji, powiedzmy 35 00:02:36,420 --> 00:02:39,600 na ekranie kategorii posiłków, chcesz wrócić. 36 00:02:39,840 --> 00:02:45,330 Oczywiście możemy wrócić za pomocą tego przycisku wstecz, ale nie jest to nietypowe, że 37 00:02:45,360 --> 00:02:51,140 w niektórych aplikacjach masz coś innego, co użytkownicy mogą zrobić tam, gdzie chcesz je zabrać, 38 00:02:51,150 --> 00:02:55,890 na przykład powiedzmy jesteś na stronie, na której możesz skonfigurować konfigurację, 39 00:02:55,890 --> 00:03:01,180 a kiedy klikniesz przycisk Zapisz, chcesz zapisać tę konfigurację, a także opuścić ekran. 40 00:03:01,290 --> 00:03:07,410 Teraz w tym scenariuszu możesz chcieć ręcznie uruchomić nawigację wsteczną i nie czekaj, aż użytkownik naciśnie 41 00:03:07,410 --> 00:03:13,260 przycisk Wstecz, ponieważ może to zmusić użytkownika do pierwszego naciśnięcia przycisku Zapisz, a następnie 42 00:03:13,260 --> 00:03:17,040 do ręcznego powrotu, co nie jest najlepsze wrażenia użytkownika. 43 00:03:17,070 --> 00:03:24,210 Więc tutaj trochę to zasymuluję, po prostu przycisk powrotu w tym miejscu na ekranie, więc w 44 00:03:24,210 --> 00:03:30,090 naszym kodzie jsx, a kiedy go naciśniemy, chcę móc wrócić, ręcznie chcę 45 00:03:30,090 --> 00:03:31,790 uruchomić nawigację wstecz. 46 00:03:31,950 --> 00:03:37,740 Możesz to zrobić za pomocą rekwizytu nawigacyjnego, ponieważ masz tam metodę cofania, którą możesz wywołać, 47 00:03:37,740 --> 00:03:41,030 i robi to tak, jak to brzmi. 48 00:03:41,230 --> 00:03:46,380 Jeśli to zapiszemy i przejdę do posiłków, jeśli kliknę przycisk Wróć, uruchomimy nawigację wstecz. 49 00:03:46,380 --> 00:03:51,960 Technicznie rzecz biorąc, to wyskakuje z ekranu, na którym jesteśmy i 50 00:03:51,960 --> 00:03:58,860 wraca do poprzedniego ekranu w stosie. Jako alternatywę do powrotu, jeśli korzystasz z nawigatora stosów, masz 51 00:03:58,860 --> 00:04:01,740 również pop, który robi to, co sugeruje nazwa, 52 00:04:02,010 --> 00:04:08,730 wyskakuje z bieżącego ekranu na stosie, a ponieważ zawsze widzisz najwyższy ekran na urządzeniu, to również odtwarza nawigację wstecz, 53 00:04:08,730 --> 00:04:14,240 więc jest to alternatywa dla powrotu. Różnica polega na tym, że pop może być używany tylko 54 00:04:14,240 --> 00:04:14,980 wtedy, gdy 55 00:04:15,090 --> 00:04:19,770 jesteś w nawigatorze stosów, powrót jest także dostępny w innych nawigatorach, których użyjemy później w tym module. 56 00:04:22,340 --> 00:04:27,000 Czasami będziesz chciał wrócić do komponentu nadrzędnego, 57 00:04:27,140 --> 00:04:34,730 powiedzmy tutaj w MealDetailScreen. Tam możemy również dodać przycisk i 58 00:04:34,730 --> 00:04:39,390 na tym przycisku tutaj chcę wrócić do moich 59 00:04:39,390 --> 00:04:49,090 kategorii, powiedzmy, a zatem dodam onPress, a tutaj w tej funkcji mogę użyć props nawigacji pop, racja, 60 00:04:49,090 --> 00:04:56,860 ponieważ to zabiera nas z powrotem . 61 00:04:56,860 --> 00:04:59,230 Problem polega oczywiście na tym, że zabiera mnie to z powrotem, ale tylko do ekranu przed tym ekranem, więc do ekranu. 62 00:04:59,230 --> 00:05:03,250 Pochodzę z. Chcę jednak wrócić do ekranu 63 00:05:03,250 --> 00:05:06,040 kategorii, więc chcę pominąć dwa ekrany jednocześnie. 64 00:05:06,250 --> 00:05:08,450 W tym celu masz pop-to-top, jest to 65 00:05:08,560 --> 00:05:14,260 kolejna metoda, którą możesz wywołać, która po prostu wyskakuje ze wszystkich ekranów ze stosu i przenosi cię z 66 00:05:14,470 --> 00:05:15,970 powrotem do ekranu głównego. 67 00:05:16,390 --> 00:05:21,100 Więc jeśli klikniesz to, otrzymamy animację wstecz i wrócimy do ekranu głównego, który 68 00:05:21,220 --> 00:05:22,720 w tym przypadku 69 00:05:22,720 --> 00:05:27,570 jest ekranem kategorii, więc tutaj jest alternatywa. Teraz jest jeszcze jedna ostatnia 70 00:05:27,580 --> 00:05:33,780 możliwa czynność nawigacyjna, której czasem możesz potrzebować. Powiedzmy, że na ekranie kategorii chcesz przejść do 71 00:05:34,050 --> 00:05:41,880 kategorii posiłków, ale nie chcesz dodawać go do stosu, ale zamiast tego chcesz zastąpić go obecnym składnikiem w stosie, aby 72 00:05:41,940 --> 00:05:47,790 nadal był tylko jeden ekran w stos, ale ten ekran jest wtedy nową stroną, co 73 00:05:47,790 --> 00:05:49,570 oznacza również, że 74 00:05:49,620 --> 00:05:54,630 nie będziesz mógł wrócić na nową stronę, ponieważ stos będzie pusty, co oznacza, 75 00:05:54,630 --> 00:05:56,820 że Twoja aplikacja zostanie zamknięta. 76 00:05:56,820 --> 00:06:00,990 Więc jeśli chcesz to zrobić, możesz użyć replace. Zamień również tak, jak 77 00:06:01,020 --> 00:06:09,150 push pobiera tylko taki identyfikator, a replace przenosi cię również do nowego ekranu, nie odtwarza animacji do przodu, 78 00:06:09,150 --> 00:06:15,240 zamiast tego natychmiast przeskakuje tam i nie dostajesz automatycznie przycisku powrotu, ponieważ stos jest 79 00:06:15,240 --> 00:06:19,030 pusty, w przeciwnym razie jest to tylko ekran. 80 00:06:19,200 --> 00:06:24,540 Można tego użyć na przykład na ekranie logowania, na którym użytkownik się zalogował, a po 81 00:06:24,540 --> 00:06:26,990 zalogowaniu użytkownik nie powinien mieć możliwości powrotu 82 00:06:27,030 --> 00:06:32,430 do ekranu logowania, więc możesz po prostu zastąpić ekran logowania swoim zalogowanym na ekranie z 83 00:06:32,430 --> 00:06:34,370 profilem użytkownika lub czymkolwiek podobnym. 84 00:06:34,620 --> 00:06:39,930 Jeśli nadal próbujesz wrócić, nic się nie dzieje, ponieważ nie możesz wrócić, na 85 00:06:39,930 --> 00:06:44,390 stosie nie ma nic więcej. Dlatego oczywiście zastąpienie nie jest 86 00:06:44,430 --> 00:06:51,600 absolutnie tym, czego potrzebujemy w tej aplikacji, chciałem tylko to tutaj przedstawić, chociaż zobaczymy więcej dostępnych wzorców i sposób 87 00:06:51,630 --> 00:06:56,810 poruszania się między stronami i kiedy możesz chcieć zamienić lub przełączać się między 88 00:06:56,830 --> 00:07:02,610 ekranami tak jak w tym module, chciałem przedstawić go już w tym momencie, jeszcze tutaj, 89 00:07:02,910 --> 00:07:10,680 wrócę, aby nawigować z nazwą trasy wskazującą na kategorię posiłków. Dzięki temu uzyskałeś przegląd niektórych podstawowych metod nawigacji, które 90 00:07:10,800 --> 00:07:16,230 pozwalają poruszać się między ekranami. Jak wspomniałem, w tym module zobaczymy 91 00:07:16,230 --> 00:07:22,500 oczywiście wiele wzorców, na razie to jest to i powiedziałbym, że przy okazji, czas 92 00:07:22,500 --> 00:07:30,180 dodać trochę mięsa do tej aplikacji, upewnij się, że jest to bardziej realistyczna aplikacja, a nie tylko 93 00:07:30,330 --> 00:07:33,030 sztuczna aplikacja, jaką jest obecnie.