מדריך שלם להפעלה של ניווט הודי באמצעות ניווט תגובה
מבוא
React Native מאפשר לבנות יישומים ניידים מקומיים עם JavaScript ותגובה. היבט קריטי של פיתוח יישומים ניידים הוא ניווט: להנחות משתמשים באמצעות מסכים שונים ותכונות בצורה חלקה.FLT:0.React ניווטFLT:1 הוא הספרייה הפופולרית ביותר, המונעת הקהילה ליישום יישומים Native.זה מספק API מבהיר, תומך בערימה, כרטיסיה, ומציירת את הניווט, ומחוות פלטפורמה מתקדמות כמו תבניות קישורים מתקדמות לכל.
Prerequisites and Install
לפני השימוש בניווט תגובה, ודא שיש לך פרויקט Native תגובה ראשונית.אם אתה מתחיל טרי, השתמש ב- React Native CLI או Expo. React ניווט עובד עם שניהם.
התקנת חבילות Core
התקנת החבילות הנדרשות באמצעות npm או yarn. ספריית הליבה והתלויים העיקריים שלה הם:
npm install @react-navigation/native
לאחר מכן להתקין את הספריות התומכות ש- Reactניווט תלויות בניהול מסך ושמירה על אזור בטוח:
npm install react-native-screens react-native-safe-area-context
אם אתה משתמש ב-Expo, ספריות אלה כבר כלולות.עבור פרויקטים בודדים של React, בצע את ההוראות המקשרות בתיעוד הרשמי כדי להבטיח מודולים מקומיים מקושרים כראוי (החלו על זה עבור React Native 0.60+).
התקנת ניווט
הניווט מציע מספר רב של נאויגורים: ערימה של ערימה גלקסיות נווטמבייט 1 מומלץ עבור רוב המקרים:
npm install @react-navigation/native-stack
(ב) ,ב[[1924]], [[1924]]]] ו[[1924]]]]]], [[1924]]]] ו[[1924]]]]
npm install @react-navigation/bottom-tabs
npm install @react-navigation/drawer
מושגים Core
ניווט תגובה בנוי סביב שלושה אבני בניין עיקריות:
- (ב) ויקרא י"ד: "ה', ויקרא י', ויקרא י"ד, ויקרא י"ד, ויקרא י"ד).
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) ,0) ,ScreensofLT:1 - מרכיבים בודדים המייצגים תצוגה או דף באפליקציה.
כל מערך ניווט חייב להיות עטוף ב-FLT:4 (הכולה הזו ממוקמת בדרך כלל בשורש רכיב האפליקציה.
עקבו אחרי a Stack Navigator
הערימה navigator מנהלת ערימה של מסכים אחרונים-ב-ראשון.זה משתמש באנימציה של הפלטפורמה Native פלטפורמה מעבר ומחווה כברירת מחדל.
ראשית, ייבוא מודולים:
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
יצירת ערימה navigator דוגמה:
const Stack = createNativeStackNavigator();
Define the navigator בתוך רכיב האפליקציות שלך:
function App() {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="Home" component={HomeScreen} />
<Stack.Screen name="Details" component={DetailsScreen} />
</Stack.Navigator>
</NavigationContainer>
);
}
כל אחד מהם דורש את ה-FLT:9 (השימוש בניווט) ו-FLT:10 prop (המרכיב של התגובה להפעלה).
יצירת מסכים וניווט
הם מקבלים שני מרכיבים של תגובה סטנדרטית: הם מקבלים שני מרכיבים חשובים: FLT:11 ו-FLT:12 האובייקט מספק שיטות לנוע בין מסכים.
function HomeScreen({ navigation }) {
return (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>Home Screen</Text>
<Button
title="Go to Details"
onPress={() => navigation.navigate('Details')}
/>
</View>
);
}
מסך הפרטים אינו צריך להשתמש ב-ניווט אלא אם כן הוא צריך לנווט עוד.
function DetailsScreen({ route }) {
return (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>Details Screen</Text>
</View>
);
}
שיטות ניווט
הניווט מספק מספר שיטות באמצעות ה-FLT:16 prop:
- (ב) ויקרא י"ד: ויקרא י"ד): "ה', ויקרא י'" (בראשית כ"ד, כ"ד).
- (בלטינית:0) ⁇ (שם, טפילים) 1 (בלטינית: ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) ויקרא י"ד: "ה' ב'"ה'" (בראשית כ"ד)
- (שם, טפילים) , ⁇ 1) - מחליף את המסך הנוכחי עם חדש, הסרת הזרם מן ההיסטוריה.
- [ה]ה']: [המאה], [המאה], מקנה את כל מדינת הניווט לאובייקט מדיני נתון.
לדוגמה, כדי לדחוף דוגמה חדשה של מסך הפרטים ו- Pass הפרמטרים:
navigation.push('Details', { itemId: 42, otherParam: 'anything' });
לעבור פרדוקס בין המסכים
ניתן להעביר נתונים למסך באמצעות הטיעון השני ל-FLT 18 או ל-FLT:19 (הקבלה של המסך גישה לפרמטרים אלה באמצעות FLT:20).
// In HomeScreen
navigation.navigate('Details', { userId: 123 });
// In DetailsScreen
function DetailsScreen({ route }) {
const { userId } = route.params;
return <Text>User ID: {userId}</Text>;
}
הגדר ערכי פרמטר ברירת מחדל באמצעות פרמטרים (FLT:22) על רכיב המסך:
<Stack.Screen
name="Details"
component={DetailsScreen}
initialParams={{ itemId: 0 }}
/>
אפשרויות ניווט
כל מסך יכול להתאים אישית את ראשם, את סמל הכרטיסייה, תווית המגירה, וכו ', באמצעות ה-FLT:24 prop on FLT:25 או את ה-FLT:26 prop on the navigator.
מנהל התקן
<Stack.Screen
name="Details"
component={DetailsScreen}
options={{
title: 'Details',
headerStyle: { backgroundColor: '#f4511e' },
headerTintColor: '#fff',
headerTitleStyle: { fontWeight: 'bold' },
}}
/>
ניתן להגדיר אפשרויות דינמיות באמצעות פונקציה המקבלת את FLT:28
options={({ route }) => ({ title: route.params.name })}
טבילה Navigator
ניווט Tab נפוץ עבור חלקי יישומים ברמה העליונה. התקנת הכרטיסיות התחתונות navigator:
npm install @react-navigation/bottom-tabs
צור כרטיסה navigator ו משלב אותו עם הערימה שלך:
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
const Tab = createBottomTabNavigator();
function HomeTabs() {
return (
<Tab.Navigator>
<Tab.Screen name="Feed" component={FeedScreen} />
<Tab.Screen name="Profile" component={ProfileScreen} />
</Tab.Navigator>
);
}
ניתן לקן את הכרטיסייה בתוך ערימה של נווטטור או להיפך, להתאים את סמלי הכרטיסייה באמצעות ה-FLT:32 prop עם FLT:33.
תגית: Navigator
מפרש מטביעה נווט ממשוך שמאלה, חושף פריטי ניווט. Install it:
npm install @react-navigation/drawer
דוגמה:
import { createDrawerNavigator } from '@react-navigation/drawer';
const Drawer = createDrawerNavigator();
function AppDrawer() {
return (
<Drawer.Navigator>
<Drawer.Screen name="Home" component={HomeScreen} />
<Drawer.Screen name="Settings" component={SettingsScreen} />
</Drawer.Navigator>
);
}
השתמש ב-FLT:36 כדי לפתוח ולסגור את המגירה באופן רציונאלי.
נווטרים
יישומים מורכבים לעתים קרובות קינן נווטרים (למשל, כרטיסה נווט בתוך ערימה navigator) תגובות ניווט מטפלות קינון בחסד.הפרופיל FLT:37 המסופק לכל מסך יכול לקרוא שיטות על מורה הורה אם צריך. השתמש FLT:38 כדי לגשת שיטות של הניווט.
דוגמה: ערימה המכילה כרטיסה נווט ומסך הגדרות:
function RootStack() {
return (
<Stack.Navigator>
<Stack.Screen name="Main" component={MainTabs} options={{ headerShown: false }} />
<Stack.Screen name="Settings" component={SettingsScreen} />
</Stack.Navigator>
);
}
קישור עמוק וקישור
הניווט תומך בקישור עמוק ל-URLs אשר פותחים מסכים ספציפיים.
const linking = {
prefixes: ['myapp://', 'https://myapp.com'],
config: {
screens: {
Home: 'home',
Details: 'details/:itemId',
},
},
};
<NavigationContainer linking={linking}>
{/* navigators */}
</NavigationContainer>
לאחר מכן להתמודד עם כתובות URL נכנסות.זה מאפשר תכונות כגון הודעות דחיפה המקשרות למסך ספציפי.
המונחים: Authentication Flows
יישומים רבים דורשים ניווט מותני המבוסס על מצב אימות.תבנית נפוצה היא להחליף את הניווט ברמת השורש:
function App() {
const [isSignedIn, setIsSignedIn] = useState(false);
return (
<NavigationContainer>
{isSignedIn ? <AppNavigator /> : <AuthNavigator />}
</NavigationContainer>
);
}
לחלופין, השתמש בערימה אחת עם מסכים מותניים. להימנע מזייף על ידי שמירה על ההבטחה או המדינה עד כה.
ביצועים ועיסוקים טובים
- (ב) ,0) ,5 ,5 ,5 , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- מזער את מספר המסכים שרכוב בו זמנית.תגובה למסךים נסתרים ללא חשיבות כברירת מחדל עבור ערימה navigators, אבל עבור כרטיסיית navigators, אתה יכול להגדיר טעינה עצלה.
- להעביר רק נתונים פרימיטיביים באמצעות פרמטרים כדי למנוע בעיות סידוריות.
- (ב) שימוש ב-FLT:45 או ב-FLT:46 עבור רכיבי מסך שלעתים קרובות הם חוזרים.
- להימנע חישובים כבדים במהלך מעברי ניווט; עומס עבודה עם ההרחבה :47 .
- תמיד לטפל באירוע של שינויים בלתי מאוישים.
מסקנה
[המדריך] מספק דרך אינטואיטיבית, אישית, ומבצעת לניהול ניווט באפליקציות של React Native.על ידי שליטה בערימה, בכרטיסיה, במגירה ובנונונים, יחד עם פרמטר עובר, חיבור עמוק וזרימת אימות, אתה יכול לבנות חוויות ניידות חזקות.לפרטים נוספים, מתייחס לתיעוד ניווט רשמי של הניווט:0 רשמי של 1LT:1 ו-F:2React: 4.