Table of Contents
Giới thiệu
Phản ứng tự động cho phép xây dựng ứng dụng di động [FLT: 1] là thư viện phát triển ứng dụng di động có tính năng định vị: hướng dẫn người dùng qua màn hình và tính năng khác nhau và tính năng liên tục. [FLT: 0] Xác định [FLT: 1] là thư viện phổ biến nhất, có khả năng điều khiển cộng đồng để thực hiện định vị trong ứng dụng tự động. Nó cung cấp một thanh nâng cấp các tính năng hỗ trợ xếp, tab và các tính năng phụ, và các thiết bị chuyển đổi. Hướng dẫn này bao gồm mọi thứ từ cài đặt sang các mẫu cao như liên kết và di chuyển.
Yêu cầu và cài đặt
Trước khi sử dụng hệ thống định vị phản ứng, đảm bảo bạn có một dự án bản địa phản ứng được khởi động. Nếu bạn đang bắt đầu mới, hãy sử dụng thiết bị di chuyển của bản địa hoặc triển lãm.
Cài đặt gói lõi
Cài đặt các gói cần thiết qua npm hay chỉ. Thư viện lõi và quan hệ phụ thuộc chính của nó là:
npm install @react-navigation/native
Sau đó cài đặt các thư viện hỗ trợ việc chuyển hướng phản hồi phụ thuộc vào quản lý màn hình và quản lý vùng an toàn:
npm install react-native-screens react-native-safe-area-context
Nếu bạn đang sử dụng Expo, các thư viện này đã được bao gồm. Đối với các dự án tự động bản địa phản ứng thô, hãy theo hướng dẫn liên kết trong tài liệu chính thức để đảm bảo các mô- đun bản địa được liên kết chính xác (tự động kết nối điều này với người bản địa đáp ứng 0.60+).
Cài đặt bộ chuyển đổi
Cách chuyển phản ứng sẽ tạo ra nhiều hoa tiêu. Người lái chồng chồng được khuyên cho hầu hết các trường hợp dùng:
npm install @react-navigation/native-stack
Những người lái tàu khác như tab và ) được cài riêng:
npm install @react-navigation/bottom-tabs
npm install @react-navigation/drawer
Nhận thức chính
Hệ thống định vị phản ứng được xây dựng quanh ba khối chính:
- Máy điều khiển ) – cuộn ngoài cùng để quản lý cây định vị và trạng thái.
- Các nhà vi phạm ) – các thành phần xác định kiểu định định hướng (stack, tab, ngăn kéo).
- [FLT: 0] Màn – những thành phần riêng của mỗi thành phần tượng trưng cho một khung xem hoặc trang trong ứng dụng.
Mỗi thiết lập định vị phải được gói trong . Công cụ này thường được đặt ở gốc của thành phần ứng dụng.
Thiết lập bộ chuyển động xếp chồng
Hệ thống lái xếp chồng quản lý một chồng màn hình kiểu cuối cùng, dùng hoạt hình và điệu bộ của nền bản địa theo mặc định.
Trước tiên, mô- đun cần thiết nhập khẩu:
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
Tạo một trình chuyển đổi chồng:
const Stack = createNativeStackNavigator();
Xác định hướng đi bên trong thành phần ứng dụng của bạn:
function App() {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="Home" component={HomeScreen} />
<Stack.Screen name="Details" component={DetailsScreen} />
</Stack.Navigator>
</NavigationContainer>
);
}
Mỗi đòi hỏi một đạo cụ (dùng để định hướng) và một đạo cụ (thành phần phản ứng để làm).
Đang tạo màn hình và chuyển động
Màn hình là thành phần phản ứng chuẩn. Chúng nhận hai điều kiện quan trọng: và . Đối tượng cung cấp phương pháp di chuyển giữa màn hình. Bên dưới là một màn hình kiểu mẫu:
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>
);
}
Màn hình chi tiết không cần dùng thiết để định vị nếu không cần phải di chuyển xa hơn.
function DetailsScreen({ route }) {
return (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>Details Screen</Text>
</View>
);
}
Phương pháp di chuyển
Cách chuyển hướng phản ứng cung cấp một số phương pháp thông qua :
- [FLT: 0] navigate (tên, params) – di chuyển tới màn hình, tái sử dụng một tiến trình đã có nếu nó tồn tại trong chồng.
- [FLT: 0] push (tên, params) – luôn luôn đẩy một màn hình mới lên chồng, ngay cả khi màn hình đã nằm trong chồng.
- [FLT: 1] – di chuyển đến màn hình trước trong chồng.
- [FLT: 0] Đang thay thế (tên, tham số) – thay thế màn hình hiện thời bằng một màn hình mới, loại bỏ hiện thời khỏi lịch sử.
- [FLT: 0] đặt tên ) – đặt lại toàn bộ trạng thái định vị thành một đối tượng cho.
Ví dụ, để tạo một tiến trình mới của màn hình Chi tiết và gửi thông báo:
navigation.push('Details', { itemId: 42, otherParam: 'anything' });
Bỏ qua tham số giữa các màn hình
Dữ liệu có thể được truyền cho màn hình qua đối số thứ hai cho hoặc . Việc nhận kết nối màn hình qua .
// In HomeScreen
navigation.navigate('Details', { userId: 123 });
// In DetailsScreen
function DetailsScreen({ route }) {
const { userId } = route.params;
return <Text>User ID: {userId}</Text>;
}
Đặt giá trị tham số mặc định bằng trên thành phần màn hình:
<Stack.Screen
name="Details"
component={DetailsScreen}
initialParams={{ itemId: 0 }}
/>
Đang cấu hình các tùy chọn duyệt qua
Mỗi màn hình có thể tùy chỉnh đầu trang, biểu tượng thẻ tab, nhãn ngăn kéo, v. v., bằng cách sử dụng hoặc tương ứng với hoa tiêu.
Tùy chỉnh đầu trang
<Stack.Screen
name="Details"
component={DetailsScreen}
options={{
title: 'Details',
headerStyle: { backgroundColor: '#f4511e' },
headerTintColor: '#fff',
headerTitleStyle: { fontWeight: 'bold' },
}}
/>
Tùy chọn động có thể được đặt bằng một hàm nhận :
options={({ route }) => ({ title: route.params.name })}
Name
Việc định vị thẻ là phổ biến cho phần ứng dụng cấp cao. Cài đặt hoa tiêu tab dưới:
npm install @react-navigation/bottom-tabs
Tạo một hoa tiêu thẻ và kết hợp nó với chồng của bạn:
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>
);
}
Bạn có thể làm tổ chức các hoa tiêu tab bên trong một tờ kiểu xếp chồng hoặc ngược lại. Tùy chỉnh biểu tượng tab bằng cách tương ứng .
Ngăn kéo
Một ngăn kéo định hướng trượt ra một ngăn kéo bên trái, hiển thị các mục định hướng. Cài đặt:
npm install @react-navigation/drawer
Thiết lập ví dụ:
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>
);
}
Dùng để mở và đóng ngăn kéo theo chương trình.
Name
Ứng dụng phức tạp thường làm hoa tiêu (v. d. một hoa tiêu tab bên trong một tờ hướng dẫn xếp chồng). Ứng dụng này có khả năng điều khiển việc làm tổ một cách duyên dáng. Ứng dụng được cung cấp cho bất cứ màn hình nào cũng có thể gọi phương pháp phụ trợ nếu cần. Hãy dùng để truy cập phương pháp của người điều khiển.
Ví dụ: Một chồng chứa một hoa tiêu và một màn hình thiết lập:
function RootStack() {
return (
<Stack.Navigator>
<Stack.Screen name="Main" component={MainTabs} options={{ headerShown: false }} />
<Stack.Screen name="Settings" component={SettingsScreen} />
</Stack.Navigator>
);
}
Liên kết chặt chẽ
Cách chuyển phản ứng hỗ trợ khả năng liên kết chặt chẽ để xử lý các URL mở màn hình đặc trưng. Cấu hình nghịch lý ]:]:
const linking = {
prefixes: ['myapp://', 'https://myapp.com'],
config: {
screens: {
Home: 'home',
Details: 'details/:itemId',
},
},
};
<NavigationContainer linking={linking}>
{/* navigators */}
</NavigationContainer>
Sau đó xử lý các URL gửi đến. Điều này hiệu lực tính năng như việc ấn thông báo liên kết tới một màn hình cụ thể.
Name
Nhiều ứng dụng cần thiết điều khiển theo trạng thái xác thực. Một mẫu chung là chuyển đổi hoa tiêu ở cấp gốc:
function App() {
const [isSignedIn, setIsSignedIn] = useState(false);
return (
<NavigationContainer>
{isSignedIn ? <AppNavigator /> : <AuthNavigator />}
</NavigationContainer>
);
}
Thay vì thế, hãy dùng một chồng có màn hình điều kiện để tránh chớp mắt bằng cách giữ lời hứa hoặc cập nhật cho đến nay.
Hiệu quả và thực hành tốt nhất
- Dùng [FLT: 0] cho phép chuyển tiếp theo kiểu thức tốt hơn và tốt hơn.
- Thu nhỏ số màn hình đã được lắp cùng một lúc. Phản ứng khi tháo gắn kết màn hình ẩn theo mặc định cho các hoa tiêu xếp chồng, nhưng để chuyển đổi thẻ, bạn có thể cấu hình việc tải lười biếng.
- Chỉ truyền dữ liệu nguyên thủy qua các tham số để tránh các vấn đề hàng loạt.
- Dùng hoặc cho các thành phần màn hình thường xuyên phục hồi.
- Tránh tính toán kỹ lưỡng trong quá trình chuyển tiếp; làm việc quá tải .
- Luôn luôn xử lý sự kiện cho các thay đổi chưa được lưu.
Kết luận
Cách di chuyển trực quan, tùy chỉnh và trình diễn cung cấp một phương pháp điều khiển trong ứng dụng tự động phản ứng. Bằng cách sắp xếp các tài liệu hướng dẫn [FL: 0], thẻ tab, và các hoa tiêu có tổ, cùng với tham số đi qua, liên kết sâu, và các luồng xác thực [FL:], bạn có thể xây dựng các kinh nghiệm di động mạnh mẽ. Để biết thêm chi tiết, hãy đọc tài liệu hướng dẫn [LT: 0] [FL: 0] [FL: t để luyện tập tốt nhất [FL: t.